machine-learning - 在分类中,测试准确率和 AUC 分数有什么区别?
问题描述
我正在从事一个基于分类的项目,我正在根据它们的训练准确度、测试准确度、混淆矩阵和 AUC 分数来评估不同的 ML 模型。我现在一直在理解通过计算测试集 (X_test) 上的 ML 模型的准确性得到的分数与 AUC 分数之间的差异。
如果我是正确的,这两个指标都会计算 ML 模型能够预测正确类别的先前未见过的数据的能力。我也明白,对于两者来说,数字越高越好,只要模型不是过拟合或欠拟合。
假设 ML 模型既不是过拟合也不是欠拟合,那么测试准确度分数和 AUC 分数有什么区别?
我没有数学和统计背景,而是从商业背景转向数据科学。因此,我会很感激商务人士可以理解的解释。
解决方案
这两个术语都量化了分类模型的质量,但是,准确性量化了变量的单个表现形式,这意味着它描述了单个混淆矩阵。表示为同一分类器的不同值生成的多个混淆矩阵中的和之间的AUC (area under the curve)
权衡。混淆矩阵的形式为:true-positive-rate (tpr)
false-positive-rate (fpr)
fpr
其中 tp=true-positives, tn=true-negatives, fp=false-positives and fn=false-negatives(每个数量)。
2)AUC
测量area under the ROC (receiver operating characteristic)
,即和trade-off
之间的曲线。对于假阳性率 (fpr) 阈值的每个选择,确定真阳性率 (tpr)。即,对于给定的分类器,接受 0、0.1、0.2 等第四个 fpr,并且对于每个 fpr,评估它的依赖 tpr。因此,您会得到一个函数tpr(fpr),它将区间 [0,1] 映射到同一区间,因为这两个速率都是在这些区间中定义的。这条线下方的区域称为 AUC,介于 0 和 1 之间,因此随机分类预计会产生 0.5 的 AUC。true-positive-rate
false-positive-rate
AUC,因为它是曲线下的面积,定义为:
然而,在实际(和有限)应用中,ROC
AUC 是阶跃函数,AUC 由这些水平的加权和确定。
图表来自Borgelt 的智能数据挖掘讲座。
推荐阅读
- kotlin - Kotlin - 更改字符串列表中的元素
- linux - 我如何修复 SCP 在 Makefile 内部不起作用
- macos - make: *** 没有指定目标,也没有找到 makefile。在狗狗币中的 ./configure 之后停止?
- python - Pyspark - 操纵数据框以获取状态的时间变化
- ruby-on-rails - 在不改变模型的情况下知道其他人是否正在查看记录的方式?
- html - 为什么我的电子邮件客户端无法正确呈现 html 电子邮件?
- google-translate - 构建谷歌翻译自动化脚本
- asp.net-mvc - 使用 Asp.Net MVC & Graph API 从 Office365 联系人同步本地数据库联系人
- javascript - 如何使用纯 JS 实时复制文本
- sql - 从 excel 表在 VBA 中创建一个临时表以用于 sql 查询