不同分类器的 ROC 曲线形状(SVM 的“steppy”和 k-NN 的平滑)

机器算法验证 机器学习 支持向量机 scikit-学习 k-最近邻
2022-04-08 10:17:18

在为各种分类器构建 ROC 曲线时,我注意到它们的实际形状对于逻辑回归或 SVM 等模型与 k-NN 相比往往非常不同。例如,在下图中,我们看到对应于 k-NN 分类器的 ROC 曲线,并且可以看出几乎没有任何“步骤”或跳跃(如果有的话),因此非常平滑。另一方面,如果我们观察我为 SVM 模型获得的 ROC 曲线,则步骤肯定更丰富。我已经对各种数据集进行了尝试,对于 scikit-learn 中 k-NN 的 ROC 曲线,似乎总是不存在步骤或跳跃;我不知道R是否也这样做。有谁知道为什么 k-NN 的 ROC 曲线可能采用这种特定形状,而 SVM 或 LR 的 ROC 曲线明显涉及更多步骤?提前非常感谢。

在此处输入图像描述

在此处输入图像描述

1个回答

当您有关联时,ROC 曲线中会出现对角线,也就是说,当您在正组和负组中有一个或多个具有完全相同测试值的观察值时。

SVM 分类器输出连续概率。打平的机会通常很低。这就是为什么你会得到一个“阶梯式”曲线。

另一方面,由于做出 k-NN 决策的观察数量有限,输出概率通常不是连续的。例如,如果您考虑 k = 3 的 k-NN 分类器,则概率只能是 1.0、0.67、0.33、0。您很可能在两组中都观察到这些值,因此是平局和对角线。