我试图在不平衡的数据集(~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的开箱即用版本,那么我会更关心处理前端的类不平衡。