我离开sklearn有一段时间了,显然忘记了一些关键的东西(可能很简单(。我想拟合一个由6696个样本和四个特征组成的数据集:X.shape
是(6696,1(,y.shape
是(6696,4(。但是regressor.fit()
函数在抱怨y数组——我缺少什么?
>>> X
array([[ 50.],
[ 50.],
[ 50.],
...,
[750.],
[750.],
[750.]])
>>> y
array([[ 7776., 13364., 3468., 29436.],
[ 7156., 13780., 3480., 29264.],
[ 6924., 12444., 3636., 29152.],
...,
[27404., 27764., 18136., 31328.],
[25896., 27580., 12696., 31480.],
[21892., 18540., 5000., 31656.]])
>>> regressor = SVR(kernel='rbf')
>>> regressor.fit(X, y)
ValueError: y should be a 1d array, got an array of shape (6696, 4) instead.
(附言:是的,一旦我让这个部分工作起来,我就会使用StandardScaler()
来规范特征。(
Doh。已解决。我把X和y混合在一起。工作解决方案(注意y必须是1d数组,而不是列(:
>>> y.ravel()
array([ 50., 50., 50., ..., 750., 750., 750.])
>>> X
array([[ 7776., 13364., 3468., 29436.],
[ 7156., 13780., 3480., 29264.],
[ 6924., 12444., 3636., 29152.],
...,
[27404., 27764., 18136., 31328.],
[25896., 27580., 12696., 31480.],
[21892., 18540., 5000., 31656.]])
>>> regressor = SVR(kernel='rbf')
>>> regressor.fit(X, y)
SVR()