日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【原】关于AdaBoost的一些再思考

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原】关于AdaBoost的一些再思考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Decision Stumps:

Decision Stumps稱為單層分類器,主要用作Ensemble Method的組件(弱分類器)。一般只進行一次判定,可以包含兩個或者多個葉結點。對于離散數據,可以選取該屬性的任意一個數據作為判定的分割點;對于連續數據,可以選擇屬性的一個閾值做為分割點進行判定(大于該閾值分配到一類,小于該閾值分配到另一類;當然也可以選取多個閾值并由此得到多個葉結點)。

?

二、AdaBoost的理解:

1、基本流程

簡單的說,AdaBoost框架就是根據指定的參數,進行輪訓練得到個弱分類器及每個弱分類器對應的權重,最后將這些弱分類器的結果進行線性組合得到最終的結果。

關于多屬性數據集的處理:

在每一輪訓練過程中,在每個屬性上根據分割的閾值不同得到多個單層分類器。在這些從所有屬性上得到的分類器中選取一個帶權誤差率最小的單層分類器作為該輪訓練的弱分類器。

?

2、帶權分類誤差

在進行訓練之前,為訓練集中的每個樣本分配一個權重,使用向量表示。在第輪訓練結束后,根據得到的弱分類器的性能計算該分類器對應的權值,并由的在訓練集上的分類結果對權重向量進行更新。

分類器的性能度量和該分類器在訓練集上的結果,都是通過計算該分類器在訓練集上的帶權分類誤差獲取。所謂帶權分類誤差,是指將待分類的樣本包含的權重(此處的權重就是之前為該樣本分配的權重),結合在該數據集上的分類誤差得到分類器在該數據集上的一個考慮樣本權重的分類誤差,其定義如下:

???????????????????????????????? (1.1)

其中,表示第個弱分類器的帶權分類誤差值,表示第次更新后樣本的權重,表示使用第個弱分類器對樣本的分類結果,表示樣本的真實標簽,是一個指示函數,其值如下:

?????????????????????????? (1.2)

通過公式(1.1)和(1.2)可以看出帶權分類誤差與兩方面的因素相關:

1) 分類器在樣本上的誤差值;

2) 樣本集中每個樣本的權重;

注意:AdaBoost就是通過該值與弱分類器產生關系。

?

3、帶權分類誤差再分析

以DS(Decision Stumps)弱分類器為例,對于一個數據集包含多個屬性,要在該數據集上學習一個DS,可以使用不同的屬性作為分割判斷條件。對于同一個屬性,也可以選擇多個不同的分割點(離散型)/閾值(連續性)作為判斷條件。因此,對于一個數據集實質上可以產生很多不同的DS,那么究竟選擇哪一個DS作為我們從該數據集上最終學習得到的弱分類器?

很直觀的想法,我們可以使用窮舉產生所有的DS,然后分別計算每個DS的分類誤差,選擇具有最小分類誤差的DS作為從該數據集上學習到的弱分類器。然而,問題出在我們學習的這個數據集中的所有樣本權重(此處可以理解為每個樣本的價值、貢獻度等)并不相同。我們在考慮選擇哪個DS最為最終的弱分類器時不但要考慮該DS的分類錯誤率,還要考慮每個樣本的權重問題,因為將高權重的樣本分錯造成的后果遠比將低權重樣本分錯更為嚴重。

考慮公式(1.1)中帶權分類誤差的定義,該指標有效的將分類器的分類誤差和待分類樣本的權重結合起來,因此可以作為選擇弱分類器時的一個標準使用。

總結起來簡單的說,帶權分類誤差將分類器的分類誤差和樣本本身的權重進行結合,可以作為模型選擇的一個標準使用。

?

4、弱分類器的權重計算

弱分類器對應的權重與其本身的帶權分類誤差相關,其計算公式如下:

????????????????????????????????????????? (1.3)

通過簡單分析可以知道,帶權分類誤差的范圍是[0,1],繪制分類器的權重函數的圖像,如下所示:

Fig. 1. 弱分類器權重函數分布

由Fig. 1.可以看出,弱分類器的權重與其對應的帶權分類誤差呈反比關系,即就是帶權分類誤差越小,該分類器對應的權值越大;反之亦然。

?

5、訓練樣本的權重更新

訓練得到新的弱分類器后需要對樣本權值進行更新,更新的公式如下:

?????????????????????????????????????????? (1.4)

公式(1.4)定義了計算弱分類器對應的權值后,對樣本的權重更新過程。如果該分類器在該樣本上分類正確,則降低該樣本的權值;如果分類錯誤,則提高該樣本的權值。公式中前半部分主要用于對整個權值向量進行歸一化,以使其和為1。

?

6、參考

維基百科關于AdaBoost算法的介紹:

用 xi 和 yi 表示原始樣本集D的樣本點和它們的類標(注意,yi的取值只能是+1或-1)。用 Wk(i) 表示第k次迭代時全體樣本的權重分布。這樣就有如下所示的AdaBoost算法:

1. begin initial D={x1,y1,...,xn,yn},kmax(最大循環次數),Wk(i)=1/n,i=1,...,n

2. k ← 0

3. do k ← k+1

4. 訓練使用按照 Wk(i) 采樣的 D 的弱學習器 Ck

5. Ek ← 對使用 Wk(i) 的 D 測量的 Ck 的訓練誤差

6.

7.

8. until k=kmax

9. return Ck和αk,k=1,...,kmax(帶權值分類器的總體)

10. end

注意第5行中,當前權重分布必須考慮到分類器 Ck 的誤差率。在第7行中, Zk 只是一個歸一化系數,使得 Wk(i) 能夠代表一個真正的分布,而 hk(xi) 是分量分類器 Ck 給出的對任一樣本點 xi 的標記(+1或-1),hk(xi) = yi 時,樣本被正確分類。第8行中的迭代停止條件可以被換為判斷當前誤差率是否小于一個閾值。

最后的總體分類的判決可以使用各個分量分類器加權平均來得到:

這樣,最后對分類結果的判定規則是:

?

三、整體流程再梳理

按照自己的理解將AdaBoost的框架再進行梳理一遍,整個Boost框架分為兩部分:訓練和分類。

假設樣本的類別為:

1、訓練部分

a) 為訓練集中每個樣本分配權重;

b) 訓練弱分類器;

c) 計算帶權分類誤差;

d) 計算弱分類器對應的權重

e) 更新樣本權重

最終得到個不同的弱分類器及其對應的權重。

?

2、分類部分

a) 對待分類樣本計算函數

b) 對該樣本最終的分類結果為

?

四、核心問題再討論

?

1、帶權分類誤差的作用:

在第二部分詳細討論了帶權樣本誤差的生成機制問題,描述了如何計算帶權樣本誤差和它怎樣對AdaBoost框架產生影響。這里,將帶權樣本誤差的作用再做以簡單的總結,帶權分類誤差的主要作用有兩個:

1、 在訓練弱分類器時,使用該指標在訓練的多個DS中選擇帶權分類誤差最小的最為該輪訓練的弱分類器;

2、 在AdaBoost框架中,使用該指標計算該輪訓練得到的弱分類器對應的權值;

?

2、弱分類器的誤差和AdaBoost框架的誤差:

實質上,在整個訓練的過程中,每輪訓練得到的弱分類器可能一直會存在分類錯誤的問題(不論訓練了多少輪,生成的單個弱分類器都有分類錯誤),然而整個AdaBoost框架卻有可能快速收斂(整個AdaBoost框架的錯誤率為0)。造成這個現象的原因是:

每輪訓練結束后,AdaBoost框架會對樣本的權重進行調整,該調整的結果是越到后面被錯誤分類的樣本權重會越高。這樣到后面,單個弱分類器為了達到較低的帶權分類誤差都會把樣本權重高的樣本分類正確。雖然單獨來看,單個弱分類器仍會造成分類錯誤,但這些被錯誤分類的樣本的權重都較低,在AdaBoost框架的最后輸出時會被前面正確分類的高權重弱分類器“平衡”掉。這樣造成的結果就是,雖然每個弱分類器可能都有分錯的樣本,然而整個AdaBoost框架卻能保證對每個樣本進行正確分類,從而實現快速收斂。

轉載于:https://www.cnblogs.com/chaosimple/p/4029795.html

總結

以上是生活随笔為你收集整理的【原】关于AdaBoost的一些再思考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。