前言
如果你能找到這里,真是我的幸運~這里是藍(lán)白絳的學(xué)習(xí)筆記缓淹,本集合主要針對《百面機器學(xué)習(xí)——算法工程師帶你去面試》這本書厌丑。主要記錄我認(rèn)為重要的知識點帮毁,希望對大家有幫助蒲障。
第十二章 集成學(xué)習(xí)
1缸剪、集成學(xué)習(xí)的種類
- 集成學(xué)習(xí)是一大類模型融合策略和方法的統(tǒng)稱曹抬,其中包含多種集成學(xué)習(xí)的思想玛界。
- Boosting:Boosting方法訓(xùn)練基分類器時采用串行的方式棵逊,各個基分類器之間有依賴伤疙。其基本思想是將基分類器層層疊加,每一層在訓(xùn)練的時候辆影,對前一層基分類器分錯的樣本徒像,給予更高的權(quán)重。測試時蛙讥,根據(jù)各層分類器的結(jié)果的加權(quán)得到最終結(jié)果锯蛀。
- Bagging:Bagging方法在訓(xùn)練過程中,各基分類器之間無強依賴次慢,可以進(jìn)行并行訓(xùn)練旁涤。為了讓基分類器之間相互獨立,將訓(xùn)練集分為若干子集迫像。由于個體之間存在差異性劈愚,最終做出的判斷不會完全一致。在最終做決策時闻妓,每個個體單獨作出判斷菌羽,再通過投票的方式作出最后的集體決策。其中很著名的算法是基于決策樹基分類器的隨機森林由缆。
- 從消除基分類器的偏差和方差的角度來理解Boosting和Bagging方法的差異注祖。基分類器的錯誤率要大于集成分類器均唉,基分類器的錯誤是偏差和方差兩種錯誤之和是晨。
- 偏差主要是由于分類器的表達(dá)能力有限導(dǎo)致的系統(tǒng)性誤差,表現(xiàn)在訓(xùn)練誤差不收斂舔箭。Boosting方法通過逐步聚焦于基分類器分錯的樣本署鸡,減小集成分類器的偏差。
- 方差是由于分類器對于樣本分布過于敏感限嫌,導(dǎo)致在訓(xùn)練樣本數(shù)較少時,產(chǎn)生過擬合时捌。Bagging方法則是采取分而治之的策略怒医,通過對訓(xùn)練樣本多次采樣,訓(xùn)練多個不同模型進(jìn)行綜合奢讨,來減小集成分類器的方差稚叹。用簡單多數(shù)投票方法來集成結(jié)果,超過半數(shù)基分類器出錯的概率會隨著基分類器的數(shù)量增加而下降。
2扒袖、集成學(xué)習(xí)的步驟和例子
- 集成學(xué)習(xí)一般可以分為以下3個步驟:
(1) 找到誤差相互獨立的基分類器塞茅。
(2) 訓(xùn)練基分類器。
(3) 合并基分類器的結(jié)果季率。
第(3)步合并基分類器的方法有voting和stacking兩種野瘦。stacking是用串行的方式,把前一個基分類器的結(jié)果輸出到下一個分類器飒泻,將所有基分類器的輸出結(jié)果相加作為最終的輸出(或用更復(fù)雜的方法鞭光,將各基分類器的輸出作為特征,用邏輯回歸作為融合模型進(jìn)行最后的結(jié)果預(yù)測)泞遗。 - Adaboost采取了Boosting的思想惰许,對分類正確的樣本降低了權(quán)重,對分類錯誤的樣本升高或者保持權(quán)重不變史辙。在最后進(jìn)行模型融合的過程中汹买,也根據(jù)錯誤率對基分類器進(jìn)行加權(quán)融合。
另一個非常流行的是梯度提升決策樹聊倔,思想是每一棵樹學(xué)的是之前所有樹結(jié)論和的殘差晦毙,這個殘差是一個加預(yù)測值后能得真實值的累加量。比如預(yù)測年齡方库,真實年齡是25歲结序,第一棵樹預(yù)測22歲,則第二棵樹將年齡設(shè)為3歲去學(xué)習(xí)纵潦。使用殘差繼續(xù)學(xué)習(xí)徐鹤,就是GBDT中的Gradient Boosted所表達(dá)的意思。
3邀层、基分類器
- 最常用的基分類器是決策樹返敬,主要有以下3個方面的原因:
(1) 決策樹可以較為方便地將樣本的權(quán)重整合到訓(xùn)練過程中,而不需要使用過采樣的方法來調(diào)整樣本權(quán)重寥院。
(2) 決策樹的表達(dá)能力和泛化能力劲赠,可以通過調(diào)節(jié)樹的層數(shù)來做折中。
(3) 數(shù)據(jù)樣本的擾動對于決策樹的影響較大秸谢,因此不同子樣本集合生成的決策樹基分類器隨機性較大凛澎,這樣的“不穩(wěn)定學(xué)習(xí)器”更適合作為基分類器。此外估蹄,在決策樹節(jié)點分裂的時候塑煎,隨機地選擇一個特征子集,從中找出最優(yōu)分類屬性臭蚁,很好地引入了隨機性最铁。 - 除了決策樹讯赏,神經(jīng)網(wǎng)絡(luò)模型也適合作為基分類器,主要由于神經(jīng)網(wǎng)絡(luò)模型也比較“不穩(wěn)定”冷尉,而且還可以通過調(diào)整神經(jīng)元數(shù)量漱挎、連接方式、網(wǎng)絡(luò)層數(shù)雀哨、初始權(quán)值等方式引入隨機性磕谅。
- Bagging的主要好處是集成后的分類器的方差,比基分類器的方差小震束,所采用的基分類器最好是本身對樣本分布較為敏感的(即所謂不穩(wěn)定的分類器)怜庸,這樣Bagging才能有用武之地。
線性分類器或者K近鄰都是較為穩(wěn)定的分類器垢村,本身方差就不大割疾,所以用他們做基分類器Bagging并不能在原有基分類器的基礎(chǔ)上獲得更好的表現(xiàn),甚至可能因為Bagging的采樣嘉栓,導(dǎo)致它們在訓(xùn)練中更難收斂宏榕,從而增大了集成分類器的偏差。
4侵佃、偏差與方差
- 有監(jiān)督學(xué)習(xí)中麻昼,模型的泛化誤差來源于兩個方面:偏差和方差。
-
偏差:所有采樣得到的大小為
的訓(xùn)練數(shù)據(jù)集訓(xùn)練出的所有模型的輸出的平均值和真實模型輸出的偏差馋辈。偏差通常是由于我們對學(xué)習(xí)算法作出了錯誤的假設(shè)所導(dǎo)致的抚芦,比如真實模型是某個二次函數(shù),但我們假設(shè)模型是一次函數(shù)迈螟。由偏差帶來的誤差通常在訓(xùn)練誤差上就能體現(xiàn)出來叉抡。
-
方差:所有采樣得到的大小為
的訓(xùn)練數(shù)據(jù)集訓(xùn)練出的所有模型的輸出的方差。方差通常是由于模型的復(fù)雜度相對于訓(xùn)練樣本
過高導(dǎo)致的答毫,比如一共有100個訓(xùn)練樣本褥民,而我們假設(shè)模型是階數(shù)不大于200的多項式函數(shù)。由方差帶來的誤差通常體現(xiàn)在測試誤差相對于訓(xùn)練誤差的增量上洗搂。
12-4 偏差與方差示意圖
- 從減小方差和偏差的角度解釋Boosting和Bagging的原理:
- Bagging能夠提高弱分類器性能的原因是降低了方差消返。
- Boosting能夠提高弱分類器性能的原因是降低了偏差。
Bagging:Bagging是Bootstrap Aggregating的簡稱耘拇,意思就是再抽樣撵颊,然后在每個樣本上訓(xùn)練出來的模型取平均。假設(shè)有個隨機變量惫叛,方差為
秦驯,兩兩變量之間的相關(guān)性為
,則
個隨機變量的均值
的方差為
挣棕。在隨機變量完全獨立的情況下(
)译隘,
個隨機變量的方差為
,也就是說方差減小到了原來的
洛心。當(dāng)然模型之間不可能完全獨立固耘。為了追求模型的獨立性,諸多Bagging的方法做了不同的改進(jìn)词身。比如在隨機森林算法中厅目,每次選取節(jié)點分裂屬性時,會隨機抽取一個屬性子集法严,而不是從所有屬性中選取最優(yōu)屬性损敷,就是為了避免弱分類器之間過強的相關(guān)性。
Boosting:Boosting訓(xùn)練好弱分類器后深啤,我們計算弱分類器的錯誤或殘差拗馒,作為下一個分類器的輸入。這個過程就是在不斷減小損失函數(shù)溯街,使模型不斷逼近“靶心”诱桂,即使模型偏差不斷降低。(Boosting不會顯著降低方差呈昔,因為Boosting的各弱分類器之間是強相關(guān)的挥等,缺乏獨立性,所以不會對降低方差有作用)
-
泛化誤差堤尾、偏差肝劲、方差和模型復(fù)雜度的關(guān)系:
如下圖所示。對于給定的學(xué)習(xí)任務(wù)和訓(xùn)練數(shù)據(jù)集郭宝,我們需要對模型的復(fù)雜度做合理的假設(shè)辞槐。如果模型復(fù)雜度過低,雖然方差很小剩蟀,但偏差會很高催蝗;如果模型復(fù)雜度過高,雖然偏差低育特,但方差會很高丙号。
12-4 泛化誤差、偏差缰冤、方差和模型復(fù)雜度
小結(jié)
這是本章的第一部分犬缨,主要講了Bagging、Boosting的訓(xùn)練方法棉浸,典型的用到Bagging的方法有隨機森林怀薛,典型的用到Boosting的方法有Adaboost、梯度提升決策樹迷郑。第一部分還從偏差和方差的角度解釋了Bagging和Boosting的原理枝恋。之前雖然知道Bagging和Boosting创倔,但是并沒有想過模型的偏差和方差,這一點非常有啟發(fā)焚碌。
結(jié)尾
如果您發(fā)現(xiàn)我的文章有任何錯誤畦攘,或?qū)ξ业奈恼掠惺裁春玫慕ㄗh,請聯(lián)系我十电!如果您喜歡我的文章知押,請點喜歡~*我是藍(lán)白絳,感謝你的閱讀鹃骂!