1. 程式人生 > >線性迴歸演算法和一些技巧

線性迴歸演算法和一些技巧

1 基本概念

1.1 工作原理

做線性迴歸時,我們通常會使用“普通最小二乘法”,即將目標函式定為平方誤差 ,對w求導,令其為零得


這是當前可以估計出的w的最優解,即迴歸方程的引數。

2.1 區域性加權線性迴歸

線性迴歸的一個問題是可能出現欠擬合現象(測試誤差高),因為它求的是最小均方誤差的無偏估計。所以我們允許在估計中引入一些偏差,從而降低預測的均方誤差。

我們考慮的是區域性加權,給帶預測點附近的每個點賦予一定的權重,然後在給予最小均方差進行迴歸。權重的賦予方法是使用核函式,離預測點越近的點,權重越大(程度與使用者指定的引數有關)。

這種方法的優點是大多資料點的權重接近零,不需要計算。

2 縮減係數

2.1 嶺迴歸

在使用上述方法訓練時,有時會出現問題。例如當資料的特徵比樣本點還多時,矩陣x就不是滿秩矩陣,從而無法求逆。嶺迴歸的方法是在矩陣XTX上加一個對角矩陣使得其非奇異,進而可以求逆。


嶺迴歸現在也用來在估計中加入偏差,通過引入lambda懲罰項,能夠減少不重要的引數(或降低不重要係數的權重),這個技術叫縮減。

2.2 lasso

方法類似,限制迴歸係數。

2.3 前向逐步迴歸

一種貪心演算法,即每一步都儘可能減少誤差。一開始,所有的權重都設為1,然後每一步所做的決策時對某個權重增加或減少,計算對誤差的影響,最終選擇能使誤差降到最小的權重。

優點是能夠幫助人們理解現有的模型並作出改進,當構建一個模型後,可以執行該演算法找出重要的特徵,然後可以及時停止 不重要特徵的收集。

3 偏差與方差


圖中下面的曲線是訓練誤差,上面的曲線是測試誤差。可以看到,隨著模型複雜度的提高,訓練誤差和測試誤差逐漸降低,但當模型過於複雜(越來越小的核),變得過擬合的時候,測試誤差開始升高,這也意味著模型的方差越來越高。所以我們在選擇模型時,要同時考慮偏差和方差,通過實際效果看看兩者折中的情況。

優點:結果易於理解,計算不復雜

缺點:對非線性資料擬合的不好

參考資料:統計學習方法(李航)、機器學習實戰(Peter)