線性回歸算法概述
前面的2~7章節(jié)講解的是“分類”算法,本章開始將介紹“回歸”算法。
“回歸”和“分類”都屬于監(jiān)督學習算法,不同的是:分類的目標變量是標稱型數據,而回歸的目標變量是連續(xù)的數值型數據。
“回歸”(regression)一詞的來歷
今天我們所知道的歸回是由達爾文的(Charles Darwin)表兄弟Francis Galton發(fā)明的。Galton于1877年完成了第一次回歸預測,目的是根據上一代豌豆種子(雙親)的尺寸來預測下一代豌豆種子(孩子)的尺寸。Galton在大量對象上應用了回歸分析,甚至包括人的身高。他注意到,如果雙親的高度比平均高度高,他們的子女也趨向于比平均高度高,但尚不及雙親。孩子的高度向著平均高度回退(回歸,regression)。Galton在多項研究上都注意到這個現象,所以盡管這個英文單詞跟數值預測沒有任何關系,但這種研究方法仍被稱做回歸。
假如你要預測姐姐男友汽車功率的大小,可能會這么計算:
馬力=0.0015*年收入 - 0.99*每月房貸
上面的公式就是所謂的回歸方程(regression equation),其中的0.0015和-0.99稱作回歸系數(regression weight),求這些回歸系數的過程就是回歸。顯而易見,一旦有了回歸系數,在給定輸入,做預測就非常容易了。
優(yōu)點:結果易于理解,計算上不復雜。
缺點:對非線性的數據擬合不好。
使用數據類型:數值型和標稱型數據。
入門案例
本章節(jié)主要講解的是線性回歸(linear regression),具體的做法是用回歸系數乘以輸入值,再將結果全部加在一起,就得到了預測值。




在局部加權線性回歸算法中,對權重系數k的取值是比較重要的,這就要求我們對模型進行多次試算,得到最佳效果。
工作原理
在回歸方程里,求得特征對應的最佳回歸系數的方法是最小化誤差的平方和(方差)。在訓練集上得到的回歸方程并不一定意味著它是最佳的,可以使用測試集加以驗證,驗證的方法是用預測值和原始值的偏差來度量回歸方程的好壞。偏差和方差折中是一個重要的概念,可以幫助我們理解現有模型并做出改進,從而得到更好的模型。
在兩種情況下,線性回歸算法會失效:
1.當數據的樣本數比特征數還少的時候,會因為無法對矩陣求逆導致錯誤。即便當樣本數比特征數多的時候,仍然有可能無法直接計算,這是因為特征有可能高度相關。出現這樣的情況時,可以考慮使用“嶺回歸”或“逐步線性回歸”算法。
2.預測值與特征之間是非線性關系,這種情況下使用線性的模型就難以擬合。
一般流程
1.收集數據:采用任意方法收集數據;
2.準備數據:回歸需要數值型數據,應將標稱型數據做相應的轉換;
3.分析數據:繪制出數據的可視化二維圖有助于對數據做出理解和分析,在采用縮減法求得回歸系數后,可以將新擬合線繪制在圖上作為對比;
4.訓練算法:找到回歸系數;
5.測試算法:使用預測值和數據的擬合度,來分析模型的效果;
6.使用算法:使用回歸,可以在給定輸入的時候預測出一個數值,這是對分類方法的提升,因為這樣可以預測連續(xù)型數據而不僅僅是離散的類別標簽。
可使用場景
1.預測鮑魚的年齡
2.預測二手樂高玩具的交易價
3.預測機票價格
......