我正在Python中构建一个随机森林模型,并将sklearn作为基线,与来自内置kera的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格式。现在我正在考虑迭代3D数组以创建2D数组。对于要素,2D数组将为7列(每个通道一列),每列的每行包含时间序列数据作为列表或系列。
有关如何重组此数据的其他任何想法?任何其他建议表示赞赏。
提前致谢。
作为参考,我查看了这些链接:
Reshaping 3D Numpy Array to a 2D array
numpy with python: convert 3d array to 2d
Sklearn Error, array with 4 dim. Estimator <=2
https://machinelearningmastery.com/index-slice-reshape-numpy-arrays-machine-learning-python/
答案 0 :(得分:0)
另一个选择是创建一维数组,然后使用np.c_ [variable_1,variable_2,variable_n]连接您想要在训练数据中考虑的变量:
my_regressor_forest.fit(np.c_[column1, column2], my_class_column)
答案 1 :(得分:0)
我会自动执行以下两项操作之一