.fit()错误:找到样本数不一致的数组

时间:2016-06-27 16:01:32

标签: python numpy scikit-learn

y1是一个长度为106的numpy.ndarray(代表以米为单位的高度)

x1是一个长度为106的numpy.ndarray(代表对应于高度的男孩的年龄)

我试图通过使用梯度下降的线性回归来预测给定年龄的高度,然后将其绘制为3D表面图。

当我尝试做.fit()时,它会告诉我

  

ValueError:找到样本数不一致的数组:[1 106]

import numpy as np
from sklearn import linear_model

x1 = np.fromfile('ex2x.dat', float)
y1 = np.fromfile('ex2y.dat', float)

clf = linear_model.SGDRegressor(alpha=.007)

clf.fit(x1, y1)


y_predicted = clf.predict(3.5)

1 个答案:

答案 0 :(得分:2)

预期的数组形状为:

  • (n_samples,1)表示x1,表示带有一列的2D数组(因为您有一个要素)
  • (n_samples,)表示y1,表示1D数组。

如果你的第一个数组是1D,你应该重塑它:

x1 = np.fromfile('ex2x.dat', float).reshape(-1, 1)

这是一个小型的自包含示例:

import numpy as np
from sklearn import linear_model

x1 = np.array(range(10)).reshape(-1, 1)
y1 = np.array([k**.5 for k in range(10)])

clf = linear_model.SGDRegressor(alpha=.0007)
clf.fit(x1, y1)

y_predicted = clf.predict(3.5)