https://github.com/DidierRLopes/timeseries-cv
2 года назад Филипе Рамос, мой предыдущий учитель математики и вероятностей, зная, что у меня есть особый интерес к науке о данных, предложил мне помочь ему в его докторской диссертации Наука о данных в моделировании и предвидении серии экономико-финансовых исследований. : Классические методологии глубокого обучения».
Хотя мы обсуждали теорию, анализ и результаты, мой основной вклад состоял в том, чтобы написать код Python для диссертации.
В результате я написал модуль Python, который разбивает данные одномерные временные ряды на основе методов перекрестной проверки, чтобы их можно было передать в глубокую нейронную сеть (DNN) для извлечения ошибок обучения/проверки/тестирования.
Я знаю, что в Интернете есть такие примеры, но это было сделано с нуля, чтобы мы могли персонализировать его в соответствии с потребностями диссертации и лучше понять, что поставлено на карту при выполнении различных методов перекрестной проверки.
Идее предоставляется обучающий набор данных, пакет разделит его на наборы для обучения, проверки и тестирования с помощью прямой цепочки, K-кратности или группы K-кратности.
В качестве параметров пользователь может выбрать не только количество входных данных (n_steps_input) и выходных данных (n_steps_forecast), но и количество выборок (n_steps_jump). ), чтобы перейти к данным для обучения.
Лучший способ установить пакет: pip install timeseries-cv
, а затем использовать его с import tsxv
. Посмотреть модуль, разработанный здесь.
Это можно увидеть более интуитивно, используя блокнот jupyter: «example.ipynb». Ниже вы можете найти пример использования каждой функции для следующих временных рядов:
timeSeries = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26])
Сплит-поезд
from tsxv.splitTrain import split_train,
split_train_variableInputX, y = split_train(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
X, y = split_train_variableInput(timeSeries, minSamplesTrain=10, n_steps_forecast=3, n_steps_jump=3)
Сплит Поезд Вал
from tsxv.splitTrainVal import split_train_val_forwardChaining,
split_train_val_kFold, split_train_val_groupKFoldX, y, Xcv, ycv = split_train_val_forwardChaining(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
X, y, Xcv, ycv = split_train_val_kFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2) X, y, Xcv, ycv = split_train_val_groupKFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
Сплит-тест Вал поезда
from tsxv.splitTrainValTest import split_train_val_test_forwardChaining,
split_train_val_test_kFold, split_train_val_test_groupKFoldX, y, Xcv, ycv, Xtest, ytest = split_train_val_test_forwardChaining(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
X, y, Xcv, ycv, Xtest, ytest = split_train_val_test_kFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2) X, y, Xcv, ycv, Xtest, ytest = split_train_val_test_groupKFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
Этот модуль использовался не только для диссертации моих друзей, но и для компании Data Science и Gamestonk Terminal, о которых я знаю :)
Вы можете проверить статистику модуля здесь.
Хороших выходных,
Дидье