普通最小二乘
普通最小二乘法是一種在以下意義上找到最符合觀察結果的特徵的線性組合的方法。
如果要預測的結果向量是 y ,並且解釋變數形成矩陣 X ,則 OLS 將找到向量 β 求解
分鐘 β | Y 1 - Y | 2 2 ,
其中 y ^ =Xβ 是線性預測。
在 sklearn 中,這是使用 sklearn.linear_model.LinearRegression
完成的。
應用背景
OLS 應該只應用於迴歸問題,它通常不適用於分類問題:對比度
- 是垃圾郵件嗎? (Classfication)
- upvotes 之間的線性關係是什麼取決於答案的長度? (迴歸)
例
讓我們生成一個帶有一些噪聲的線性模型,然後看看 LinearRegression
管理是否重建線性模型。
首先我們生成 X
矩陣:
import numpy as np
X = np.random.randn(100, 3)
現在我們將 y
生成為 X
與某些噪聲的線性組合:
beta = np.array([[1, 1, 0]])
y = (np.dot(x, beta.T) + 0.01 * np.random.randn(100, 1))[:, 0]
注意,生成 y
的真正線性組合由β給出。
要嘗試僅從 X
和 y
重建這個,讓我們做:
>>> linear_model.LinearRegression().fit(x, y).coef_
array([ 9.97768469e-01, 9.98237634e-01, 7.55016533e-04])
請注意,此向量與 beta
非常相似。