Первые шаги#

О модуле#

Модуль gmdh реализует 4 популярные разновидности алгоритмов из семейства метода группового учёта аргументов (COMBI, MULTI, MIA, RIA), предназначенные для решения задач аппроксимации данных и предсказания временных рядов. Также в состав библиотеки входит вспомогательный функционал для базовой предобработки данных и сохранения уже обученных моделей.

Ядро модуля реализовано на языке С++, благодаря чему обеспечивается высокая производительность вычислений.

Note

Поддерживаемые версии Python: 3.6 и выше.

Репозиторий проекта: bauman-team/GMDH

Документация по модулю gmdh: https://bauman-team.github.io/GMDH/python/html/

Установка#

Для установки модуля gmdh достаточно выполнить команду:

pip install gmdh

После этого модуль может быть импортирован в скрипте командой:

import gmdh

Базовый пример#

Рассмотрим простейший пример использования базового комбинаторного алгоритма COMBI из модуля gmdh.

Для начала импортируем из модуля модель Combi и функцию split_data для разбиения исходных данных на тренировочную и тестовую выборки:

from gmdh import Combi, split_data

Создадим простой датасет, в котором целевые значения матрицы y будут являться просто суммой соответствующей пары значений x1 и x2 матрицы X:

X = [[1, 2], [3, 2], [7, 0], [5, 5], [1, 4], [2, 6]]
y = [3, 5, 7, 10, 5, 8]

Разделим наши данные на тренировочную и тестовую выборки:

x_train, x_test, y_train, y_test = split_data(X, y)

# выведем полученные массивы
print('x_train:\n', x_train)
print('x_test:\n', x_test)
print('\ny_train:\n', y_train)
print('y_test:\n', y_test)
x_train:
 [[1. 2.]
 [3. 2.]
 [7. 0.]
 [5. 5.]
 [1. 4.]]
x_test:
 [[2. 6.]]

y_train:
 [ 3.  5.  7. 10.  5.]
y_test:
 [8.]

Создадим модель Combi, обучим её на наших тренировочных данных методом fit и затем предскажем результат для тестовой выборки методом predict:

model = Combi()
model.fit(x_train, y_train)
y_predicted = model.predict(x_test)

# сравним прогноз с реальным значением
print('y_predicted: ', y_predicted)
print('y_test: ', y_test)
y_predicted:  [8.]
y_test:  [8.]

Предсказанный результат совпал с реальным значением! Выведем теперь полином, отображающий найденную моделью закономерность:

model.get_best_polynomial()
'y = x1 + x2'

Что дальше?#

Возможности модуля намного шире, чем было продемонстрировано в примере выше:

  • имеется поддержка работы с временными рядами;

  • метод fit у всех алгоритмов позволяет гибко настраивать значения множества гиперпараметров, с помощью которых можно адаптировать обучение под конкретную задачу и добиться повышения точности результатов по сравнению с базовым вариантом обучения вида fit(x_train, y_train);

  • существуют специальные возможности для управления производительностью обучения моделей и визуализации процесса обучения;

  • обученные модели можно сохранять для последующего использования без необходимости повторного обучения.