机器学习-集成学习
01 集成學(xué)習(xí)方法概述
- Bagging:從訓(xùn)練集中進(jìn)行子抽樣組成每個(gè)基模型所需要的自己訓(xùn)練集,對所有基模型預(yù)測的結(jié)果進(jìn)行綜合產(chǎn)生最終的預(yù)測結(jié)果:
Boosting
- 訓(xùn)練過程為階梯狀,基模型按次序一一進(jìn)行訓(xùn)練(實(shí)現(xiàn)上可以做到并行),基模型的訓(xùn)練集按照某種策略每次都進(jìn)行一定的轉(zhuǎn)化。對所有基模型預(yù)測的結(jié)果進(jìn)行線性綜合產(chǎn)生最終的預(yù)測結(jié)果。
Stacking
- 將訓(xùn)練好的所有基模型對訓(xùn)練集進(jìn)行預(yù)測,在這里插入代碼片第j個(gè)基模型對第i個(gè)訓(xùn)練樣本的預(yù)測值將作為新的訓(xùn)練集中第i個(gè)樣本的第j個(gè)特征值,最后基于新的訓(xùn)練集進(jìn)行訓(xùn)練。同理,預(yù)測的過程也要先經(jīng)過所有基模型的預(yù)測形成新的測試集,最后再對測試集進(jìn)行預(yù)測
Random Forest(隨機(jī)森林)
- 用隨機(jī)的方式建立一個(gè)森林,隨機(jī)森林算法由很多決策樹組成,每一棵決策樹之間沒有關(guān)聯(lián)。建立完森林后,當(dāng)有新樣本進(jìn)入時(shí),每棵決策樹都會分別進(jìn)行判斷,然后基于投票法給出分類結(jié)果.
- 優(yōu)點(diǎn):
- 在數(shù)據(jù)集上表現(xiàn)良好,相對于其他算法有較大的優(yōu)勢
- 易于并行化,在大數(shù)據(jù)集上有很大的優(yōu)勢
- 能夠處理高維數(shù)據(jù),不用做特征選擇
Random Forest(隨機(jī)森林)
是Bagging 的擴(kuò)展變體,它在以決策樹為基學(xué)習(xí)器構(gòu)建Bagging 集成的基礎(chǔ)上,進(jìn)一步在決策樹的訓(xùn)練過程中引入了隨機(jī)特征選擇,因此可以概括隨機(jī)森林包括四個(gè)部分:
- 1.隨機(jī)選擇樣本(放回抽樣);
- 2.隨機(jī)選擇特征;
- 3.構(gòu)建決策樹;
- 4.隨機(jī)森林投票(平均)。
- 隨機(jī)選擇樣本和Bagging 相同,采用的是Bootstraping自助采樣法;隨機(jī)選擇特征是指在每個(gè)節(jié)點(diǎn)在分裂過程中都是隨機(jī)選擇特征的(區(qū)別與每棵樹隨機(jī)選擇一批特征)。這種隨機(jī)性導(dǎo)致隨機(jī)森林的偏差會有稍微的增加(相比于單棵不隨機(jī)樹),但是由于隨機(jī)森林的“平均”特性,會使得它的方差減小,而且方差的減小補(bǔ)償了偏差的增大,因此總體而言是更好的模型。
02 AdaBoost和GBDT算法
- AdaBoost(AdaptiveBoosting,自適應(yīng)增強(qiáng)),其自適應(yīng)在于:前一個(gè)基本分類器分錯(cuò)的樣本會得到加強(qiáng),加權(quán)后的全體樣本再次被用來訓(xùn)練下一個(gè)基本分類器。同時(shí),在每一輪中加入一個(gè)新的弱分類器,直到達(dá)到某個(gè)預(yù)定的足夠小的錯(cuò)誤率或達(dá)到預(yù)先指定的最大迭代次數(shù)。
- 后一個(gè)模型的訓(xùn)練永遠(yuǎn)是在前一個(gè)模型的基礎(chǔ)上完成!
- 算法思想:初始化訓(xùn)練樣本的權(quán)值分布,每個(gè)樣本具有相同的權(quán)重
- 訓(xùn)練弱分類器,如果樣本分類正確,則在構(gòu)造下一個(gè)訓(xùn)練集中它的權(quán)值就會被降低;反之提高,用更新過的樣本集去訓(xùn)練下一個(gè)分類器
- 將所有弱分類組合成強(qiáng)分類器,各個(gè)弱分類器的訓(xùn)練過程結(jié)束后,加大分類差錯(cuò)率小的弱分類器權(quán)重,降低分類誤差率大的弱分類器的權(quán)重
AdaBoost算法思想
- 后一個(gè)模型的訓(xùn)練永遠(yuǎn)是在前一個(gè)模型的基礎(chǔ)上完成
GBDT
- GBDT(GradientBoosting Decision Tree)是一種迭代的決策樹算法,該算法由多棵決策樹組成,GBDT的核心在于累加所有樹的結(jié)果作為最終結(jié)果,所以GBDT 中的樹都是回歸樹,不是分類樹,它是屬于Boosting 策略。GBDT是被公認(rèn)的泛化能力較強(qiáng)的算法。
- GBDT算法:
03 XGBoost
- XGBoost是大規(guī)模并行boosting tree 的工具,它是目前最快最好的開源boosting tree 工具包,比常見的工具包快10 倍以上。XGBoost和GBDT 兩者都是boosting 方法,除了工程實(shí)現(xiàn)、解決問題上的一些差異外,最大的不同就是目標(biāo)函數(shù)的定義。
-
04 LightGBM
- LightGBM由微軟提出,主要用于解決GDBT在海量數(shù)據(jù)中遇到的問題,以便其可以更好更快地用于工業(yè)實(shí)踐中,其相對XGBoost具有訓(xùn)練速度快、內(nèi)存占用低的特點(diǎn)。
LightGBM與XGBoost相比,主要有以下幾個(gè)優(yōu)勢:
1)更快的訓(xùn)練速度
2)更低的內(nèi)存消耗
3)更好的準(zhǔn)確率
4)分布式支持,可快速處理海量數(shù)據(jù) - LightGBM的主要改進(jìn)
LightGBM與XGBoost相比,主要有以下幾個(gè)改進(jìn):
?基于梯度的單邊采樣算法(Gradient-based One-Side Sampling, GOSS);
?互斥特征捆綁算法(Exclusive Feature Bundling, EFB);
?直方圖算法(Histogram );
?基于最大深度的Leaf-wise 的垂直生長算法;
LightGBM= XGBoost+ GOSS + EFB+ Histogram - 基于梯度的單邊采樣算法(Gradient-based One-Side Sampling, GOSS)
主要思想是通過對樣本采樣的方法來減少計(jì)算目標(biāo)函數(shù)增益時(shí)候的復(fù)雜度。GOSS算法保留了梯度大的樣本,并對梯度小的樣本進(jìn)行隨機(jī)抽樣,為了不改變樣本的數(shù)據(jù)分布,在計(jì)算增益時(shí)為梯度小的樣本引入一個(gè)常數(shù)進(jìn)行平衡
如果一個(gè)樣本的梯度很小,說明該樣本的訓(xùn)練誤差很小,或者說該樣本已經(jīng)得到了很好的訓(xùn)練(well-trained)。 - 基于梯度的單邊采樣算法(Gradient-based One-Side Sampling, GOSS)
輸入:訓(xùn)練數(shù)據(jù),迭代步數(shù)d,大梯度數(shù)據(jù)的采樣率a,小梯度數(shù)據(jù)的采樣率b,損失函數(shù)和若學(xué)習(xí)器的類型(一般為決策樹)
輸出:訓(xùn)練好的強(qiáng)學(xué)習(xí)器
(1)根據(jù)樣本點(diǎn)的梯度的絕對值對它們進(jìn)行降序排序;
(2)對排序后的結(jié)果選取前a*100%的樣本生成一個(gè)大梯度樣本點(diǎn)的子集;
(3)對剩下的樣本集合(1-a)*100%的樣本,隨機(jī)的選取b *(1-a)*100%個(gè)樣本點(diǎn),生成一個(gè)小梯度樣本點(diǎn)的集合;
(4)將大梯度樣本和采樣的小梯度樣本合并;
(5)將小梯度樣本乘上一個(gè)權(quán)重系數(shù)1?ab\frac{1-a}b1?a?;
(6)使用上述的采樣的樣本,學(xué)習(xí)一個(gè)新的弱學(xué)習(xí)器;
(7)不斷地重復(fù)(1)~(6)步驟直到達(dá)到規(guī)定的迭代次數(shù)或者收斂為止。
- 互斥特征捆綁算法(Exclusive Feature Bundling, EFB)
高維特征往往是稀疏的,而且特征間可能是相互排斥的(如兩個(gè)特征不同時(shí)取非零值),如果兩個(gè)特征并不完全互斥(如只有一部分情況下是不同時(shí)取非零值),可以用互斥率表示互斥程度。EFB算法指出如果將一些特征進(jìn)行融合綁定,則可以降低特征數(shù)量。
論文給出特征合并算法,其關(guān)鍵在于原始特征能從合并的特征中分離出來。
資料
總結(jié)
- 上一篇: 阿里大佬耗时3年总结Python学习清单
- 下一篇: 《善数者成:大数据改变中国》读书笔记1