總結:Bootstrap(自助法)纸厉,Bagging,Boosting(提升)

前言

最近在理清一些很必要的也很基礎的東西五嫂,記錄一下颗品,結合網(wǎng)上和文獻,自己也有些易化使之更輕松理解沃缘,如有錯誤躯枢,請不吝賜教,多謝槐臀!


Bootstrap(自助法)

Bootstrap是一種抽樣方法

核心思想

這里寫圖片描述

子樣本之于樣本锄蹂,可以類比樣本之于總體

栗子:我要統(tǒng)計魚塘里面的魚的條數(shù),怎么統(tǒng)計呢水慨?假設魚塘總共有魚1000條得糜,我是開了上帝視角的,但是你是不知道里面有多少晰洒。

步驟

1. 承包魚塘朝抖,不讓別人撈魚(規(guī)定總體分布不變)。
2. 自己撈魚谍珊,撈100條治宣,都打上標簽(構造樣本)
3. 把魚放回魚塘,休息一晚(使之混入整個魚群砌滞,確保之后抽樣隨機)
4. 開始撈魚侮邀,每次撈100條,數(shù)一下贝润,自己昨天標記的魚有多少條绊茧,占比多少(一次重采樣取分布)。
5. 重復3题暖,4步驟n次按傅。建立分布捉超。

假設一下,第一次重新捕魚100條唯绍,發(fā)現(xiàn)里面有標記的魚12條拼岳,記下為12%,放回去况芒,再捕魚100條惜纸,發(fā)現(xiàn)標記的為9條,記下9%绝骚,重復重復好多次之后耐版,假設取置信區(qū)間95%,你會發(fā)現(xiàn)压汪,每次捕魚平均在10條左右有標記粪牲,所以,我們可以大致推測出魚塘有1000條左右止剖。其實是一個很簡單的類似于一個比例問題腺阳。這也是因為提出者Efron給統(tǒng)計學頂級期刊投稿的時候被拒絕的理由--"太簡單"。這也就解釋了穿香,為什么在小樣本的時候亭引,bootstrap效果較好,你這樣想皮获,如果我想統(tǒng)計大海里有多少魚焙蚓,你標記100000條也沒用啊,因為實際數(shù)量太過龐大洒宝,你取的樣本相比于太過渺小购公,最實際的就是,你下次再捕100000的時候雁歌,發(fā)現(xiàn)一條都沒有標記君丁,,将宪,這特么就尷尬了。橡庞。较坛。


Bootstrap經(jīng)典語錄

  • Bootstrap是現(xiàn)代統(tǒng)計學較為流行的一種統(tǒng)計方法,在小樣本時效果很好扒最。通過方差的估計可以構造置信區(qū)間等丑勤,其運用范圍得到進一步延伸。

  • 就是一個在自身樣本重采樣的方法來估計真實分布的問題

  • 當我們不知道樣本分布的時候吧趣,bootstrap方法最有用法竞。

  • 整合多個弱分類器耙厚,成為一個強大的分類器。這時候岔霸,集合分類器(Boosting, Bagging等)出現(xiàn)了薛躬。


什么是集成學習(ensemble learning)

了解boosting和bagging之前,先了解一下什么是集成學習呆细,一句話型宝,三個臭皮匠頂個諸葛亮,一箭易折十箭難折絮爷,千里之堤潰于蟻穴趴酣,啊,跑題了坑夯。在分類的表現(xiàn)上就是岖寞,多個弱分類器組合變成強分類器。

這里寫圖片描述

一句話柜蜈,假設各弱分類器間具有一定差異性(如不同的算法仗谆,或相同算法不同參數(shù)配置),這會導致生成的分類決策邊界不同跨释,也就是說它們在決策時會犯不同的錯誤胸私。將它們結合后能得到更合理的邊界,減少整體錯誤鳖谈,實現(xiàn)更好的分類效果岁疼。


Bagging(bootstrap aggregation)

首先:bagging和boosting都是集成學習(ensemble learning)領域的基本算法

bagging:從訓練集從進行子抽樣組成每個基模型所需要的子訓練集,對所有基模型預測的結果進行綜合產(chǎn)生最終的預測結果,至于為什么叫bootstrap aggregation缆娃,因為它抽取訓練樣本的時候采用的就是bootstrap的方法捷绒!


Bagging策略過程

這里寫圖片描述
  • 從樣本集中用Bootstrap采樣選出n個訓練樣本(放回,因為別的分類器抽訓練樣本的時候也要用)
  • 在所有屬性上贯要,用這n個樣本訓練分類器(CART or SVM or ...)
  • 重復以上兩步m次暖侨,就可以得到m個分類器(CART or SVM or ...)
  • 將數(shù)據(jù)放在這m個分類器上跑,最后投票機制(多數(shù)服從少數(shù))看到底分到哪一類(分類問題)

Bagging代表算法-RF(隨機森林)

RF:Random Forest

其中的Random就是指

1.訓練樣本選擇方面的Random:

Bootstrap方法隨機選擇子樣本

2.特征選擇方面的Random:

屬性集中隨機選擇k個屬性崇渗,每個樹節(jié)點分裂時字逗,從這隨機的k個屬性,選擇最優(yōu)的(如何選擇最優(yōu)又有各種最大增益的方法宅广,不在本文討論范圍內)葫掉。


RF構造流程

這里寫圖片描述

1.用Random(訓練樣本用Bootstrap方法,選擇分離葉子節(jié)點用上面的2)的方式構造一棵決策樹(CART)
2.用1的方法構造很多決策樹,每棵決策樹都最大可能地進行生長而不進行剪枝跟狱,許多決策樹構成一片森林俭厚,決策樹之間沒有聯(lián)系
3.測試數(shù)據(jù)進入每一棵決策樹,每棵樹做出自己的判斷驶臊,然后進行投票選出最終所屬類別(默認每棵樹權重一致)


RF優(yōu)點

1.不容易出現(xiàn)過擬合挪挤,因為選擇訓練樣本的時候就不是全部樣本叼丑。
2.可以既可以處理屬性為離散值的量,比如ID3算法來構造樹扛门,也可以處理屬性為連續(xù)值的量鸠信,比如C4.5算法來構造樹。
3.對于高維數(shù)據(jù)集的處理能力令人興奮尖飞,它可以處理成千上萬的輸入變量症副,并確定最重要的變量,因此被認為是一個不錯的降維方法政基。此外贞铣,該模型能夠輸出變量的重要性程度,這是一個非常便利的功能沮明。
4.分類不平衡的情況時辕坝,隨機森林能夠提供平衡數(shù)據(jù)集誤差的有效方法

RF缺點

1.隨機森林在解決回歸問題時并沒有像它在分類中表現(xiàn)的那么好,這是因為它并不能給出一個連續(xù)型的輸出荐健。當進行回歸時酱畅,隨機森林不能夠作出超越訓練集數(shù)據(jù)范圍的預測,這可能導致在對某些還有特定噪聲的數(shù)據(jù)進行建模時出現(xiàn)過度擬合江场。
2.對于許多統(tǒng)計建模者來說纺酸,隨機森林給人的感覺像是一個黑盒子——你幾乎無法控制模型內部的運行,只能在不同的參數(shù)和隨機種子之間進行嘗試址否。


Boosting

核心:Boosting是一種框架算法餐蔬,用來提高弱分類器準確度的方法,這種方法通過構造一個預測函數(shù)序列佑附,然后以一定的方式將他們組合成為一個準確度較高的預測函數(shù)樊诺,還有就是,Boosting算法更加關注錯分的樣本音同,這點和Active Learning的尋找最有價值的訓練樣本有點遙相呼應的感覺

很抽象對不對词爬,沒關系,我們通過Adaboost來理解這個核心思想权均。


Boosting算法代表--Adaboost(Adaptive Boosting)

核心思想:一種迭代算法顿膨,針對同一個訓練集訓練不同的分類器(弱分類器),然后進行分類叽赊,對于分類正確的樣本權值低虽惭,分類錯誤的樣本權值高(通常是邊界附近的樣本),最后的分類器是很多弱分類器的線性疊加(加權組合)蛇尚,分類器相當簡單。實際上就是一個簡單的弱分類算法提升(boost)的過程顾画。

結合圖形來過一遍Adaboost算法

這里寫圖片描述

算法開始前取劫,需要將每個樣本的權重初始化為1/m,這樣一開始每個樣本都是等概率的分布匆笤,每個分類器都會公正對待。

這里寫圖片描述

Round1谱邪,因為樣本權重都一樣炮捧,所以分類器開始劃分,根據(jù)自己分類器的情況惦银,只和分類器有關咆课。劃分之后發(fā)現(xiàn)分錯了三個"+"號,那么這些分錯的樣本扯俱,在給下一個分類器的時候權重就得到提高,也就是會影響到下次取訓練樣本的分布书蚪,就是提醒下一個分類器,“誒迅栅!你注意點這幾個小子殊校,我上次栽在他們手里了!”

這里寫圖片描述

Round2,第二代分類器信誓旦旦的對上一代分類器說"我知道了读存,大哥为流!我一定睜大眼睛好好分著三個玩意!"ok让簿,這次三個上次分錯的都被分出來了敬察,但是并不是全部正確,這次又栽倒在左下角三個"-"上了尔当,然后臨死前莲祸,第二代分類器對下一代分類器說"這次我和上一代分類器已經(jīng)把他們摸得差不多了,你再稍微注意下左下角那三個小子居凶,也別忘了上面那三個(一代錯分的那三個"+")虫给!"

這里寫圖片描述

Round3:有了上面兩位大哥的提醒,第三代分類器表示侠碧,我差不多都知道上次大哥們都錯哪了抹估,我只要小心這幾個,應該沒什么問題弄兜!只要把他們弄錯的我給整對了药蜻,然后把我們收集的信息一對,這不就行了么替饿!ok语泽,第三代分類器不負眾望,成功分對上面兩代分類器重點關注的對象视卢,至于分錯的那幾個小的踱卵,以前大哥們都分對了,我們坐下來核對一下就行了!

這里寫圖片描述

最后惋砂,三個分類器坐下來妒挎,各自談了談心得,分配了下權重西饵,然后一個諸葛亮就誕生啦酝掩!是不是道理很簡單!至于權重如何計算眷柔,不在本文討論范圍內期虾。


Adaboost優(yōu)點

1.可以使用各種方法構造子分類器,Adaboost算法提供的是框架
2.簡單驯嘱,不用做特征篩選
3.相比較于RF镶苞,更不用擔心過擬合問題

Adaboost缺點

1.從wiki上介紹的來看,adaboost對于噪音數(shù)據(jù)和異常數(shù)據(jù)是十分敏感的宙拉。Boosting方法本身對噪聲點異常點很敏感宾尚,因此在每次迭代時候會給噪聲點較大的權重,這不是我們系統(tǒng)所期望的谢澈。
2.運行速度慢煌贴,凡是涉及迭代的基本上都無法采用并行計算,Adaboost是一種"串行"算法.所以GBDT(Gradient Boosting Decision Tree)也非常慢锥忿。


Pay Attention

1.Bagging: 樹"并行"生成 ,如RF;Boosting:樹"串行"生成,如Adaboost

2.boosting中的基模型為弱模型牛郑,而RF中的基樹是強模型(大多數(shù)情況)

3.boosting重采樣的不是樣本,而是樣本的分布敬鬓,每次迭代之后淹朋,樣本的分布會發(fā)生變化,也就是被分錯的樣本會更多的出現(xiàn)在下一次訓練集中

4.明確一點钉答,我們迭代也好(Adaboost),并行(RF)也好础芍,只和訓練集有關,和測試集真的一毛錢關系都沒有好么数尿!我們先把原始數(shù)據(jù)分類測試集和訓練集仑性,然后測試集放一邊,訓練集里面再挑子集作為迭代算法用的訓練集右蹦!這個和K-fold思想很像诊杆。


致謝

@轉--看懂論文的機器學習基本知識(四)–bootstrap
@知乎精選--統(tǒng)計中的 Bootstrap 方法是指什么?與 Monte Carlo 方法有什么聯(lián)系與區(qū)別何陆?
@紅眼睛的貓--對于bootstrap的一些粗淺認識(轉載)
@busyfruit--Boosting原理及其應用@轉--決策樹(ID3晨汹、C4.5、CART贷盲、隨機森林)
@w28971023--GBDT(MART) 迭代決策樹入門教程 | 簡介
@gxiaob--條件熵 信息增益
@jasonfreak--使用sklearn進行集成學習——理論
@機器學習--為什么說bagging是減少variance淘这,而boosting是減少bias?
@abcjennifer--統(tǒng)計學習方法——CART, Bagging, Random Forest, Boosting
@yshnny--bootstrap簡單介紹
@u010659278--boosting和bagging算法學習
@a1b2c3d4123456--集成學習算法總結----Boosting和Bagging@emanlee--隨機森林
@leo魚--隨機森林
@51CTO.COM--機器學習的算法(1):決策樹之隨機森林
@handspeaker--RandomForest隨機森林總結
@博客園--Orisun
@tianguokaka--CART分類算法
@wxquare--決策樹模型 ID3/C4.5/CART算法比較
@周志華--Boosting和Bagging綜述[J][計算機工程與設計]
@宋靜--SVM與Adaboost算法的應用與研究[M][大連海事大學]
@轉--深入淺析python中的多進程、多線程、協(xié)程
@Vamei--Python標準庫10 多進程初步 (multiprocessing包)
@為程序員服務--Python 多進程中使用共享內存在進程之間共享數(shù)據(jù)
@LegenDavid--隨機森林和GBDT的幾個核心問題
@handspeaker--RandomForest隨機森林總結
@Dark_Scope--AdaBoost--從原理到實現(xiàn)
@百度技術博客--Boosting算法簡介
@轉--機器學習 —— 決策樹及其集成算法(Bagging慨灭、隨機森林朦乏、Boosting) - senlie zheng
@百度文庫--Adaboost算法步驟
@OPEN 開發(fā)經(jīng)驗庫--幾種Boost算法的比較(Discrete AdaBoost, Real AdaBoost, LogitBoost, Gentle Adaboost)
@zengkui111--分類算法——Adaboost
@學習筆記1.0--各種分類算法的優(yōu)缺點

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氧骤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吃引,老刑警劉巖筹陵,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镊尺,居然都是意外死亡朦佩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門庐氮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來语稠,“玉大人,你說我怎么就攤上這事弄砍∠善瑁” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵音婶,是天一觀的道長慨畸。 經(jīng)常有香客問我,道長衣式,這世上最難降的妖魔是什么寸士? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮碴卧,結果婚禮上弱卡,老公的妹妹穿的比我還像新娘。我一直安慰自己住册,他們只是感情好婶博,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著界弧,像睡著了一般凡蜻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垢箕,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天划栓,我揣著相機與錄音,去河邊找鬼条获。 笑死忠荞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播委煤,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼堂油,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碧绞?” 一聲冷哼從身側響起府框,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讥邻,沒想到半個月后迫靖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡兴使,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年系宜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片发魄。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盹牧,死狀恐怖,靈堂內的尸體忽然破棺而出励幼,到底是詐尸還是另有隱情汰寓,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布赏淌,位于F島的核電站踩寇,受9級特大地震影響,放射性物質發(fā)生泄漏六水。R本人自食惡果不足惜俺孙,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掷贾。 院中可真熱鬧睛榄,春花似錦、人聲如沸想帅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽港准。三九已至旨剥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浅缸,已是汗流浹背轨帜。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衩椒,地道東北人蚌父。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓哮兰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苟弛。 傳聞我的和親對象是個殘疾皇子喝滞,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容