在为 KNN 调整 n _neighbors 之前 ROC_AUC 分数更高

数据挖掘 机器学习 分类 多类分类 监督学习 k-nn
2022-02-12 09:53:00

这是用于多类分类。在为 KNN 调整 n_neighbors 之前,结果如下:

    Train Accuracy:  99.54%
    Test Accuracy:  99.58%
    ROC AUC Score: 99.86%

在找到最佳 n_neighbors 后,结果如下:

    Train Accuracy:  99.64%
    Test Accuracy:  99.67%
    ROC AUC Score: 99.82%

我的回忆分数从 0.996 到 0.997。正如我们所看到的,结果在没有过度拟合的情况下得到了改善。但是为什么我的 ROC AUC 分数下降了 0.04?我认为当模型改进时 ROC AUC 分数会增加?我的混淆矩阵也得到了改进:

调音前:预调混淆矩阵

调整后:调整混淆矩阵后

1个回答

我将首先回答两类分类。

您的准确率和召回值显示为单个阈值。ROC AUC 正在考虑所有阈值。这里的阈值是决定如何使用模型的数字输出来选择两个类别中的哪一个。

因此,您的结果表明,对于一个阈值,您的结果有所改善。但是,随着 AUC 下降,对于其他阈值,它肯定会变得更糟。AUC 是曲线下面积,绘制曲线通常是个好主意。

AUC 并没有太多用于多类分类。我相信它通常是作为一个类而不是所有其他类来完成的。因此,在您的情况下,您最终会得到 8 条曲线,而不是一条曲线。然后平均这些曲线的 AUC 分数。

同样,绘制曲线是了解模型前后变化的最佳方式。