Sklearn LinearRegression形状未对齐

时间:2017-11-22 09:44:06

标签: python scikit-learn jupyter-notebook linear-regression

我尝试使用sklearn进行线性回归预测。

我有两个数字列表(年龄以秒表示1970年)和一些价格。

当我尝试预测我的行时,我收到以下错误:

ValueError:形状(1,1000)和(14697,14697)未对齐:1000(暗淡1)!= 14697(暗淡0)

我的代码:

inkoop = np.asarray(list(df['Bedrag_Inkoop_Ingediend_Mono']),dtype=np.number)
tempT = list(df['dtGeboorteDatum'])

dtAge = np.asarray([(time-datetime.date(1970,1,1)).total_seconds() for time in tempT],dtype=np.number)

dtAgeTestY = dtAge[-1000:]
dtAgeTrainY = dtAge[:-1000]
inkoopTestX = inkoop[-1000:]
inkoopTrainX = inkoop[:-1000]
regr = linear_model.LinearRegression()
regr.fit(inkoopTrainX,dtAgeTrainY.reshape(1,-1))
agePredictY = regr.predict(inkoopTestX.reshape(1,-1))

# The coefficients
print('Coefficients: \n', regr.coef_)

# The mean squared error
print("Mean squared error: %.2f"
      % mean_squared_error(inkoopTest, agePredictY))

# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(inkoopTest, agePredictY))

plt.scatter(inkoopTestX, dtAgeTestY,  color='black')
plt.plot(dtAgeTestY, agePredictY, color='blue', linewidth=3)

plt.xticks(())
plt.yticks(())

plt.show()

他在agePredictY = regr.predict(inkoopTestX.reshape(1,-1))上出错。我也试过没有重塑

1 个答案:

答案 0 :(得分:1)

您正在重新设定X方法的predict输入,而不是X方法的fit输入。你应该只做一个或另一个。 例如

X = inkoop.reshape(-1, 1) # many rows, one feature
trainX = X[:1000]
testX = X[-1000:]
regr.fit(trainX, trainY)
regr.predit(testX)