在一本书更高程度的功能,我发现下面的代码,适合一个线性回归至二次数据:配件使用PolynomialFeatures和线性回归
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
但怎么可能?我从documentation知道PolynomialFeatures(degree=2, include_bias=False)
是创建一个数组,看起来像:
[[X[0],X[0]**2]
[X[1],X[1]**2]
.....
[X[n],X[n]**2]]
BUT:如何是线性回归能够适应这个数据?意思是LinearRegression正在做什么,背后有什么概念。
我很感激任何解释!
好的谢谢。现在可以说,线性回归函数找到了最佳参数,其中a = 1,b = 2和c = 3,比第一行的函数变为:y = 3x ** 2 + 2x + 1。现在?? 1.什么是LinearRegression在做什么,因为这个函数不是线性的...... 2.另外,如果LinearRegression正在为数组中的每一行做这件事,那么在一个* m数组中,是否正确计算n个线性回归? 3.我还没有得到如何线性回归可以得到弯曲的形状? – 2Obe
@ 2Obe看到我更新的答案。 –
附加功能意味着附加的轴是否正确?因此,二维坐标系中的线性回归曲线可能看起来像一条曲线,但实际上它仍然是一条直线,但在更高维空间中? – 2Obe