什麼是隨機森林袋外錯誤? 它是在隨機森林中找到合適樹數的最佳參數嗎?什麼是隨機森林中的袋外錯誤?
回答
我將試圖解釋:
假設我們的訓練數據集是由T和假設數據集表示有M個特徵(或屬性或變量)。 RF的
T = {(X1,y1), (X2,y2), ... (Xn, yn)}
和
Xi is input vector {xi1, xi2, ... xiM}
yi is the label (or output or class).
摘要:
隨機森林算法是一種基於主要有兩種方法分類 -
- 套袋
- 隨機子空間米ethod。
假設我們決定有S
一些在我們的林木那麼我們首先創建從數據的隨機採樣與-更換時間創建"same size as original"
S
數據集(N次,每個數據集)。這將導致{T1, T2, ... TS}
數據集。這些中的每一個都稱爲引導數據集。由於「帶替換」,每個數據集Ti
可能有重複的數據記錄,並且Ti可能會丟失來自原始數據集的多個數據記錄。這叫做Bootstrapping
。 (en.wikipedia.org/wiki/Bootstrapping_(statistics))
套袋是將bootstraps &然後聚合在每個bootstrap上學習的模型的過程。
現在,RF創建S
樹並使用m (=sqrt(M) or =floor(lnM+1))
隨機子特性出M
可能的功能來創建任何樹。這被稱爲隨機子空間方法。
因此,對於每個Ti
引導數據集,您都會創建一棵樹Ki
。如果你想分類一些輸入數據D = {x1, x2, ..., xM}
,你讓它通過每棵樹併產生S
輸出(每棵樹一個),可以用Y = {y1, y2, ..., ys}
表示。最終的預測是對這組數的多數票。
出球袋錯誤:
在原來的訓練創建分類(S
樹),每個(Xi,yi)
後設置即T
,選擇所有Tk
不包括(Xi,yi)
。注意,這個子集是一組boostrap數據集,它不包含原始數據集中的特定記錄。這個集合被稱爲out-of-bag示例。有這樣的子集(原始數據集T中的每個數據記錄一個)。OOB分類器是僅在Tk
之上的投票集合,使得它不包含(xi,yi)
。
泛化誤差的袋外估計值是訓練集上的袋外分類器的誤差率(將其與已知的yi
進行比較)。
爲什麼它很重要? Breiman [1996b]對袋裝分類器的誤差估計的研究給出了經驗證據,表明袋外估計與使用與訓練集相同大小的測試集一樣準確。因此,使用袋外誤差估計消除了對預留測試集的需求。
(感謝@Rudolf更正。下面他的評論。)
在Breiman最初實現的隨機森林算法中,每棵樹都在約2/3的總訓練數據上進行訓練。隨着森林的建成,每棵樹都可以進行測試(類似於對一棵樹進行交叉驗證),而不用於構建該樹的樣本。這是包差錯估計 - 對正在構建的隨機森林的內部誤差估計。
發佈您的問題謝謝你的簡潔明瞭的答案。 – ays0110
- 1. 隨機森林中的套袋和max_feature
- 2. Spark隨機森林錯誤
- 3. 隨機森林的高OOB錯誤率
- 4. Python Scikit隨機森林迴歸錯誤
- 5. python中的隨機森林
- 6. 隨機森林中的R
- 7. ROC隨機森林
- 8. R:結合森林時隨機森林的錯誤使用插入符號
- 9. 隨機森林是AdaBoost的特例嗎?
- 10. 隨機森林,使用R
- 11. P值爲隨機森林
- 12. 隨機森林分析
- 13. 隨機森林分類器
- 14. OpenCV - 隨機森林示例
- 15. 隨機森林下標越界出錯?
- 16. 隨機森林錯誤 - 我是否內存不足?
- 17. 如何從h2o隨機森林對象中獲取隨機森林閾值
- 18. R中的隨機森林包
- 19. 隨機森林中的子集
- 20. scikit-learn中的隨機森林解釋
- 21. R中的隨機森林 - 很多類
- 22. Python中的隨機森林實現
- 23. R中的隨機森林算法
- 24. 隨機森林中的ValueError(Python)
- 25. 隨機森林中的樹細節
- 26. ScikitLearn中的Undersampling vs class_weight隨機森林
- 27. 「決策森林」和「隨機森林」的簡潔區分
- 28. 多類決策森林vs隨機森林
- 29. Python的 - 與scikit錯誤學習隨機森林約值格式
- 30. 插補時使用隨機森林(MICE包)的錯誤
如果這個問題沒有具體的實現,可能要在http://stats.stackexchange.com/ – Sentry