機器學習:回歸演算法
監督學習指的是有目標變數或預測目標的機器學習方法。回歸與分類的不同,就在於其目標變數是連續數值型。
正文中引用到的公式羅列如下
線性回歸
原理
回歸的目的是預測數值型的目標值。最直接的辦法是依據輸入寫出一個目標值的計算公式,該公式就是所謂的回歸方程(regression equation)。求回歸方程中的回歸係數的過程就是回歸。
線性回歸(linear regression)意味著可以將輸入項分別乘以一些常量,再將結果加起來得到輸出。
線性回歸的一個問題是有可能出現欠擬合現象,因為它求的是具有最小均方誤差的無偏估計。為了降低預測的均方誤差,可以在估計中引入一些偏差,其中一個方法是局部加權線性回歸(Locally Weighted Linear Regression, LWLR)。如果數據的特徵比樣本點還多,也就是說輸入數據的矩陣X不是滿秩矩陣,非滿秩矩陣在求逆時會出現問題。為了解決這個問題,可以使用嶺回歸(ridge regression)、lasso法、前向逐步回歸。
嶺回歸:在矩陣 {公式1} 上加一個 lambda*I 從而使得矩陣非奇異,進而能對 {公式2} 求逆。其中矩陣 I 是一個 m*m 的單位矩陣,對角線上元素全為1,其他元素全為0。而λ是一個用戶定義的數值。在這種情況下,回歸係數的計算公式將變成 {公式3}
嶺回歸最先用來處理特徵數多餘樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計。這裡通過引入 lambda 來限制了所有 w 之和,通過引入該懲罰項,能夠減少不重要的參數,這個技術在統計學中也叫做縮減(shrinkage)。
一旦發現模型和測量值之間存在差異,就說出現了誤差。當考慮模型中的「雜訊」或者說誤差時,必須考慮其來源。訓練誤差和測試誤差由三個部分組成:偏差、測量誤差和隨機雜訊。方差是可以度量的。取出兩組隨機樣本集並擬合,得到兩組回歸係數。兩組回歸係數之間的差異大小就是模型方差大小的反映。
如何應用
收集數據:可以使用任何方法。
準備數據:回歸需要數值型數據,標稱型數據將被轉換成二值型數據。
分析數據:繪出數據的可視化二維圖將有助於對數據做出理解和分析,在採用縮減法求得新回歸係數之後,可以將新擬合線繪在圖上作為對比。
訓練演算法:找到回歸係數。
測試演算法:使用 {公式4} 或者預測值和數據的擬合度,來分析模型的效果。
使用演算法:使用回歸,可以在給定輸入的時候預測出一個數值,這是對分類方法的提升,因為這樣可以預測連續型數據而不僅僅是離散的類別標籤。
優缺點
優點:結果容易理解,計算上不複雜。
缺點:對非線性的數據擬合不好。
適用數據範圍:數值型和標稱型。
總結
在回歸方程里,求得特徵對應的最佳回歸係數的方法是最小化誤差的平方和。給定輸入矩陣 X ,如果 {公式1} 的逆存在並可以求得的話,回歸法都可以直接使用。數據集上計算出的回歸方程並不一定意味著它是最佳的,可以使用預測值 yHat 和原始值 y 的相關性來度量回歸方程的好壞。
當數據的樣本數比特徵數還少時,矩陣 {公式1} 的逆不能直接計算。即便當樣本數比特徵數多時, {公式1} 的逆仍有可能無法直接計算,這是因為特徵有可能高度相關。這時可以考慮使用嶺回歸,因為當 {公式1} 的逆不能計算時,它仍保證能求得回歸參數。
嶺回歸是縮減法的一種,相當於對回歸係數的大小施加了限制。另一種很好的縮減法是lasso。Lasso難以求解,但可以使用計算簡便的逐步線性回歸方法來求得近似結果。
縮減法還可以看做是對一個模型增加偏差的同時減少方差。偏差方差折中是一個重要的概念,可以幫助我們理解現有模型並做出改進,從而得到更好的模型。
樹回歸(CART)
原理
CART(Classification And Regression Trees,分類回歸樹)
回歸樹:假設葉節點是常數值,這種策略認為數據中的複雜關係可以用樹結構來概括。為成功構建以分段常數為葉節點的樹,需要度量出數據的一致性。數據集的混亂度即平方誤差的總值(總方差=均方差*樣本個數)。
模型樹:把葉節點設定為分段線性(piecewise linear)函數。
通過降低決策樹的複雜度來避免過擬合的過程稱為剪枝(pruning)。
如何應用
收集數據:可以使用任何方法。
準備數據:回歸需要數值型數據,標稱型數據將被轉換成二值型數據。
分析數據:繪出數據的可視化二維圖,以字典方式生成樹。
訓練演算法:大部分時間都花費在葉節點樹模型的構建上。
測試演算法:使用測試數據上的 {公式4}值來分析模型的效果。
使用演算法:使用訓練出的樹做預測,預測結果還可以用來做很多事情。
優缺點
優點:可以對複雜和非線性的數據建模。
缺點:結果不易理解。
適用數據範圍:數值型和標稱型。
總結
數據集中經常包含一些複雜的相互關係,使得輸入數據和目標變數之間呈現非線性關係。對這些複雜的關係建模,一種可行的方式是使用樹來對預測值分段,包括分段常數或分段直線。一般採用樹結構來對這種數據建模。相應地,若葉節點使用的模型是分段常數則稱為回歸樹,若葉節點使用的模型是線性回歸方程則稱為模型樹。
CART演算法可以用於構建二元樹並處理離散型或連續型數據的切分。若使用不同的誤差準則,就可以通過CART演算法構建模型樹和回歸樹。該演算法構建出的樹會傾向於對數據過擬合。一顆過擬合的樹常常十分複雜,剪枝技術的出現就是為了解決這個問題。兩種剪枝方法分別是預剪枝和後剪枝,預剪枝更有效但需要用戶定義一些參數。
請關注我的微信公眾號「機器學習理論與實踐」,或者搜索微信號「AI_MLTP」。
推薦閱讀:
※[貝葉斯七]之正態分布貝葉斯決策
※機器學習導論——Day8、9
※斯坦福CS231n項目實戰(三):Softmax線性分類
※【機器學習Machine Learning】資料大全
※《機器學習基石》課程學習總結(一)
TAG:機器學習 |