機器學習演算法二:詳解Boosting系列演算法一Adaboost
阿新 • • 發佈:2019-01-03
本文主要介紹boosting演算法得基本原理,以及的三種典型演算法原理:adaboost,GBM(Gradient bossting machine),XGBoost。
Boosting方法原理
boosting演算法是一類將弱學習器提升為強學習器的整合學習演算法,它通過改變訓練樣本的權值,學習多個分類器,並將這些分類器進行線性組合,提高泛化效能。
先介紹一下“強學習”和“弱學習”的概念:一個分類,如果存在一個多項式演算法能夠學習他,並得到很高的正確率,那麼這個演算法稱為強學習器,反之如果正確率只是稍大於隨機猜測(50%),則稱為弱學習器。在實際情況中,我們往往會發現弱學習器比強學習器更容易獲得,所以就有了能否把弱學習器提升(boosting)為強學習器的疑問。於是提升類方法應運而生,它代表了一類從弱學習器出發,反覆訓練,得到一系列弱學習器,然後組合這些弱學習器,構成一個強學習器的演算法。大多數boost方法會改變資料的概率分佈(改變資料權值)
1.1 Adaboost演算法
Adaboost,全稱adaptive boosting,前面已經大致介紹了它的基本原理,接下來會簡答推導它的演算法過程。
給定一個二分類的訓練資料集:,標記。
(1) 初始化訓練資料的權值分佈
(2) 指定生成個學習器,即進行迭代。
(3) 對於第次迭代,根據前一次迭代得到的權值分佈訓練資料集,得到弱分類器
(4) 計算在權值分佈上的分類誤差這裡很關鍵,我們可以發現,分類誤差是當前學習器得到的未正確分類資料項對應的權值之和,說明adaboost演算法的分類誤差是受權值分佈影響的,具體怎麼影響繼續往下看。
(5)計算當前學習器的權值這個權值是用在最後線性組合時乘在分類器前的,仔細觀察這個函式式不難發現當時,,並且隨著的減小而增大,也就是說分類誤差越小分類器的權值越大,這裡還可以看出可以看出權值分佈通過影響來影響了,這是的第一個影響。
(6)更新權值分佈