分類器的組合算法提升准確率概要


分類器提升精確度主要就是通過組合,綜合多個分類器結果,對最終結果進行分類。

 

組合方法主要有三種:裝袋(bagging),提升(boosting)和隨即森林。

裝袋和提升方法的步驟:

1,基於學習數據集產生若干訓練集

2,使用訓練集產生若干分類器

3,每個分類器進行預測,通過簡單選舉(裝袋)或復雜選舉(提升),判定最終結果。

 

如上圖所示,對數據集D,取得D1~Dk個子集,然后用M1~Mk個不同分類器進行分類訓練,然后用測試集(新元組)得到預測結果,

最后對這k個結果使用少數服從多數原則判定。如用99種分類方法得到55個結果是1,44個結果是0,則判定最終結果為1。

 

 

在提升(boosting)算法中,可以看成是裝袋的改進,即可以理解為加權投票。這里具體介紹adaptive boosting算法

該算法基本和袋裝一致,就是新引入一個權重的概念,首先,在(1)初始化中,權重1/d,即每個元組(Di)權重一致,在地(9)~(11)步中,

對權重進行不斷刷新,這里我們可以發現,被正確分類的元組的權重是一直乘以一個小於1的數,即被正確分類的元組,在被選為訓練集Di的可能性降低,

分類器會關注“難以分類”的數據。我們是基於一個“某種分類器可能對某種特定的數據分類效果好”的信念上。

補充:元組概念:元組就是最小數據單位,比如人是一個元組,有身高,體重等屬性。

 

在對數據進行訓練后,就是用組合分類器。

 

這里我們看到,有出現一個權重,分類器的投票的權重,這個權重是依照分類器的准確率(錯誤率越低,權重越高)。

 

接下來是介紹決策樹的提升算法:隨機森林。

 隨機森林實際非常直觀,就是用上文提到的隨機裝袋方法,對每個Di構建決策數,這里用CART算法建樹(只需要計算Gini指數),不剪枝。

然后對讓森林里所有的樹進行投票即可。

 

附上R語言的隨機森林事例:

//如果沒有安裝randomForest包,要先install.packages("randomForest")
library(randomForest) model.forest = randomForest(Species~.,data=iris) pre.forest=predict(model.forest,iris) table(pre.forest,iris$Species)

  

正確率高達100%

而用單一的決策樹

library(rpart)
model.tree=rpart(Species~.,data=iris,method = "class")
pre.tree=predict(model.tree,data=iris,type="class")
table(pre.tree,iris$Species)

發現有一部分數據會被判錯。

 

ps:組合分類器的算法摘自韓佳煒《數據挖掘概念與技術》。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM