使用scikit-learn对大约5000万个样本的平衡训练数据(50%一个类别,50%另一个,间隔(0,1)中的8个连续特征),我迄今为止能够尝试的所有分类器(Linear / LogisticRegression,LinearSVC,RandomForestClassifier,...)显示一种奇怪的行为:
在对训练数据进行测试时,假阳性的百分比远低于假阴性的百分比(fnr)。当手动校正截距以增加误报率(fpr)时,准确度实际上会大大提高。
为什么分类算法没有找到接近最优的拦截(我猜这或多或少会在fpr = fnr)?
答案 0 :(得分:0)
我想这个想法是没有“最佳”的单一定义;对于某些应用,你可以容忍误报而不是假阴性(即检测欺诈或疾病,你不想错过正面)而对于其他应用,误报更糟糕(预测设备故障,犯罪或某事)否则,采取行动的代价是昂贵的)。默认情况下,predict
只选择0.5
作为阈值,这通常不是您想要的,您需要考虑您的应用程序,然后查看ROC曲线和增益/提升图表以确定您的位置想要设定预测阈值。