Scikit-learn:假阳性和假阴性之间存在严重的不平衡

时间:2016-11-07 10:52:43

标签: optimization scikit-learn classification evaluation false-positive

使用scikit-learn对大约5000万个样本的平衡训练数据(50%一个类别,50%另一个,间隔(0,1)中的8个连续特征),我迄今为止能够尝试的所有分类器(Linear / LogisticRegression,LinearSVC,RandomForestClassifier,...)显示一种奇怪的行为:

在对训练数据进行测试时,假阳性的百分比远低于假阴性的百分比(fnr)。当手动校正截距以增加误报率(fpr)时,准确度实际上会大大提高。

为什么分类算法没有找到接近最优的拦截(我猜这或多或少会在fpr = fnr)?

1 个答案:

答案 0 :(得分:0)

我想这个想法是没有“最佳”的单一定义;对于某些应用,你可以容忍误报而不是假阴性(即检测欺诈或疾病,你不想错过正面)而对于其他应用,误报更糟糕(预测设备故障,犯罪或某事)否则,采取行动的代价是昂贵的)。默认情况下,predict只选择0.5作为阈值,这通常不是您想要的,您需要考虑您的应用程序,然后查看ROC曲线和增益/提升图表以确定您的位置想要设定预测阈值。