随机森林 - 针对 AUC 或 F1 分数进行优化

问题描述 投票:0回答:2

我在

sklearn
中使用随机森林,并且我的数据集相当不平衡(20%的正类,80%的其他类)。有没有办法让它针对一些考虑到这一点的指标进行训练(优化),比如 AUC 分数或 F1 分数?我可以使用什么技巧来推动它朝这个方向发展吗? 到目前为止,我想到/尝试过的唯一方法是使用不同的类别权重。

或者,是否有另一种实现(或另一种模型,例如 xgboost)允许我这样的自定义指标?

python machine-learning scikit-learn data-science random-forest
2个回答
1
投票

您可以在交叉验证或训练/测试分割期间使用“分层抽样”方法。这确保了每次折叠或分割都包含每个类的平衡表示。 from sklearn.model_selection import StratifiedKFold cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)



0
投票
随机森林进行二元分类

。如果没有,你可以忽略这个: 为了解决类似的情况,我曾经使用 ROC 来找到 Youden 的 J 统计量 (

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2515362/

) 最大化的阈值。

© www.soinside.com 2019 - 2024. All rights reserved.