Я строю модель случайного леса в 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/