分类模型评价及AUC计算详解

36 篇文章 4 订阅

1、分类模型评测指标

在使用模型进行分类时,一般使用准确度(Accuracy)、精确率(Precision)、召回率(Recall)作为评测指标对模型的好坏进行评价,今天主要就auc进行介绍。

混淆表分类器预测类别
confusion tableA(军事)B(科技)
实际类别A(60)X11(50)X12(10)
B(40)X21(5)X22(35)

假设A、B分别为军事和科技,现有100篇文章,其中军事60篇,科技40篇,使用分类器分类得到的数据如上表,实际为军事的60篇中有50篇被正确分类,余下10篇被误分类到科技;实际为科技的40篇文章,有35篇被正确分类到科技,其余5篇被误分类到军事。

那么,该分类器的评测指标如下:

准确度(Accuracy):(X11+X22)/(X11+X12+X21+X22)

精确率(Precision):X11/(X11+X21)

召回率(Recall):X11/(X11+X12)

2、AUC

实际工作中我们常用AUC来衡量二分模型的有效性,即使用负样本排在正样本前面的概率进行评估,

1、假设有10篇文章,0代表为军事,1代表为科技,第三列为分类器预测值,值越靠近0则认为该文章是军事的概率更大,值越接近1则表示该文章是科技的概率更大。

2、对这组数据按照预测值进行排序,得到如下数据:

从上图可以看到当按照预测值进行排序时,(第二列)实际分类也是有序的,并没有出现1排在0的前面,此时负样本全部排在正样本前面。使用如下脚本计算,得到AUC=1。

#!/usr/bin/python
import sys

x=y=a=0
for line in sys.stdin:
        w=line.strip().split(' ')
        if w[1]=='0':
                x=x+1
                a=a+y
        else:
                y=y+1

print(1.0-a/(x*y))

3、实际情况下分类器在预测时会出现一定得误差,比如得到的数据是这样的:

可以看到在第5篇文章分类错误的情况下,即负样本排在了正样本的前面,故AUC=0.96

我们接下来做进一步的测试:

整体是符合我们预期的,当分类预测值误差越大,负样本在正样本前面的概率就越小,即AUC越小。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SeasonRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值