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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

集成学习-Boosting集成学习算法AdaBoost

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集成学习-Boosting集成学习算法AdaBoost 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Boosting是一族將弱學習器提升為強學習器的算法,適用于個體學習器間存在強依賴關系、必須串行生成序列化方法。最著名的代表是AdaBoost。

Boosting的工作機制:從初始的訓練集中訓練出一個基學習器,再根據基學習器的表現對樣本分布進行調整,使得先前基學習器做錯的訓練樣本在后續受到更多的關注,然后基于調整后的樣本分布來訓練下一個基學習器;如此重復進行,直到基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。

目錄

Adaboost算法

AdaBoost的兩種權重

AdaBoost分類示例

AdaBoost算法原理

AdaBoost計算示例

算法優缺點


Adaboost算法

Adaboost是一種原理簡單,但很實用的有監督機器學習算法,它是daptive boosting的簡稱,Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。

算法本身是通過改變樣本數據的權重分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最后將每次訓練得到的分類器最后融合起來,作為最后的決策分類器。使用Adaboost分類器可以排除一些不必要的訓練數據特征,并放在關鍵的訓練數據上面。

?

如圖是Adaboost的原理示意圖,左邊矩形表示數據集,中間表示根據特征閾值來做分類,這樣每一個弱分類器都類似于一個單節點的決策樹,其實就是閾值判斷而已,右邊的三角形對每個弱分類器賦予一個權重,最后根據每個弱分類器的加權組合來判斷總體類別。要注意一下數據集從上到下三個矩形內的直方圖不一樣,這表示每個樣本的權重也發生了變化,樣本權重的一開始初始化成相等的權重,然后根據弱分類器的錯誤率來調整每個弱分類器的權重。

由上所示,每個弱分類器可以要求不高的準確率,哪怕錯誤率是50%也可以接受,但是最后通過線性加權組合就可以得到一個很好的分類器,這點也可以通過錯誤率分析驗證。

AdaBoost的兩種權重

一種為數據權重、一種為分類器權重

數據權重:用于確定分類器權重(弱分類器尋找其分類最小的決策點,找到之后用這個最小的誤差計算出弱分類器的權重)

分類器權重:說明了弱分類器在最終決策中擁有發言權的大小

數據權重

最開始每個樣本的權重都相同,錯誤就會增加權重。

每訓練一個弱分類器就會調整每個樣本的權重,上一輪訓練中被錯誤分類點的權重增加,促使下一輪著分析錯誤分類點,達到“你分不對我來分的”效果。

由于每個分類器都會關注上個分錯的點,那么也就是說每個分類器都有側重。

分類器權重

每個分類器都有可能分對其上一個分類器美分對的數據,同時針對上一個分類器分隊的數據也可能沒有分隊。這就導致了分類器中都有各自最關注的點,這就說明每一個分類器都只關注訓練數據中的一部分數據,全部分類器組合起來才能發揮作用,那么最終的結果是通過加權“投票“決定的,權重的大小是根據弱分類器的分類錯誤率計算出來的。

?

AdaBoost算法中不同的訓練集是通過調整每個樣本對應的權重來實現的。開始時,每個樣本對應的權重是相同的,即其中 n 為樣本個數,在此樣本分布下訓練出一弱分類器。對于分類錯誤的樣本,加大其對應的權重;而對于分類正確的樣本,降低其權重,這樣分錯的樣本就被突顯出來,從而得到一個新的樣本分布。在新的樣本分布下,再次對樣本進行訓練,得到弱分類器。依次類推,經過 T 次循環,得到 T 個弱分類器,把這 T 個弱分類器按一定的權重疊加(boost)起來,得到最終想要的強分類器。

AdaBoost算法的具體步驟如下:

1. 給定訓練樣本集S,其中X和Y分別對應于正例樣本和負例樣本; T為訓練的最大循環次數;

2. 初始化樣本權重為1/n ,即為訓練樣本的初始概率分布;

3. 第一次迭代:

(1) 訓練樣本的概率分布相當下,訓練弱分類器;

(2) 計算弱分類器的錯誤率;

(3) 選取合適閾值,使得誤差最小;

(4) 更新樣本權重;

經T次循環后,得到T個弱分類器,各個弱分類器的訓練過程結束后,加大分類誤差率小的弱分類器權重,使其在最終的分類中起著較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函數中起著較大的決定作用,換而言子誤差率低的弱分類器在最終分類器中占的權重較大,否則較小。

Adaboost算法是經過調整的Boosting算法,其能夠對弱學習得到的弱分類器的錯誤進行適應性調整。上述算法中迭代了T次的主循環,每一次循環根據當前的權重分布對樣本x定一個分布P,然后對這個分布下的樣本使用弱學習算法得到一個弱分類器,對于這個算法定義的弱學習算法。實際上,每一次迭代,都要對權重進行更新。更新的規則是:減小弱分類器分類效果較好的數據的權重,增大弱分類器分類效果較差的數據的權重,最終的分類器是個弱分類器的加權平均。

AdaBoost分類示例

下面我們舉一個簡單的例子來看看Adaboost的實現過程:

圖中,“+”和“-”分別表示兩種類別,在這個過程中,我們使用水平或者垂直的直線作為分類器,來進行分類。

?

根據分類的正確率,得到一個新的樣本分布D2-,一個子分類器h1

其中劃圈的樣本表示被分錯的。在右邊的途中,比較大的“+”表示對該樣本做了加權。

?

根據分類的正確率,得到一個新的樣本分布D3,一個子分類器h2

?

得到一個子分類器h3整合所有子分類器:

?

此可以得到整合的結果,從結果中看,及時簡單的分類器,組合起來也能獲得很好的分類效果,在例子中所有的。Adaboost算法的某些特性是非常好的,主要介紹adaboost的兩個特性。

一是訓練的錯誤率上界,隨著迭代次數的增加,會逐漸下降;

二是Adaboost算法即使訓練次數很多,也不會出現過擬合的問題。

算法特點:

  • 每次迭代改變的是樣本的分布,而不是重復采樣(re weight)
  • 樣本分布的改變取決于樣本是否被正確分類
  • 總是分類正確的樣本權值低
  • 總是分類錯誤的樣本權值高(通常是邊界附近的樣本)
  • 最終的結果是弱分類器的加權組合
  • 權值表示該弱分類器的性能
  • AdaBoost算法原理

    AdaBoost計算示例

    算法優缺點

    優點

  • adaboost是一種有很高精度的分類器
  • 可以使用各種方法構建子分類器,adaboost算法提供的是框架
  • 當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單
  • 簡單,不用做特征篩選
  • 不用擔心overfitting!
  • 對于boosting算法,存在兩個問題:

    1. 如何調整訓練集,使得在訓練集上訓練的弱分類器得以進行;

    2. 如何將訓練得到的各個弱分類器聯合起來形成強分類器。

    針對以上兩個問題,adaBoost算法進行了調整:

    1. 使用加權后選取的訓練數據代替隨機選取的訓練樣本,這樣將訓練的焦點集中在比較難分的訓練數據樣本上;

    2. 將弱分類器聯合起來,使用加權的投票機制代替平均投票機制。讓分類效果好的弱分類器具有較大的權重,而分類效果差的分類器具有較小的權重。

    ?

    ?

    ?

    ?

    參考鏈接:http://www.360doc.com/content/14/1109/12/20290918_423780183.shtml
    參考鏈接:http://blog.csdn.net/marvin521/article/details/9319459
    參考鏈接:http://blog.csdn.net/baiduforum/article/details/6721749
    參考鏈接:http://www.cnblogs.com/pinard/p/6133937.html
    參考鏈接:http://www.cnblogs.com/pinard/p/6133937.html
    參考鏈接:https://zhuanlan.zhihu.com/p/27126737
    參考鏈接:https://zhuanlan.zhihu.com/p/27126737
    參考鏈接:https://blog.csdn.net/qq_24753293/article/details/80180944

    ?

    總結

    以上是生活随笔為你收集整理的集成学习-Boosting集成学习算法AdaBoost的全部內容,希望文章能夠幫你解決所遇到的問題。

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