【前言】:公衆號的AI初學者交流羣已經創建啦,公衆號後臺回覆【加羣】能夠加入。羣裏都是些一塊兒學習的朋友,你們學習路上,結個伴。node
【公衆號資源彙總】:煉丹圖書館 | AI初學者所須要的資料合集(視頻+PDF下載)
web
全文3155字,預計閱讀時間10min面試
文章目錄:算法
1 隨機森林bootstrap
2 bagging微信
3 神祕的63.2%網絡
4 隨機森林 vs baggingapp
5 投票策略dom
6 隨機森林的特色機器學習
6.1 優勢
6.2 bias 與 variance
6.3 隨機森林下降誤差證實
隨機森林中仍有兩個未解之謎(對我來講)。隨機森林採用的bagging思想中怎麼獲得的62.3% 以及 隨機森林和bagging的方法是否有區別。
隨機森林(Random Forest)就是經過集成學習的思想將多棵決策樹集成的一種算法。基本單元是決策樹。隨機森林算法的提出也是爲了改善決策樹容易存在過擬合的狀況。
1 隨機森林
習慣上,咱們將衆多分類器(SVM、Logistic迴歸、決策樹等)所組成的「總的分類器」,叫作隨機森林。隨機森林有兩個關鍵詞,一個是「隨機」,一個是「森林」。森林就是成百上千棵樹,體現了集成的思想,隨機將會在下面總結到。
2 bagging
Bagging,其實就是bootstrap aggregating的縮寫, 二者是等價的,其核心就是有放回抽樣。
【bagging具體步驟】
-
從大小爲n的樣本集中有放回地重採樣選出n個樣本;(沒錯就是n個樣本抽取n個) -
在全部屬性上,對這n個樣本創建分類器(ID3信息增益、C4.5信息增益率、CART基尼係數、SVM、Logistic迴歸等) -
重複以上兩步m次,即得到了m個分類器; -
將預測數據放在這m個分類器上,最後根據這m個分類器的投票結果,決定數據屬於哪一類。
3 神祕的63.2%
通常被你們知曉的是:隨機森林中每一次採樣的比例是63.2%。 這個比例究竟是怎麼肯定的呢?
在某手的面試中,我被問到了這個相關的問題,奈何學藝不精,哎。後來苦苦研究15分鐘,終於獲得答案,如今分享給你們。
bagging的最初的說法實際上是:n個樣本從中有放回抽樣n次,這種條件下,勢必會有抽取到相一樣本的可能性,那麼抽取到不一樣樣本的指望值是多少呢?其實你們內心可能會有答案了,沒錯就是0.632n。
咱們假設 表示第k次抽樣抽取到不一樣樣本的機率。那麼 則表示第k-1次抽樣抽取到不一樣樣本的機率。
-
第k-1次抽樣到不一樣樣本的機率: -
第k-1次抽樣時,有 個樣本尚未被抽取 -
第k次抽樣時,還有 的樣本沒有抽取 -
所以 -
,第一次抽樣的數據必定不會重複
所以k次放回抽樣的不一樣樣本的指望值爲:
利用等比數列的性質,獲得:
當n足夠大,而且k=n的狀況下,上面的公式等於
因此證實完畢,每一次bagging採樣重複抽取n次其實只有63.2%的樣本會被採樣到。
4 隨機森林 vs bagging
隨機森林(Random Forest)在Bagging基礎上進行了修改。 具體步驟能夠總結以下:
-
從訓練樣本集中採用Bootstrap的方法有放回地重採樣選出n個樣本,即每棵樹的訓練數據集都是不一樣的 ,裏面包含重複的訓練樣本(這意味着隨機森林並非按照bagging的0.632比例採樣 );
-
從全部屬性中有選擇地選出K個屬性,選擇最佳屬性做爲節點創建CART決策樹;
-
重複以上步驟m次,即創建了m棵CART決策樹
-
這m個CART造成隨機森林,經過投票表決分類結果,決定數據是屬於哪一類。
隨機森林(Random Forest)的隨機性主要體如今兩方面,一方面是樣本隨機,另外一方面是屬性隨機。樣本隨機的緣由是若是樣本不隨機,每棵樹的訓練數據都同樣,那麼最終訓練出的分類結果也是徹底同樣的。
5 投票策略
-
少數服從多數 -
一票否決 -
據說還有貝葉斯平均的方法。可是我沒有過多瞭解。通常仍是用少數服從多數的吧。
6 隨機森林的特色
6.1 優勢
-
在當前的算法中,具備極好的準確率 -
可以運行在大數據上 -
可以處理具備高維特徵的輸入樣本,不須要降維 -
可以計算各個特徵的重要度 -
可以防止過擬合 -
其實在一些大數據競賽中,隨機森林也是我第一個會嘗試的模型哦~
6.2 bias 與 variance
說到機器學習模型的偏差,主要就是bias和variance。
-
Bias:若是一個模型的訓練錯誤大,而後驗證錯誤和訓練錯誤都很大,那麼這個模型就是高bias。多是由於欠擬合,也多是由於模型是弱分類器。
-
Variance:模型的訓練錯誤小,可是驗證錯誤遠大於訓練錯誤,那麼這個模型就是高Variance,或者說它是過擬合。
這個圖中,左上角是低誤差低方差的,能夠看到全部的預測值,都會落在靶心,完美模型;
右上角是高誤差,能夠看到,雖然總體數據預測的好像都在中心,可是波動很大。
【高誤差vs高方差】
在機器學習中,由於誤差和方差不能兼顧,因此咱們通常會選擇高誤差、低方差的左下角的模型。穩定性是最重要的,寧肯全部的樣本都80%正確率,也不要部分樣本100%、部分50%的正確率。我的感受,穩定性是學習到東西的體現,高方差模型與隨機蒙的有什麼區別?
6.3 隨機森林下降誤差證實
上面的可能有些抽象,這裏用RandomForest(RF)來做爲例子:隨機森林是bagging的集成模型,這裏:
-
RF(x)表示隨機森林對樣本x的預測值; -
B表示總共有B棵樹; -
表示第i棵樹所使用的訓練集,是使用bagging的方法,從全部訓練集中進行行採樣和列採樣獲得的子數據集。
這裏全部的 ,都是從全部數據集中隨機採樣的,因此能夠理解爲都是服從相同分佈的。因此不斷增長B的數量,增長隨機森林中樹的數量,是不會減少模型的誤差的。【我的感受,是由於無論訓練再多的樹,其實就那麼多數據,怎麼訓練都不會減小,這一點比較好理解】
【RF是如何下降誤差的?】 直觀上,使用多棵樹和bagging,是能夠增長模型的穩定性的。怎麼證實的?
咱們須要計算
假設不一樣樹的 之間的相關係數爲 ,而後每棵樹的方差都是 .
先複習一下兩個隨機變量相加的方差如何表示:
-
Cov(X,Y)表示X和Y的協方差。協方差和相關係數不同哦,要除以X和Y的標準差:
下面轉成B個相關變量的方差計算,是矩陣的形式:
很好推導的,能夠試一試。
這樣能夠看出來了,RF的樹的數量越多,RF方差的第二項會不斷減少,可是第一項不變。也就是說,第一項就是RF模型誤差的下極限了。
【總結】
-
增長決策樹的數量B,誤差不變;方差減少; -
增長決策樹深度,誤差減少; 減少, 增長; -
增長bagging採樣比例,誤差減少; 增長, 增長;
【bagging vs boost】 以前的文章也提到過了boost算法。
GBDT中,在某種狀況下,是不斷訓練以前模型的殘差,來達到下降bias的效果。雖然也是集成模型,可是能夠想到,每個GBDT中的樹,所學習的數據的分佈都是不一樣的,這意味着在GBDT模型的方差會隨着決策樹的數量增多,不斷地增長。
-
bagging的目的:下降方差; -
boost的目的:下降誤差
【機器學習煉丹術】的文章清單
<<小白學圖像>>
小白學目標檢測 | RCNN, SPPNet, Fast, Faster
小白學圖像 | BatchNormalization詳解與比較
<<小白學算法>>
<<小白學機器學習>>
SVM三合一 | SVM優化推導 + 拉格朗日算子講解(KKT條件) + hingeLoss
評價指標 | 詳解F1-score與多分類MacroF1&MicroF1
<<小白學推薦>>
<<小白麪經>>
其實上面全部專題中的內容都有可能出在面試中
<<小白學雜七雜八>>
公衆號回覆【入羣】,加入AI愛好者大學生交流羣。你缺乏的可能只是一塊兒前行的同伴~
也能夠添加做者好友,進行交流學習經驗、求職經驗、競賽經驗、如何一頓飯吃兩頓的量的經驗、找女友經驗等。
本文分享自微信公衆號 - 機器學習煉丹術(liandanshu)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。