我在scikit中使用Random Forest classifer学习两个类的不平衡数据集。我更担心假阴性而不是假阳性。是否有可能修复假阴性率(比方说,1%)并让scikit以某种方式优化假阳性率?
如果这个分类器不支持它,那么还有另一个分类器吗?
答案 0 :(得分:6)
我相信使用class_weight
参数可以部分解决sklearn中类不平衡的问题。
这个参数是一个字典,每个类都赋予一个统一的权重,或者是一个告诉sklearn如何构建这个字典的字符串。例如,将此参数设置为' auto',将按照其频率的倒数的比例对每个类进行加权。
通过对较少金额较少的课程进行加权,您最终可以获得更好的成绩。结果
类似 SVM 或逻辑回归的分类器也提供此A=r("X<-featureCounts(...)")
参数。
This Stack Overflow回答提供了一些关于如何处理类不平衡的其他想法,例如采样和过采样。
答案 1 :(得分:4)
我发现这篇关于课堂失衡问题的文章。
它基本上讨论了以下可能的解决方案:
希望它可能会有所帮助。
答案 2 :(得分:1)
随机森林已经是一个袋装分类器,所以应该已经给出了一些好的结果。
获得所需假阳性或假阳性的一种典型方法是使用ROC曲线进行分析 http://scikit-learn.org/stable/auto_examples/plot_roc.html 例如,修改某些参数以达到所需的FP速率。
不确定是否可以使用参数调整随机森林分类器FP速率。您可以根据您的应用程序查看其他分类器。