Bagging(R語言實現)—包外錯誤率,多樣性測度


1.      Bagging

Bagging即套袋法,其算法過程如下:

  1. 從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)

  2. 每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。(注:這里並沒有具體的分類算法或回歸方法,我們可以根據具體問題采用不同的分類或回歸方法,如決策樹、感知器等)

  3. 對分類問題:將上步得到的k個模型采用投票的方式得到分類結果;對回歸問題,計算上述模型的均值作為最后的結果。(所有模型的重要性相同)

2.      算法設計過程

2.1.    隨機采樣方法

樣本總數150條(Iris數據集)

抽樣方法是有放回隨機抽樣。對150個樣本的數據集,進行150次又放回隨機采樣,這樣得到具有和原樣本空間同等大小的樣本集。

這樣操作clip_image002次,得到訓練樣本。33個用決策樹C5034個朴素貝葉斯,33個用KNN

2.2.    模型評價方法

2.2.1.  包外錯誤率

由抽樣方法可知,每次抽樣大約有36.8%的數據未被抽到,這36.8%將作為包外數據clip_image004,包外錯誤率:

clip_image006

 

 

 

clip_image008

1 包外錯誤率

 

 

 

2.2.2.  成對多樣性度量

a->兩個個體學習器對同一條數據(h1=h2=Class),分類都與原數據集分類相同的總和

b->兩個個體學習器對同一條數據(h1=class,h2!=Class)

c->兩個個體學習器對同一條數據(h1!=class,h2=Class)

d->兩個個體學習器對同一條數據(h1!=class,h2!=Class),分類都與原數據集分類都不相同的總和

 

       K統計量

clip_image010

 

           Q統計量

clip_image012

 

 相關系數

clip_image014

 

 

 

不一致度量

clip_image016

 

                             表1兩個分類器的分類結果組合情況

 

clip_image018

clip_image020

clip_image022

clip_image024

clip_image026

clip_image028

clip_image030

clip_image032

 

2 多樣性度量矩陣

clip_image034

 

 

 

2.3.    偽代碼

輸入:clip_image036,弱分類器迭代次數T=100,弱分類器B

輸出:clip_image038  %集成學習器

 

過程:

for i to T

    clip_image040           %Bagging采樣,總共T

    clip_image042     %獲得包外測試集

    clip_image044        %學習器訓練得到個體學習器

    clip_image046  %包外錯誤率

 

end

for i to T

    for j=i+1 to T

         統計a,b,c,d

         計算clip_image048

         clip_image050  %多樣性測度矩陣

end

end

 

3.      附錄

數據集簡介:

2 iris

sepal length

萼片長度
sepal width
萼片寬度
petal length
花瓣長度
petal width
花瓣寬度

Class

Iris-setosa -> 1
Iris-versicolor -> 2
Iris-virginica-> 3

 

 R語言中的坑

第一次用R語言 

例如

testData<-read.csv("G:\\testData.csv", header = FALSE)

將數據集導入之后 調用相關KNN NavieBayes等函數無法成功 原因是在導入的時候 數據集的class列 被自動轉換成了整型(int)

tempTrain[,nc]<-as.factor(tempTrain[,nc]) 

調用as.factor()將class轉換為因子 就可解決

還有 代碼重復利用率低的問題 在下一次更新代碼之中 可以解決

感謝大家批評指正

源代碼(R)https://github.com/arlenlee/dataMining


免責聲明!

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



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