Первые шаги#
О модуле#
Модуль 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)
;существуют специальные возможности для управления производительностью обучения моделей и визуализации процесса обучения;
обученные модели можно сохранять для последующего использования без необходимости повторного обучения.