sklearn LinearRegression中的coef_到底是什么?如何从中解释公式?

4
当我使用sklearn中的LinearRegression时,我会执行以下操作:
m = 100
X = 6*np.random.rand(m,1)-3
y = 0.5*X**2 + X+2 + np.random.randn(m,1)
lin_reg = LinearRegression()
lin_reg.fit(X,y)
y_pred_1 = lin_reg.predict(X)
y_pred_1 = [_[0] for _ in y_pred_1]

当我绘制(X,y)和(X,y_pred_1)时,它似乎是正确的。

我想通过以下公式创建最佳拟合直线:

y= (lin_reg.coef_)x + lin_reg.intercept_

我手动将值插入到使用coef_,intercept_得到的公式中,并将其与从lin_reg.predict(value)预测的值进行比较,发现它们是相同的,因此lin_reg.predict实际上使用了我使用coef,intercept得到的上述公式。

我的问题是如何为简单多项式回归创建公式?

我会这样做:

poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly_2 = poly_features.fit_transform(X)

poly_reg_2 = LinearRegression()
poly_reg_2.fit(X_poly_2, y)

然后poly_reg_2.coef_给我的是array([[0.93189329, 0.43283304]]),而poly_reg_2.intercept_ = array([2.20637695])
由于这是“简单”的多项式回归,它应该看起来像y = x^2 + x + b,其中x是同一个变量。
poly_reg_2.coef_中,哪一个是x^2,哪一个不是?
1个回答

5
感谢 https://www.youtube.com/watch?v=Hwj_9wMXDVo,我深入了解并学会了如何解释多项式回归公式。
对于二次回归,其公式为:
y = b + m1x + m2(x^2),其中m1和m2分别表示一次和二次项系数。
因此,在我的情况下,两个系数按顺序排列就是m1和m2。
最终的公式为:
y = b + 0.93189329x + 0.43283304(x^2)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接