我正在尝试运行此代码,并且预测模型(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 ]]))
该错误告诉您所有需要知道的事情:predict
函数的输入形状与预期不匹配。
您已经在形状为x1
的输入数据上训练了模型,例如(n, k)
,其中n
是行数(轴 0)和k
列数(轴 1)。这意味着predict
函数的输入必须在列数方面与预期的形状匹配,即(m, k)
.可以有任意数量的行(没关系,只是样本数),但k
列数相同。
在您的情况下,您使用y1
运行predict
,这是模型的标签(目标)。它有不同的形状,可能不是你的意思。如果你通过x1
它会起作用,但没有什么意义 -x1
你的训练数据。您应该留出一些数据进行测试,例如x2
,您可以在其中运行预测并评估模型的性能。