我需要从 sklearn.ensemble
安装 RandomForestRegressor
。
forest = ensemble.RandomForestRegressor(**RF_tuned_parameters)
model = forest.fit(train_fold, train_y)
yhat = model.predict(test_fold)
这段代码一直有效,直到我对数据进行了一些预处理( train_y
)。错误消息说:
DataConversionWarning:在需要一维数组时传递了列向量 y。请将 y 的形状更改为 (n_samples,),例如使用 ravel()。
模型 = forest.fit(train_fold, train_y)
以前 train_y
是一个系列,现在是 numpy 数组(它是一个列向量)。如果我申请 train_y.ravel()
,那么它变成一个行向量并且没有错误消息出现,通过预测步骤需要很长时间(实际上它永远不会完成……)。
在 RandomForestRegressor
的文档中,我发现 train_y
应该定义为 y : array-like, shape = [n_samples] or [n_samples, n_outputs]
知道如何解决这个问题吗?
原文由 Klausos Klausos 发布,翻译遵循 CC BY-SA 4.0 许可协议
更改此行:
到:
解释:
.values
将给出numpy
数组(形状:(n,1))中的值.ravel
将该数组形状转换为 (n, )(即展平)