Случайная лесная регрессия с Python SciKit Узнайте о списке временных рядов с несколькими каналами - PullRequest
0 голосов
/ 08 июня 2018

Я строю модель случайного леса в Python, используя sklearn в качестве базовой линии для сравнения с прогнозами из RNN, встроенными в кераты (уже выполненные прогнозы с RNN ... ууу!).Данные являются временными рядами.Концептуально это 623 сегмента, каждый из которых содержит 180 последовательных точек данных (дополненных для создания сегментов равной длины), причем каждый сегмент имеет 7 каналов объектов и один целевой канал.

Я подготовил данные и разделил их на группы обучения и тестирования.В настоящее время данные содержатся в контейнере numpy.ndarray с формами ниже.

X.shape: (623, 180, 7)
y.shape: (623, 180, 1)
X_train.shape.: (498, 180, 7)
y_train.shape: (498, 180, 1)
X_test.shape: (125, 180, 7)
y_test.shape: (125, 180, 1)

Так как я делаю регрессионную модель, я пытаюсь использовать randomforestregressor, как показано ниже.Тем не менее, я не могу, потому что он ожидает 2D-массив.

from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(n_estimators = 1000)
rf.fit(X_train, y_train);

Так что мне нужно изменить или каким-то образом реструктурировать данные в 2D-формате.Сейчас я думаю об итерации по трехмерному массиву для создания двумерного массива.2D-массив для объектов будет состоять из 7 столбцов (по одному на канал), где каждая строка каждого столбца содержит данные временных рядов в виде списка или серии.

Любые другие идеи о том, как реструктурироватьэти данные?Любой другой совет приветствуется.

Заранее спасибо.

Для справки я просмотрел следующие ссылки:

Преобразование 3D-массива Numpy в 2Dмассив

NumPy с Python: преобразовать 3D-массив в 2d

Ошибка Sklearn, массив с 4 дим.Оценщик <= 2 </a>

https://machinelearningmastery.com/index-slice-reshape-numpy-arrays-machine-learning-python/

1 Ответ

0 голосов
/ 08 июня 2018

Другой вариант - создать одномерные массивы, а затем с помощью np.c_ [variable_1, variable_2, variable_n] объединить переменные, которые вы хотите учесть в своих тренировочных данных:

my_regressor_forest.fit(np.c_[column1, column2], my_class_column)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...