Machine-Learning

隨機森林是不平衡數據分類的好選擇嗎?[關閉]

  • October 27, 2016

儘管有類似的和其他不斷增加的數據可變性方法,但隨機森林“作為一種算法”是否可以被認為是不平衡數據分類的好選擇?

注意:這篇文章相當古老,可能不正確。僅將其用作起點,而不是權威答案。


隨機森林模型建立在決策樹之上,決策樹對類不平衡很敏感。每棵樹都建立在一個“袋子”上,每個袋子都是來自數據的均勻隨機樣本(有放回)。因此,每棵樹都會因類別不平衡而偏向相同的方向和幅度(平均而言)。

然而,有幾種技術可以減輕分類任務中的不平衡。

其中一些是通用的,適用於各種情況。搜索unbalanced-classes此 SE 網站上的class-imbalance標籤,以及Data Science SE 網站上的標籤。

此外,隨機森林至少適用於兩種類權重。第一種技術是加權樹分裂標準(有關其工作原理的信息,請參閱https://datascience.stackexchange.com/a/56260/1156)。另一種技術是在自舉採樣過程中對數據點進行過採樣或欠採樣。

在 Python 中,加權樹分裂是在Scikit-learn類中實現的RandomForestClassifier,作為class_weight參數。加權引導採樣在Imbalanced-learn類中實現BalancedRandomForestClassifier。請注意,Imbalanced-learnBalancedRandomForestClassifier也支持與class_weightScikit-learn 相同的參數RandomForestClassifier

在 R 中,這兩種技術都在Ranger中實現,在 mainranger函數中,作為class.weightscase.weightssample.fraction參數。有關使用示例,請參見https://stats.stackexchange.com/a/287849/36229 ;關於同一問題的其他答案中也有有用的信息。

顯然,在類不平衡的每個極端情況下,您可能需要調整最小節點大小或其他“詳細”參數以使模型完全正常工作。參見,例如https://stackoverflow.com/a/8704882/2954547

引用自:https://stats.stackexchange.com/questions/242833

comments powered by Disqus