1. 程式人生 > 實用技巧 >Python機器學習 預測分析核心演算法1

Python機器學習 預測分析核心演算法1

最近在學習Michael Bowles著的《Python 機器學習預測分析核心演算法》,記錄一下學習過程。

1.關於預測的兩類核心演算法

解決函式逼近問題的兩類演算法為:懲罰線性迴歸和整合方法。
1.1 什麼是懲罰迴歸方法
懲罰線性迴歸方法是由普通最小二乘法衍生出來的。最小二乘法的一個根本問題就是有時它會過擬合。
來自所看教材
如上圖左圖,這是一個由6個點的資料集,通過普通最小二乘法擬合出的直線。如課本的假設,目標值為工資,特徵值為男人的身高。那麼這條直線就代表了對男人收入的最佳預測。
但是如果我們無法獲取全部的點,假設只能獲取六個點中的任意兩個點,那麼擬合出來的直線就取決於我們得到的兩個點,如右圖。
直線的自由度為2,而很明顯,對在自由度與點數相同的情況下所做的預測並不能報以太大的信心。然而在很多時候點數甚至是小於自由度的,在這種情況下,懲罰線性迴歸就是最佳的選擇了。

懲罰線性迴歸可以減少自由度使之與資料規模、問題的複雜度相匹配。尤其是在面對類似於基因問題或者是文字分類問題的時候,更是得到大量的使用。
1.2 什麼是整合方法
整合方法的基本思想是構建多個不同的預測模型,然後將其輸出做某種組合,如取平均值或採用多數人的意見(投票)。單個預測模型叫做基學習器。計算學習理論的研究結果證明只要基學習器比隨機猜測稍微好些,整合方法就可以得到相當好的效果。
整合方法為了實現最廣泛的應用通常將二元決策樹作為它的基學習器。二元決策樹通常如下圖所示。在這裡插入圖片描述
關於比較值和輸出值,都是來自己基於輸入資料的二元決策樹的訓練。給定輸入資料的話,這些值都會是很確定的。
一種獲得不同模型的方法是先對訓練資料隨機取樣,然後基於這些隨機資料自己進行訓練,這種技術叫做投票
(自舉整合演算法)。
1.4 演算法的選擇
線性模型傾向於訓練速度快,並且經常能夠提供與非線性整合方法相當的效能,特別是當能獲取的資料受限時。因為訓練時間短,在早期特徵選取階段訓練線性模型是很方便的,然後可以大致估計針對特定問題可以達到的效能。
整合方法通常能提供更好的效能,也可以提供相對間接的關於結果的貢獻的評估。