随机森林:平衡测试集?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机森林:平衡测试集?相关的知识,希望对你有一定的参考价值。

我试图在不平衡的数据集(~1:4)上运行随机森林分类器。

我使用imblearn的方法如下:

from imblearn.ensemble import BalancedRandomForestClassifier

rf=BalancedRandomForestClassifier(n_estimators=1000,random_state=42,class_weight='balanced',sampling_strategy='not minority')
rf.fit(train_features,train_labels) 
predictions=rf.predict(test_features)

训练和测试集的分割是在交叉验证方法中使用来自scikit learn的RepeatedStratifiedKFold进行的。

但是,我想知道测试集是否也需要平衡以获得合理的准确度分数(灵敏度,特异性等)。我希望你能帮助我。

非常感谢!

答案

来自imblearn docs

平衡的随机森林随机地对每个自举样本进行欠采样以平衡它。

如果您可以使用随机欠采样作为平衡方法,那么分类器就是在“引擎盖下”为您做到这一点。事实上,这就是首先使用imblearn来处理类不平衡的问题。如果你使用直接随机森林,比如sklearn的开箱即用版本,那么我会更关心处理前端的类不平衡。

以上是关于随机森林:平衡测试集?的主要内容,如果未能解决你的问题,请参考以下文章

r语言随机森林结果规则怎么显示

R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)

R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accurayF1偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

如何处理 sklearn 随机森林中的类不平衡。我应该使用样本权重还是类权重参数

如何将经过训练和测试的随机森林模型应用于 tidymodels 中的新数据集?

随机森林表现低于预期