當前位置:
首頁 > 最新 > 集成學習入門

集成學習入門

作者:Sagar Howal

編譯:weakish

編者按:Towards Data Science博主Sagar Howal簡明扼要地介紹了集成學習的常用技術。

使用多種不同的模型通常比使用單一模型更可靠。在單個數據集上使用多個協同工作的模型稱為集成(Ensemble)。這一方法稱為集成學習(Ensemble Learning)

投票

你可以使用多種不同的演算法訓練你的模型,然後加以集成以預測最終輸出。比如,你可以使用隨機森林分類器、SVM分類器、線性回歸,等等。模型互相競爭,然後你可以使用的類來挑選最佳表現。

硬投票(hard voting)按照簡單多數原則選擇最終預測。而軟投票(soft voting)僅在所有的分類器都可以為輸出計算概率時才可以使用。軟投票通過對單獨演算法計算出的概率取均值得到最佳結果。

代碼:

以上代碼使用了SVM、線性回歸、隨機森林三種分類器,並進行硬投票。

一般而言,的精確度比單獨分類器要高。確保使用了差異足夠大的分類器,這樣類似的錯誤不會累積。

Bagging和Pasting

除了在單一數據集上運行多個模型以外,你還可以在一個數據集的多個隨機子集上運行單個模型。有放回的隨機取樣稱為Baggingbootstrapaggregaing,引導聚類)。如果這對你而言太不形象的話,你可以想像忽略數據集中的部分隨機條目,然後基於剩下的條目建模。Pasting與此類似,只不過它不允許為同一預測反覆取樣訓練實例。

代碼:

參數指定使用Bagging。改為則使用Pasting。

如果分類器可以計算預測概率,那麼BaggingClassifier會自動進行軟投票。可以計算預測概率的分類器帶有方法。

一般而言,Bagging的結果比Pasting要好很多。

袋外驗證

在訓練集上使用Bagging時,模型只包括63%的實例,這意味著分類器看不到37%的實例。這些實例可以用於驗證,類似交叉驗證。

只需在之前的代碼樣例的類中加上參數即可使用這一功能。

代碼:

目前我們取樣的僅僅是實例。對具有大量特徵的數據集而言,有其他的技術。

隨機補丁和隨機子空間

隨機補丁同時取樣訓練實例和特徵。在中設定特定的參數即可使用:

隨機子空間保留所有樣本,並取樣特徵:

隨機森林

集成決策樹可得隨機森林。隨機森林內部進行Bagging操作。隨機森林創建若干決策樹,有時創建數千決策樹,並為指定數據集計算可能最佳的模型。在分叉節點時,隨機森林並不考慮所有特徵,而是在所有特徵的子集中選擇最佳特徵。這是用更高的偏置交換更低的差異,從而得到更好的模型。

代碼:

參數:

是森林中的決策樹數量限制。

用於設置端節點的最大值,這樣演算法不會因為深深鑽入單一特徵而過擬合。

指定使用的計算機核心數目。意味著使用所有的核心。

可以通過網格搜索變動參數的值以改善該模型。

AdaBoost

儘管AdaBoost技術的數學機制挺嚇人的,它的理念還是很簡單的。首先你選取一個基本分類器,在給定數據集上做出預測。記錄錯誤分類的實例。然後增加錯誤分類的權重。第二個分類器基於更新的權重在訓練集上進行訓練。

簡單來說,運行一個分類器並做出預測。運行另一個分類器擬合之前錯誤分類的實例並做出預測。重複此過程直到擬合所有/大部分訓練實例。

AdaBoost不使用決策樹,而使用決策樹樁(Decision Stump),決策樹樁可以看成的決策樹,即,由一個決策節點和兩個葉節點組成的樹。AdaBoost的參數設定決策樹樁的數目。

代碼

Scikit-learn使用了Adaboost的多類版本,稱為SAMME(多類指數損失函數逐步添加模型,Stagewise Additive Modelling using a Multiclass Exponential Loss Function)。如果預測器可以計算概率(具備方法),Scikit Learn使用SAMME.R(R代表實數),該演算法基於概率,更不容易過擬合。

如果發生了過擬合,嘗試正則化你的基本估計量。

梯度提升

類似AdaBoost,梯度提升同樣基於加入集成的後續預測模型。和AdaBoost不同,梯度提升並不更新訓練實例的權重,梯度提升讓新模型去擬合殘差。

簡單來說,用一個模型擬合給定的訓練集。計算殘差,這些殘差將成為新的訓練實例,並在其之上訓練一個新模型。所有模型相加以做出預測。

代碼

學習率()參數收縮每棵樹的分布。和需要折衷。降低的值會增加集成中的樹的數量。這稱為收縮(Shrinkage)。注意,過大可能導致過擬合。需要仔細監測這一折衷。

XGBoost

XGBoost是最近出現的、最受推崇的強大梯度提升方法。XGBoost不在葉節點處做出強硬的「是」和「否」決策,而是給每個做出的決定分配一個正值或負值。所有樹都是一個弱學習者,提供比隨機猜測稍好的決策。但將它們收集起來加以平均後,XGBoost表現非常好。

代碼


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 論智 的精彩文章:

TAG:論智 |