0
from sklearn import linear_model
regr = linear_model.LinearRegression()
x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
y = np.asanyarray(train[['CO2EMISSIONS']])
regr.fit (x, y)
# The coefficients
print ('Coefficients: ', regr.coef_)
x1 = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
y1 = np.asanyarray(test[['CO2EMISSIONS']])
xy = regr.predict(y1)
print(xy) // an error is generating while printing this (valueError)

这适用于简单的线性回归,但这里不适用于多元线性回归

4

2 回答 2

1

regr.predict期望相同的形状x

此外,当你想预测某事时,它应该基于一些输入,而不是输出。

所以,xy = regr.predict(y1)错了。

你应该试试xy = regr.predict(x1)

于 2020-01-06T19:34:15.717 回答
0

它在简单回归中起作用(但实际上它是不正确的)的原因在于您向regr.predict. 如前所述,这应该是regr.predict(x1)instread 的regr.predict(y1),因为您试图从y1 预测 x1。该算法不会“区分”简单回归x1y1简单回归,因为它们都是一维数组,因此不会引发错误。

但是,在多元回归中,您可以在 2D 或 3D 或...N 维x数组上拟合方程。因此,当您运行时regr.predict(y1),它会引发错误,因为您试图使用一维y1数组进行预测。

只需替换regr.predict(y1)regr.predict(x1),它将适用于简单和多重回归。

于 2020-01-07T16:31:22.680 回答