1. 程式人生 > >Python機器學習:7.1 集成學習

Python機器學習:7.1 集成學習

src 概率 森林 技術分享 ali 集成學習 tag 相關 目錄

集成學習背後的思想是將不同的分類器進行組合得到一個元分類器,這個元分類器相對於單個分類器擁有更好的泛化性能。比如,假設我們從10位專家那裏分別得到了對於某個事件的預測結果,集成學習能夠對這10個預測結果進行組合,得到一個更準確的預測結果。

後面我們會學到,有不同的方法來創建集成模型,這一節我們先解決一個基本的問題:為什麽要用集成學習?她為什麽就比單個模型效果要好呢?

本書是為初學者打造的,所以集成學習這裏我們也只關註最基本的集成方法:投票法(majority voting)。投票法意味著我們在得到最後的預測類別時,看看哪個類別是大多數單分類器都預測的,這裏的大多數一般是大於50%。更嚴格來說,投票法只適用於二分類,當然他很容易就擴展到多分類情況: 多數表決(plurality voting).

下圖展示了一個投票法的例子,一共10個基本分類器:

技術分享圖片

我們先用訓練集訓練m個不同的分類器技術分享圖片, 這裏的分類器可以是決策樹、SVM或者LR等。我們當然也可以用同一種分類器,只不過在訓練每一個模型時用不同的參數或者不同的訓練集(比如自主采樣法)。隨機森林就是一個采用這種策略的例子,它由不同的決策樹模型構成。這圖展示了用投票策略的集成方法步驟:

技術分享圖片

投票策略非常簡單,我們收集每個單分類器技術分享圖片的預測類別技術分享圖片,將票數最多的技術分享圖片作為預測結果:

技術分享圖片

以二分類為例,類別class1=-1, class2=+1, 投票預測的過程如下, 把每個單分類器的預測結果相加,如果值大於0,預測結果為正類,否則為負類:

技術分享圖片

讀到這裏,我想大家都有一個疑問:憑啥集成學習就比單分類器效果好?道理很簡單(一點點組合數學知識),假設對於一個二分類問題,有n個單分類器,每個單分類器有相等的錯誤率技術分享圖片

,並且單分類器之間相互獨立,錯誤率也不相關。 有了這些假設,我們可以計算集成模型的錯誤概率:

技術分享圖片

如果n=11,錯誤率為0.25,要想集成結果預測錯誤,至少要有6個單分類器預測結果不正確,錯誤概率是:

技術分享圖片

集成結果錯誤率才0.034哦,比0.25小太多。繼承結果比單分類器好,也是有前提的,就是你這個單分類器的能力不能太差,至少要比隨機猜測的結果好一點,至少。

從下圖可以看出,只要單分類器的表現不太差,集成學習的結果總是要好於單分類器的。

技術分享圖片

Python機器學習中文版目錄(http://www.aibbt.com/a/20787.html)

轉載請註明出處,Python機器學習(http://www.aibbt.com/a/pythonmachinelearning/)

Python機器學習:7.1 集成學習