《統計學習方法》第8章 提升方法之AdaBoost\BoostingTree\GBDT

前沿

在深度學習火起來之前,提升方法(包括AdaBoost, GBDT)是kaggle等比賽中的利器,所以提升方法是必備的知識點。李航《統計學習方法》第8章——提升方法主要內容:AdaBoost, Boosting Tree, GBDT。寫本文章主要目的是複習(畢竟之前看紙質版做的筆記),對於證明比較跳躍和勘誤的地方我都做了註解,以便初學者快速閱讀理解不會卡住。

正文

提升(boosting) 方法是一種常用的統計學習方法, 應用廣泛且 有效。 在分類問題中, 它通過改變訓練樣本的權重, 學習多個分類 器, 並將這些分類器進行線性組合, 提高分類的性能

本章主要內容

  1. 提升方法的思路和代表性的提升算法AdaBoost; 通過訓練誤差分析探討AdaBoost爲什麼能夠提高學習精度; 並且從 前向分步加法模型的角度解釋AdaBoost;
  2. 然後敘述提升方法更具體的 實例——提升樹(boosting tree)和GBDT 。

8.1 提升方法AdaBoost算法

8.1.1 提升方法的基本思路

提升方法的思想

對於一個複雜任務來說, 將多個專 家的判斷進行適當的綜合所得出的判斷, 要比其中任何一個專家單獨 的判斷好。 實際上, 就是“三個臭皮匠頂個諸葛亮”的道理

歷史背景

歷史上, Kearns和Valiant首先提出了**“強可學習(strongly learnable) ”和“弱可學習(weakly learnable) ”的概念。 指出: 在概率近似正確(probably approximately correct, PAC) 學習的框架中, 一 個概念(一個類) , 如果存在一個多項式的學習算法能夠學習它, 並 且正確率很高, 那麼就稱這個概念是強可學習的**; 一個概念, 如果存 在一個多項式的學習算法能夠學習它, 學習的正確率僅比隨機猜測略 好, 那麼就稱這個概念是弱可學習的。 非常有趣的是Schapire後來證 明強可學習與弱可學習是等價的, 也就是說, 在PAC學習的框架下, 一個概念是強可學習的充分必要條件是這個概念是弱可學習的。

這樣一來, 問題便成爲, 在學習中, 如果已經發現了“弱學習算 法”, 那麼能否將它提升(boost) 爲“強學習算法”。 大家知道, 發現 弱學習算法通常要比發現強學習算法容易得多。 那麼如何具體實施提 升, 便成爲開發提升方法時所要解決的問題。 關於提升方法的研究很 多, 有很多算法被提出。 最具代表性的是AdaBoost算法(AdaBoost algorithm) 。

對於分類問題而言, 給定一個訓練樣本集, 求比較粗糙的分類規 則(弱分類器) 要比求精確的分類規則(強分類器) 容易得多。提升方法就是從弱學習算法出發, 反覆學習, 得到一系列弱分類器(又稱 爲基本分類器) , 然後組合這些弱分類器, 構成一個強分類器

大多數的提升方法都是改變訓練數據的概率分佈(訓練數據的權值分 布) , 針對不同的訓練數據分佈調用弱學習算法學習一系列弱分類器

提升方法的核心問題和思想

對提升方法來說, 有兩個問題需要回答: 一是在每一輪如 何改變訓練數據的權值或概率分佈; 二是如何將弱分類器組合成一個強分類器

  1. 關於第1個問題, AdaBoost的做法是提高那些被前一輪弱分類器錯誤分類樣本的權值, 而降低那些被正確分類樣本的權值。 這樣一來, 那些沒有得到正確分類的數據, 由於其權值的加大而受到後一輪的弱分類器的更大關注。 於是, 分類問題被一系列的弱分類器“分而治之”。
  2. 至於第2個問題, 即弱分類器的組合, AdaBoost採取加權多數表決的方法。 具體地, 加大分類誤差率小的弱分類器的權值, 使其在表決中起較大的作用, 減小分類誤差率大的弱分類器的權值, 使其在表決中起較小的作用。 AdaBoost的巧妙之處就在於它將這些想法自然且有效地實現在一 種算法裏。

8.1.2 AdaBoost算法

1540460336537
1540463170951
1540462856523

8.1.3 AdaBoost的例子

1540463047157

1540463034052

1540463221053

8.2 AdaBoost算法的訓練誤差分析

1540464025343

1540464188302

1540464221825

8.3 AdaBoost算法的解釋

1540465338753

8.3.1 前向分步算法

1540465252529

1540464455405

8.3.2 前向分步算法與AdaBoost

1540464945423

1540465051886

1540465092227

8.4 提升樹

1540465505323

8.4.1 提升樹模型

1540465550791

8.4.2 提升樹算法

1540465671217

1540465707158

1540465737703

1540465774680

1540465822039

8.4.3 梯度提升GBDT

1540465941113

1540466073088

本章總結

1540466119053

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章