给定一个平衡的数据集(两个类的大小相同),将其拟合到SVM模型中,我得到的AUC值较高(〜0.9),但准确度较低(〜0.5)。

我完全不知道为什么会这样,有人能为我解释这个情况吗?

最佳答案

我最近偶然发现了同样的问题。这是我为自己找到的-如果我错了,请告诉我。

在思考为什么ROC曲线(AUC)下的面积可以较高而精度较低时,让我们首先概括一下这些术语的含义。

接收器-运算符(operator)特性(ROC)曲线绘制了误判率FPR(t)对真实正率TPR(t)的曲线,用于变化的决策阈值(或预测临界值)t。

TPR和FPR的定义如下:

TPR = TP / P = TP / (TP+FN) = number of true positives / number of positives
FPR = FP / N = FP / (FP+TN) = number of false positives / number of negatives

在ROC分析中,假定分类器可以简化为以下功能行为:
def classifier(observation, t):
    if score_function(observation) <= t:
        observation belongs to the "negative" class A
    else:
        observation belongs to the "positive" class B

将决策阈值t视为在训练分类器时要调整的自由参数。 (并非所有分类器都具有直接的参数化功能,但已知使用逻辑回归或简单阈值法,对于此类参数t显然有选择。)在训练过程中,选择最佳阈值t *需付出一定代价功能被最小化。

给定训练/测试数据,请注意,参数t的任何选择都会确定哪个数据点是正阳性(TP),假阳性(FP),真阴性(TN)或假阴性(FN)。因此,对t的任何选择也将确定FPR(t)和TPR(t)。

因此,我们看到了以下内容:ROC曲线表示由决策阈值t参数化的曲线,其中对于t的所有可能值,x = FPR(t)和y = TPR(t)。

所得ROC曲线下的面积称为AUC。它测量您的训练/测试数据,分类器如何区分“阳性”和“阴性”类别的样本。理想分类器的ROC曲线将通过最优点FPR(t *)= 0和TPR(t *)= 1,并且会产生AUC1。然而,随机分类器的ROC遵循对角线FPR(t)= TPR (t),得出的AUC为0.5。

最后,精度定义为所有正确标记的病例与病例总数的比率:
accuracy = (TP+TN)/(Total number of cases) = (TP+TN)/(TP+FP+TN+FN)

那么,如何使AUC变大而同时精度又低呢? 好吧,如果您的分类器以较高的假阴性率(或较低的真实阴性数)为代价在阳性类别(高AUC)上取得了良好的效果,则可能会发生这种情况。

为什么训练过程导致分类器的预测性能如此之差的问题却是一个不同的问题,它特定于您的问题/数据和您使用的分类方法。

总而言之,ROC分析告诉您有关阳性类别的样本与其他类别的分离程度的信息,而预测准确性则暗示了分类器的实际性能。

关于machine-learning - 平衡数据集中AUC高而准确性低的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38387913/

10-12 19:37