显示ValueError:形状(1,2)和(3,1)不对齐:2(dim 1)!= 3(dim 0)

时间:2019-11-20 13:48:59

标签: python machine-learning

我正在尝试运行此代码,并且预测模型(predictions = model.predict(y1))显示标题中建议的错误。我是该地区的新手,有什么帮助吗?

from sklearn import linear_model
regr = linear_model.LinearRegression()

import seaborn as seabornInstance 
from sklearn.model_selection import train_test_split 

from sklearn import metrics


x1 = np.asanyarray(train[['MachineAvailability','StatNumIn','MachineMTTR']])
y1 = np.asanyarray(train[['StatNumOut']])
regr.fit (x1, y1)
# The coefficients
print ('Coefficients: ', regr.coef_)
print('Intercept: \n', regr.intercept_)

y_hat= regr.predict(test[['MachineAvailability','StatNumIn','MachineMTTR']])
x = np.asanyarray(test[['MachineAvailability','StatNumIn','MachineMTTR']])
y = np.asanyarray(test[['StatNumOut']])
print("Residual sum of squares: %.2f"
      % np.mean((y_hat - y) ** 2))

# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % regr.score(x, y))

import tkinter as tk 
import statsmodels.api as sm
from sklearn.decomposition import PCA

X = sm.add_constant(x1) # adding a constant

model = sm.OLS(x1, y1).fit()

predictions = model.predict(y1) 

# prediction with sklearn
New_MachineAvailability = 90
#New_StatNumIn = 90
New_MachineMTTR = 20
print ('Predicted Production: \n', regr.predict([[New_MachineMTTR,New_MachineAvailability ]]))

1 个答案:

答案 0 :(得分:0)

该错误告诉您所有要了解的信息:new Vue({ el: "#app", data() { return { testButClicked: false } }, methods: { testToast() { this.testButClicked = true; } }, watch:{ testButClicked(val){ if (val){ setTimeout(()=>this.testButClicked=false,1000); } } } }) 函数的输入形状与预期的不匹配。

您已经在形状为predict(例如x1)的输入数据上训练了模型,其中(n, k)是行数(轴0),n是行数列(轴1)。这意味着根据列数(即k),predict函数的输入必须与期望的形状匹配。可以有任意数量的行(没关系,只是样本数),但列数(m, k)相同。

在您的情况下,您将kpredict一起运行,这是模型的标签(目标)。它具有不同的形状,可能不是您的意思。如果您通过y1,则可以使用,但毫无意义-x1是您的训练数据。您应该留出一些数据进行测试,例如x1,以便在其上运行预测并评估模型的执行情况。