我有两个分类器
- A:朴素贝叶斯网络
- B:树(单连接)贝叶斯网络
在准确率和其他指标方面,A 的表现比 B 差。但是,当我使用 R 包 ROCR 和 AUC 进行 ROC 分析时,结果 A 的 AUC 比 B 的 AUC 高。这是为什么发生?
真阳性(tp)、假阳性(fp)、假阴性(fn)、真阴性(tn)、敏感性(sen)、特异性(spec)、阳性预测值(ppv)、阴性预测值(npv)和A 和 B 的准确度 (acc) 如下。
+------+---------+---------+
| | A | B |
+------+---------+---------+
| tp | 3601 | 769 |
| fp | 0 | 0 |
| fn | 6569 | 5918 |
| tn | 15655 | 19138 |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv | 1.00000 | 1.00000 |
| npv | 0.70442 | 0.76381 |
| acc | 0.74563 | 0.77084 |
+------+---------+---------+
除了边缘(不包括 tp、fn、fn 和 tn)上的 sens 和 tie(spec 和 ppv)外,B 似乎比 A 表现更好。
当我计算 sens(y 轴)与 1-spec(x 轴)的 AUC 时
aucroc <- auc(roc(data$prediction,data$labels));
这是AUC比较。
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
所以这是我的问题:
- 当 B 在准确性方面“似乎”优于 A 时,为什么 A 的 AUC 优于 B?
- 那么,我如何真正判断/比较 A 和 B 的分类性能呢?我的意思是,我是否使用 AUC 值?我是否使用 acc 值,如果是,为什么?
- 此外,当我对 A 和 B 应用适当的评分规则时,B 在对数损失、二次损失和球面损失方面优于 A(p < 0.001)。这些对判断 AUC 的分类性能有何影响?
- A 的 ROC 图看起来非常平滑(它是一个弯曲的弧线),但 B 的 ROC 图看起来像一组连接线。为什么是这样?
根据要求,这里是模型 A 的图。
这是模型 B 的图。
这是 A 和 B 的概率分布的直方图。(间隔设置为 20)。
这是 B 与 A 的概率的散点图。