熱線電話:13121318867

登錄
首頁精彩閱讀機器學習故事匯-集成算法
機器學習故事匯-集成算法
2018-03-21
收藏

機器學習故事匯-集成算法

【咱們的目標】系列算法講解旨在用最簡單易懂的故事情節幫助大家掌握晦澀無趣的機器學習,適合對數學很頭疼的同學們,小板凳走起!

今天咱們就來討論一下傳說中的集成算法,之前咱們講的算法都是單兵作戰的(單個模型得到結果),但是回過頭來想一想現在是不是干啥都講究個合作共贏,所以咱們的模型也是如此。單個算法確實勢單力薄,假如我們可以把它們組合起來會不會得到更好的效果呢?(算法們要揭竿起義了,今亡亦死舉大計亦死。。。編不下去了)

集成算法中,有三個核心模塊,咱們就一一道來,先來概述一下:

Bagging集成:并行的構造多個基礎模型(隨機森林),每一個基礎模型都各自為政,然后把它們的結果求一個平均就好!

Boosting集成:串行的構造多個基礎模型(Xgboost),每一個基礎模型都要嚴格篩選,在前面的基礎上加進來的新模型后,它們整體的效果起碼得沒加這個新的基礎模型前要強吧!

Stacking集成:多種算法群毆一起上!選擇多個機器學習算法做同一件事,最后把它們的結果合并就OK啦!

先來看看第一個家伙Bagging模型,其典型代表就是隨機森立了,簡單來說就是并行的訓練一堆樹模型,然后求其平均結果,在這里我們要討論一個問題,就是每個樹模型該怎么構造呢?如果不加入任何限制,那每個樹模型不都差不多嘛,那最后的平均結果又會有什么變化呢?所以為了結果的泛化能力更強,必須要使得每個樹模型表現出多樣性,也就是盡可能的讓每個樹模型都不一樣!

這該怎么做呢?什么影響模型呢?數據絕對是最大的影響因子,這里的森林很好理解了,就是把樹放在一起,那么隨機又是什么呢?為了保證每個樹的多樣性,在構建模型時,我們做了二重隨機(我自創的詞。。。)第一重就是對樣本的選擇,每次隨機的有放回的選擇部分樣本作為一棵樹的訓練樣本(比如選擇百分之八十作為訓練集)。第二重還要考慮特征了,既然樣本數據能隨機,那么特征也是一樣的,每棵樹選擇的特征也是不一樣的隨機選擇部分特征來建模!

隨機的意義非常重要,這是隨機森林的精神所在!

隨機森林作為灰常經典的機器學習算法,優勢自然少不了,當我們建模完之后,還可以對特征進行重要性評估,其實簡單來說一個特征的重要與否可以取決于建模的時候如果把這個特征換成噪音特征再去看看結果的錯誤率是不是顯著上升,如果顯著上升,那么這個特征自然很重要,如果沒變化,那這個特征就沒啥用了,因為它和噪音沒啥區別!

隨機森林中樹的個數是不是越多越好呢?理論上越多的樹效果應該會更好吧,但是實際上我們把樹的個數增加到一定的時候比如100棵了已經,再往上增加樹的個數結果也只會發生小范圍的浮動,基本也就穩定了!

Boosting集成中典型的代表就屬Xgboost啦,一個大殺器,這個算法由于涉及的數學比較多,咱們后續來一個專題去講Xgboost,我們先來看看簡單些的Adaboost。

Adaboost算法概述來說就是,首選我有一個非常簡單的模型,比如深度為1的樹模型,然后我去預測一下結果,在結果中我發現某些樣本預測錯了,這個時候第二個簡單的樹模型就來了,還是同樣的任務只不過數據的權重發生了變換,一開始所有的數據都是相同的權重,但是第二次會把前面那次預測錯的數據的權重增大,相對來說預測對的數據的權重就會減小。說白了就是讓后面的模型更注重我之前哪些數據分錯了,這回好能分對它?。ê帽任覀冊诳荚嚽岸紩土曋白鲥e的題)

最后來看一下堆疊模型吧,社會我Stacking,人狠話不多,不需要多解釋,做了一堆算法,然后把它們的結果堆疊起來,每個算法都有自己的預測結果,這些結果組合在一起那不相當于一個新的特征嘛,再把它們結果組成的特征去做一個分類或者回歸,又得到了一個唯一的結果。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢