文章講解比較詳細,且有Python代碼,可以作為有用的參考。
參數:OBB-袋外錯誤率
建構随機森林的另一個關鍵問題就是如何選擇最優的m(特征個數),要解決這個問題主要依據計算袋外錯誤率oob error(out-of-bag error)。
随機森林有一個重要的優點就是,沒有必要對它進行交叉驗證或者用一個獨立的測試集來獲得誤差的一個無偏估計。它可以在内部進行評估,也就是說在生成的過程中就可以對誤差建立一個無偏估計。
我們知道,在建構每棵樹時,我們對訓練集使用了不同的bootstrap sample(随機且有放回地抽取)。是以對于每棵樹而言(假設對于第k棵樹),大約有1/3的訓練執行個體沒有參與第k棵樹的生成,它們稱為第k棵樹的oob樣本。
而這樣的采樣特點就允許我們進行oob估計,它的計算方式如下:
(note:以樣本為機關)
1)對每個樣本,計算它作為oob樣本的樹對它的分類情況(約1/3的樹);
2)然後以簡單多數投票作為該樣本的分類結果;
3)最後用誤分個數占樣本總數的比率作為随機森林的oob誤分率。
(文獻:Put each case left out in the construction of the kth tree down the kth tree to get a classification.
In this way, a test set classification is obtained for each case in about one-third of the trees. At the end of the run, take j to be the class that got most of the votes every time case n was oob. The proportion of times that j is not equal to the true class
of n averaged over all cases is the oob error estimate. This has proven to be unbiased in many tests.)
oob誤分率是随機森林泛化誤差的一個無偏估計,它的結果近似于需要大量計算的k折交叉驗證。
後記:
一般的方法是,特征的維數是先确定的。更多的是對随機森林本身參數的選擇,比如随機深林的層數,和樹木的個數。