机器学习:随机森林RF-OOB袋外错误率
??????? 文章講解比較詳細,且有Python代碼,可以作為有用的參考。轉載博客時候,竟然抄錯成OBB了,也是悲劇................
??????? 有篇神文評測了17個分類器族-192個非神經網絡分類器,其中Rfs綜合評價效果最好:https://dl.acm.org/doi/10.5555/2627435.2697065 ; Do we need hundreds of classifiers to solve real world ...
?????? 原文鏈接:https://www.cnblogs.com/maybe2030/p/4585705.html
?????? 不過我還是覺得CSDN排版比較花哨一些:http://blog.csdn.net/zhufenglonglove/article/details/51785220
?
?參數:OOB-袋外錯誤率
???? ? ? 構建隨機森林的另一個關鍵問題就是如何選擇最優的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折交叉驗證。
?
后記:
?
?????? 一般的方法是,特征的維數是先確定的。更多的是對隨機森林本身參數的選擇,比如隨機深林的層數,和樹木的個數。
?
總結
以上是生活随笔為你收集整理的机器学习:随机森林RF-OOB袋外错误率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11 Build 23506 预览
- 下一篇: boost::mutex::scoped