有没有人知道为什么我得到的假阳性比假阴性多得多(阳性是少数类)?在此先感谢您的帮助!
因为正面是少数类。有很多负面的例子可能会变成误报。相反,可能成为假阴性的正面例子较少。
回想一下,Recall = Sensitivity=TP(TP+FN)
敏感性(真阳性率)与假阳性率(1-特异性)相关,如 ROC 曲线所示。在一个极端情况下,您将每个示例都称为正面,并且在 100% FPR 下具有 100% 的灵敏度。在另一种情况下,您没有将示例称为正面,并且具有 0% 的敏感性和 0% 的 FPR。当正类为少数时,即使是相对较小的 FPR(可能是因为您有较高的召回率=敏感度=TPR)最终也会导致大量的 FP(因为有很多负例)。
自从
精度=TP(TP+FP)
即使在 FPR 相对较低的情况下,如果负例的数量大得多,FP 也会压倒 TP。
或者,
正分类器:C+
正例:O+
精度 =P(O+|C+)=P(C+|O+)P(O+)P(C+)
当正类较小时,P(O+) 较低。
你们中有人有什么建议可以在不影响召回率的情况下提高我的精确度吗?
正如@rinspy 所提到的,根据我的经验,GBC 运行良好。然而,它会比具有线性内核的 SVC 慢,但您可以制作非常浅的树来加速它。此外,更多特征或更多观察可能会有所帮助(例如,可能有一些当前未分析的特征在您当前的所有 FP 中始终设置为某个值)。
绘制 ROC 曲线和校准曲线可能也是值得的。可能的情况是,即使分类器的精度很低,它也可能导致非常有用的概率估计。例如,即使绝对概率很小,只要知道硬盘驱动器的故障概率可能会增加 500 倍,这可能是重要的信息。
此外,低精度本质上意味着分类器返回大量误报。但是,如果误报很便宜,这可能不会那么糟糕。