秋招材料整理——整合學習
阿新 • • 發佈:2018-12-18
一、概念
- 整合方式主要有3種:boosting和bagging 和 stacking
- 整合學習:將多個弱學習器結合起來組成一個強學習器
- 個體學習器一般選擇:決策樹,神經網路(整合時可以是同類,也可以是不同類)
- 什麼時候整合效果好於單個學習器?
“好而不同”,每個都不是特別差,且有一定的多樣性
證明:假設錯誤率相互獨立,整體學習器的錯誤率為(個體學習器的錯誤率為 ε):
學習器數目 T 逐漸增大,整個學習器的錯誤率將指數級下降,甚至最終趨向於零
二、boosting和bagging 區別
以隨機森林和adaboost為例:
- 個體學習器間依賴關係上:
Bagging,隨機森林:個體之間不存在強依賴關係,各個預測函式可並行生成。
Boosting:個體學習器間存在強依賴,必須序列生成。後一個模型引數需要前一輪的結果. - 樣本選擇上:
Bagging:訓練集是隨機有放回選取的,各輪訓練集之間是獨立的.
Boosting:訓練集不變,只是樣例的權重發生變化.權值是根據上一輪的分類結果進行調整. - 樣例權重:
Bagging:均勻取樣,每個樣例權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大. - 預測函式:
Bagging:所有預測函式的權重相等.
Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重
三、隨機森林
(代表整合學習技術水平的方法)(並聯,投票)
- 樣本產生:隨機有放回抽樣(第一個隨機)
- 屬性選擇:基學習器是決策樹,訓練決策樹時引入隨機屬性選擇(第二個隨機)(選劃分屬性時,先從屬性集中隨機選擇一個包含k(推薦)個屬性的子集,然後再從子集中選使Gini值最小的分割點作為最優屬性用於劃分)
- 效率常優於Bagging,不易過擬合;噪音比較大時會過擬合
四、boosting(串聯)
- 根據初始訓練資料訓練出第一個基學習器;
根據基學習器的表現調整樣本,更多關注之前學習器做錯的樣本,訓練下一個基學習器;
重複T 次,將 T 個學習器加權結合。 - 優點:表達能力強,不需要做複雜的特徵工程和特徵變換
- 缺點:串聯,不好並行化,計算複雜度高,同時不太適合高維
五、GBDT
- GB中單個學習器為決策樹(迴歸樹:雖然它常用於預測,而不是分類)
- GBDT有兩種,一種是殘差學習,一種是負梯度代替殘差,為啥用負梯度近似殘差?
GBDT每次迭代是對之前模型損失函式的梯度下降方向(即偽殘差)進行學習,計算出使下一步損失函式取值最小的偽殘差,從而得出下一步模型,殘差只是在loss用最小二乘時的一個特例,對求梯度剛好就是,換成其他loss就不對了,所以,殘差學習只是一個特例,負梯度才是通用的
六、adaboost
- =指數損失()+boosting(加法模型)+的前向分步演算法
(指數損失達到最小時分類錯誤率也將最小化) - 預測模型是基學習器的加權平均值:
- 每一次迭代的弱學習器怎麼學?
改變訓練資料的權值(概率分佈):提高被錯誤分類的樣本權值,降低正確的(被誤分類樣本的權值之和)
選取讓誤差率最低的閾值來設計基本分類器 - 弱分類器權值怎麼確定?
加大分類誤差率小的弱分類器權值,減小大的 (底數是為誤差率) - 優點:不會很容易出現過擬合現象
七、 GBDT vs. adaboost 區別
- 名字不同是因為損失函式不同,也就是定位模型不足的方法不同
GBDT是通過梯度定位的,而adaboost是通過提高被錯誤分類的樣本權值來定位的 - AdaBoost對異常點(outlier)比較敏感,而GBDT通過引入bagging思想、加入正則項等方法能夠有效地抵禦訓練資料中的噪音,具有更好的健壯性。
八、xgboost
參考:推導
1、 (最小化)目標函式=損失函式(可自定義,只需滿足二次可微)+ 正則化項(與葉子節點的數量和值有關)
- 目標函式:為所有被劃分到葉子節點j的訓練樣本的集合
- 損失函式:除了一階導還用二階導,對每一次的損失函式做二階泰勒展開,展開之後刪去常數項,會發現目標函式與損失函式的形式無關,所以可以自定義,只需滿足二次可微
(是損失函式一階導,是二階,第t棵樹第i個葉子節點的值)
- 正則化作用:
- 訓練資料可能有誤,未必涵蓋了所有種類的樣本
- 控制模型複雜度,對引數施加一定的控制,防止引數走向極端,防止過擬合
- :人為加入的閾值,使xgboost在優化目標函式的同時做了預剪枝
:L2的係數,相當於對leaf score做了平滑,防止過擬合
2、模型:一堆CART樹
(為什麼用CART樹而不是普通的決策樹:CART樹的葉子節點對應的值是一個實際的分數,而非一個確定的類別,有利於實現高效的優化演算法)
3、如何找樹的結構:挨層判斷切分點。對每個確定切分點,衡量切分好壞的標準如下: