Scikit中的DataConversionWarning拟合RandomForestReturnsor



我正在尝试将RandomForestProgsor安装到我的训练集中

rfr.fit(train_X , train_y)

但不断收到以下警告:

//usr/local/lib/python2.7/dist packages/IPython/kernel/main.py:1:DataConversionWarning:当需要1d数组时,传递了列向量y。请将y的形状更改为(n_samples,),例如使用ravel()。如果name=='main':

我使用Pandas,因此假设训练集可能需要在numpy数组中,也就是所谓的.values:

train_y = train[label].values
train_X = train[features].values

检查类型和形状:

print type(train_X), train_X.shape
print type(train_y), train_y.shape

退货:

<type 'numpy.ndarray'> (20457, 44)  
<type 'numpy.ndarray'> (20457, 1)

不知道下一步该怎么办,只找到了这个答案,但没有多大帮助。

它确实输出了一个结果,但我不知道它是否是正确的。通过交叉验证,它一次又一次地创建警告。

警告告诉你该怎么做,对吗?问题是什么?尽管有警告,结果是否正确?是的,他们是,因为你的意思是使用一维向量y.

如何摆脱警告?如果你的意思是y是一个1d向量,而不是矩阵的一列,那么使用y.ravel()作为警告。

正如警告所说,我们希望将维度从(N,1)更改为(N,)。我们可以使用numpy的ravel函数。

使用np.ravel(train_y)而不是train_y。

你也可以试试train_y.resume((-1,))。

你可以像y.shape=y.shape[0]一样尝试,因为你应该让y.shape(20457,),而不是(20457,1)

相关内容

  • 没有找到相关文章

最新更新