Python 你能在scikit learn中修复分类器中的假阴性率吗

Python 你能在scikit learn中修复分类器中的假阴性率吗,python,scikit-learn,Python,Scikit Learn,我正在使用一个包含两个类的不平衡数据集的in-scikit学习。我更担心假阴性而不是假阳性。是否有可能修正假阴性率(比如说,1%),并要求scikit以某种方式优化假阳性率 如果这个分类器不支持它,是否还有另一个分类器支持它?我相信sklearn中的类不平衡问题可以通过使用class\u weight参数部分解决 此参数是一个字典,其中每个类都被分配了一个统一的权重,或者是一个字符串,告诉sklearn如何构建此字典。例如,将此参数设置为“auto”,将按其频率的倒数比例对每个类进行加权 通过用

我正在使用一个包含两个类的不平衡数据集的in-scikit学习。我更担心假阴性而不是假阳性。是否有可能修正假阴性率(比如说,1%),并要求scikit以某种方式优化假阳性率


如果这个分类器不支持它,是否还有另一个分类器支持它?

我相信sklearn中的类不平衡问题可以通过使用
class\u weight
参数部分解决

此参数是一个字典,其中每个类都被分配了一个统一的权重,或者是一个字符串,告诉sklearn如何构建此字典。例如,将此参数设置为“auto”,将按其频率的倒数比例对每个类进行加权

通过用更高的数量对较少出现的类进行加权,最终可以得到“更好”的结果

类似于SVMlogistic回归的分类器也提供了这个
类权重
参数


堆栈溢出回答提供了一些关于如何处理类不平衡的其他想法,如欠采样和过采样。

我发现了这篇关于类不平衡问题的文章

它基本上讨论了以下可能的解决方案,以供总结:

  • 基于成本函数的方法
  • 基于抽样的方法
  • SMOTE(合成少数超采样技术)
  • 最近的方法:RUSBoost、SMOTEBagging和Underbagging

希望它能有所帮助。

Random forests已经是一个袋装分类器,因此应该已经给出了一些好的结果

获得所需假阳性或假阴性准确度的一种典型方法是使用ROC曲线进行分析 以及修改某些参数以实现所需的FP速率(例如)


不确定是否可以使用参数调整随机林分类器FP速率。您可以根据您的应用程序查看其他分类器。

RandomForestClassifier在master中也有class_权重(并且将在一周左右的时间内发布)。@AndreasMueller谢谢。如果我真的只关心固定的假阴性权重,那么将假阳性权重指定为损失函数并尝试使用支持用户定义损失函数的分类器之一进行优化是否有意义?@AndreasMueller还有一件事。0.16.1文档声称RandomForestClassifier具有class_权重。这是不是功能目前?它应该是工作。没有具有用户定义损失函数的模型。不过,您可以根据用户定义的记分器选择“超参数”。您可以使用分类器的
predict\u proba
方法设置自己的判别阈值。