1. 程式人生 > >機器學習基礎(三十) —— 線性迴歸、正則化(regularized)線性迴歸、區域性加權線性迴歸(LWLR)

機器學習基礎(三十) —— 線性迴歸、正則化(regularized)線性迴歸、區域性加權線性迴歸(LWLR)

1. 線性迴歸

線性迴歸根據最小二乘法直接給出權值向量的解析解(closed-form solution):

w=(XTX)1XTy

線性迴歸的一個問題就是有可能出現欠擬合現象,因為它求的是具有最小均方誤差(LSE,Least Square Error)的無偏估計。顯然,如果模型欠擬合將不能取得最好的預測結果,所以有些方法允許在估計中引入一些偏差,從而降低預測的均方誤差。

2. 正則化線性迴歸

w=(XTX+λI)1XTy
  • 比如首先取 λ=0.2,來觀察效果;

3. LWLR

其中的一個方法就是區域性加權線性迴歸(Locally Weighted Linear Regression,LWLR),在該演算法中,我們給待測點附近的每一個點賦予一定的權重。該演算法解出迴歸係數 w


w=(XTWX)1XTWy

LWLR 使用核來對待測點(xn)附近的點賦予更高的權重。核的型別可以自由選擇,最常用的核就是高斯核,高斯核對應的權重如下:

w(i,i)=exp(xy22k2)

這就構建了一個只含對角元素的權值矩陣 W

def lwlr(X, y, x0, k=1.):
    W = np.diag(np.linalg.norm(X-x0, axis=1)/(-2*k**2))
    xTx = X.T.dot(W).dot(X)
    if np.linalg.det(xTx) == 0.:
        return
    ws = np.linalg.inv(xTx).dot(X.T.dot(W).dot(y))
    return
x0.dot(ws)