在一本書更高程度的功能,我發現下面的代碼,適合一個線性迴歸至二次數據:配件使用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