使用多项式回归时如何解释从LinearRegression()。coef_返回的系数

我有一个训练数据集x_train,具有6个特征/变量和目标y_train。这些存储在pandas数据框中。

我已对此进行了线性回归,以获得y = b + m_1*x_1 + m_2*x_2 + ... + m_6*x_6形式的模型。当我打印LinearRegression().coef_时,我得到一个如下的numpy数组:[[m_1,m_2,m_3,m_4,m_5,m_6]]。由此,我可以很好地提取系数mi

现在,我正在尝试对此数据进行二次回归。我希望这能给我一个y = b + m_{11}*x_1 + m_{12}*x_1^2 + m_{21}*x_2 + m_{22}*x_2^2 + ... + m_{62}*x_6^2形式的模型。因此,我希望我应该得到12个系数m_11,m_12,m_21,m_22,m_31,m_32,m_41,m_42,m_51,m_52,m_61,m_62。相反,当我按以下代码所示打印qm.coef_时,得到的是长度为28的numpy数组:

>>> print(qm.coef_)
[ 5.23243620e-08 -4.52818442e+01 -1.69803868e-02  1.23876223e+00
 -1.31251424e+01  6.34950041e+01 -5.65064601e-02 -3.04164916e+00
  1.22800976e-03 -1.81908736e-02 -1.38319879e+00 -1.88468027e+00
  8.98960781e-03 -5.10163574e-07  5.60756672e-04 -8.52068126e-04
 -5.09033748e-03  2.67482109e-06  1.10815787e-01 -7.45059709e-01
 -1.05108447e+00  6.37628573e-05 -9.12589844e-01 -1.22173903e+00
 -5.47228030e-04  6.34950042e+01 -5.39225901e-03  2.21487661e-06]

我的问题是,为什么我要28?我要寻找的12个在哪里,其他16个系数又是什么?


这是我的代码:

poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(x_train)
poly.fit(X_poly,y_train)
qm = LinearRegression()
qm.fit(X_poly,y_train)
print(qm.coef_)

A similar question,尚无答案。 Another similar question,未正确回答。

lingda2009 回答:使用多项式回归时如何解释从LinearRegression()。coef_返回的系数

您忘记了leftBarButtonItem也在变量之间使用叉积,而不仅仅是变量平方。在对多项式使用Polynomial regression时,不仅使用fitgrade 1变量,还使用叉积:

在两个变量回归grade 2的情况下,您将期望具有5个系数:

(X1,X2)

此外,在您有6个变量的情况下,变量之间有16种可能的组合。考虑到您拥有Y = m1 * x1 + m2 * x2 + m3 * x1 ** 2 + m4 * x2 ** x2 + m5 * x1 * x2 1级变量,6 2级变量以及它们之间的组合6,以及基本参数:15

,

那不是编程问题,但这是解释:

有6个特征,因此a1 * x1 + a2 * x2 .. + a6 * x6将产生6个theta。 现在它们的平方作为特征,因此a7 * x1 ^ 2 + a8 * x2 ^ 2 + .. + a12 * x6 ^ 2会再形成6个theta。 现在,像x1 * x2之类的组合将产生6C2 theta,即15。 同样,最后,原点移动θa0, 因此总计:1 + 12 + 15 = 28 thetas

本文链接:https://www.f2er.com/2684253.html

大家都在问