【问题标题】:error while printing the predicted value in multiple linear regression在多元线性回归中打印预测值时出错
【发布时间】:2020-04-24 08:01:55
【问题描述】:
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)

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

【问题讨论】:

    标签: python-3.x scikit-learn linear-regression olsmultiplelinearregression


    【解决方案1】:

    regr.predict 期望与x 具有相同的形状。

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

    所以,xy = regr.predict(y1) 是错误的。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-06-11
        • 2021-01-04
        • 2021-01-19
        • 2019-11-26
        • 2020-10-25
        • 2015-06-21
        • 2014-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多