隨機森林是bagging方法的一種具體實現。它會訓練多棵決策樹,然後將這些結果融合在一起就是最終的結果。隨機森林可以用於**,也可以用於回歸。主要在於決策樹型別的選取,根據具體的任務選擇具體類別的決策樹。
對於分類問題,乙個測試樣本會送到每一顆決策樹中進行**,然後投票,得票最多的類為最終的分類結果;
對與回歸問題,隨機森林的**結果是所有決策樹輸出的均值。
隨機森林的隨機性主要體現在兩個地方:
1、在訓練的時候,採用bootstrap方法對樣本是有放回的抽樣,每次都使用一部分樣本去訓練;
2、在決策樹內部結點**時候,每乙個結點都在所有特徵裡面隨機選擇在一部分特徵,然後在這些特徵裡面選擇最優**點。
包外誤差
隨機森林每次訓練一棵決策樹的時候,採用的都是部分的資料。所以,剩下沒有使用的樣本就可以用來做驗證集。有一點像交叉驗證的感覺。
對於分類問題,包外誤差就是被錯分的包外樣本除以總的包外樣本數
對於回歸問題,就是所有包外樣本的回歸誤差和除以包外樣本數
特徵重要性
隨機森林還可以計算特徵的重要性。經常也會用隨機森林來做特徵選擇。這裡用置換樣本特徵值(也可以新增雜訊)以後的oob(也就是包外的資料)誤差的增加量來判斷乙個特徵的重要性。因為,如果某個特徵很重要的話,那麼改變樣本該特徵的值對樣本的**結果就有很大的影響。如果特徵不重要,改變特徵對樣本的**結果也不會有很大的影響。下面為單棵決策樹的誤差增加量:
最後取所有數的平均值就得到了特徵的重要性
隨機森林的優點:
在資料集上表現良好,兩個隨機性的引入,使得隨機森林不容易陷入過擬合,但是對於小資料集還是有可能過擬合,所以還是要注意;
兩個隨機性的引入,使得隨機森林具有很好的抗噪能力;
它能夠處理很高維的資料,並且不用做特徵選擇,對資料集的適應能力強。既能處理離散性資料,也能處理連續型資料,資料集無需規範化;
在建立隨機森林的時候,對generalization error使用的是無偏估計;
訓練速度快,可以得到變數重要性排序(兩種:基於oob誤分率的增加量和基於**是的gini下降量);
在訓練過程中,能夠檢測到feature間的互影響;
容易做成並行化方法;
實現比較簡單
隨機森林的缺點:
對於小資料集和低維的資料效果可能不是很好。
整個模型為黑盒,沒有很強的解釋性。
由於隨機森林的兩個隨機性,導致執行結果不穩定。
隨機森林隨機 三
2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...
隨機森林演算法
random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...
理解隨機森林
理解隨機森林 隨機森林利用隨機的方式將許多決策樹組合成乙個森林,每個決策樹在分類的時候投票決定測試樣本的最終類別。下面我們再詳細說一下隨機森林是如何構建的。隨機森林主要包括4個部分 隨機選擇樣本 隨機選擇特徵 構建決策樹 隨機森林投票分類。給定乙個訓練樣本集,數量為n,我們使用有放回取樣到n個樣本,...