服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

分类模型性能测试指标说明(一)

日期: 来源:python与金融应用收集编辑:样本

这段时间在进行一个贷款审批准入规则的评估工作,对各类规则的分类效果进行评估。目前经常用到相关的分类模型性能评估指标有如ROC、AUC、KS、LIFT、GAIN等等。但是这些指标各自评估的重点是什么,在什么情况下适用,结合我的工作经验,和大家分享一下:

一、混淆矩阵及其相关指标

要弄懂上面的那些指标,最关键的是要了解混淆矩阵,对于一个二分类问题,混淆矩阵是如下这种结构:

基础指标

TP : 实际为正例预测为正值的个数

FN:实际为正例预测为负值的个数

FP:实际为负例预测为正值的个数

TN:实际为负例预测为负值的个数

一级衍生指标:

覆盖率(sensitivity或TPR) : TP / (TP + FN)

准确率(PV+): TP/ (TP + FP)

这两个指标是模型分类能力评估最核心的指标,上面所有的性能评价指标都是有这两个的体现或衍生而来。写到这不由的想到电视里一个情节:反动份子一手拿着枪,一手拿着皮鞭,嘴里不停的嚷嚷着一句话”宁可错杀一千,不可放过一个”。这就话其实包含了分类模型评判的标准:按照他们的要求,模型的覆盖率要达到100%,也就是不可放过一个,为此他们放低了模型的准确率,准确率降到千分之一,也就是错杀一千。同时这句话同时也告诉我们覆盖率和准确率对模型来讲往往是“鱼与熊掌不可兼得”。

二级衍生指标:

假正率(FPR):FP / (FP + TN) 可以解释为实际是负值却被预测是正值的个数 / 所有负值个数

正例的比率 : (TP + FN) / (TP + FN + FP +TN) 就是正例占所有样本的比率

正确预测成正值的正例个数占总样本数的比率PTP: TP / (TP +FN +FP +TN)

把负例预测成正值个数占总样本数的比率 PFP: FP / (TP+FN +FP +TN)

预测成正值个数占总样本数的比率 DEPTH: PTP+PFP

三级衍生指标:

LIFT : 准确率 / 正例的比率 = {TP / (TP+FP)} / {(TP + FN) / (TP + FN + FP +TN)}

有了这三级指标,我们就可以构造相关的模型性能测试指标了

有图有真相,在介绍这些性能测试指标前,我们先准备测试数据:

有了测试数据我们就可以正式了解相关的性能评估指标了

1 ROC和AUC

直接上图:

全套代码奉上

%matplotlib inline

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

from sklearn import svm, datasets

from sklearn.metrics import roc_curve, auc

plt.rcParams['font.sans-serif'] =['SimHei']

plt.rcParams['axes.unicode_minus'] = False

## 读入测试数据

test_df = pd.read_excel(r'E:pythontest性能指标测试数据.xlsx')

##数据映射

dict_map = {'正':1,'负':0}

test_df['flag'] = test_df['结果'].map(dict_map)

##计算FPR 和 TPR 以及AUC

fpr,tpr,threshold = roc_curve(y_test, y_score)

roc_auc = auc(fpr,tpr)

#画图

plt.figure()

lw = 2

plt.figure(figsize=(8,8))

###假正率为横坐标,覆盖率为纵坐标做曲线

plt.plot(fpr, tpr, color='darkorange',

lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)

plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')

plt.xlim([0.0, 1.0])

plt.ylim([0.0, 1.05])

plt.xlabel(u'假真率(FPR)')

plt.ylabel(u'覆盖率(TPR)')

plt.title(u'ROC 测试图')

plt.legend(loc="lower right")

plt.show()

重点说明:

1、 ROC图计算的是TPR和FPR两个指标及覆盖率和假正率的关系,AUC是ROC图形围成的面积,在此例中为0.74;

2、 ROC图形形成的方法大致为,把计算的概率值从大到小排列(如测试案例所示),把这些概率值 依次作为阀值,计算在此阀值下的TPR和FPR,然后作为纵坐标点和横坐标点描点在坐标轴上。举个栗子:如果我们选序13号样本,概率0.43作为阀值,则 概率值>=0.43的都认为是正,则排在前面的13个样本都被预测为正。此时覆盖率为 TPR = 9/11 =0.82(前面13个样本中有9个样本预测准确,所有真实结果为正的样本为11),FPR = 4/11=0.37(前面13个样本中有4个样本预测错误,所有真实结果为负的样本为11),把(0.82,0.37)描点到坐标轴(如图),其他的点依此类推,就画出了ROC图;

3、 那条斜率为1的蓝虚线又是什么?这条蓝虚线叫做随机选择线也称为基线。就是在没有分类器的情况下,我们根据原始数据的分布来随机指定样本分类,此时TPR/FPR 恒等于1;

4、 不同模型分类能力可以通过ROC和AUC来进行比较,ROC图形越靠近左上角或是AUC的值越大,则模型的分类能力越强。AUC>0.9 表示模型的分类能力很好,0.7 < AUC < 0.9 表示模型的分类能力可以接受,小于0.7 就和随机选择没什么区别了。

5、ROC 和AUC 针对的是覆盖率这个指标,对模型的分类的准确率没有涉及,这个由后续的性能评估指标来覆盖。

相关阅读

  • 揭秘肿瘤标志物

  • 作者:汪清随着肿瘤标志物检测技术的广泛推广,无论是健康体检还是住院治疗,越来越多的人都接触到了这类指标。通过简单的抽血化验就得到的一系列带有字母和数字的数值,是否蕴含着
  • 生成式人工智能如何改变创意工作

  • 来源:Science AI本文约4400字,建议阅读10+分钟生成式AI模型有可能颠覆内容创作的世界。企业的生成式 AI 模型有可能颠覆内容创作的世界,对营销、软件、设计、娱乐和人际交流产
  • 2023年上半年小客车指标申报期1月1日开启

  • 2023年1月1日,本市开启2023年上半年小客车指标申报期,于2023年3月8日结束,共计67天。在此期间,个人和“无车家庭”申请指标、夫妻间申请变更登记车辆、“一人多车”的车主申请向
  • 2023年北京小客车指标配额为10万个

  •   昨天,北京市小客车指标调控管理办公室发布《关于2023年小客车指标配额和配置比例的通告》,2023年小客车指标配额为10万个,其中普通指标额度3万个,新能
  • 人工智能:即将到来的海啸

  • 虽然目前市面上的设计软件,其功能逐年在改善,但在改进的速度和规模上却越来越不稳定。关于BIM工作流程与工程建设行业在实际运作方式上的对应程度,人们提
  • 玉门:深耕数据治理 积极放大数据辐射效应

  • 今年以来,玉门市人民检察院高度重视数据治理工作,构建高效的检察数据治理体系,充分发挥业务数据参考、预判作用,着力推动业务数据治理各项工作取得实效。强

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • 2022年1至11月郴州经济运行恢复向好

  • 郴州日报全媒体记者 唐思思1月4日,郴州市统计局发布的数据显示,2022年11月,全市经济顶住内外多重压力呈现恢复向好态势,主要经济指标稳中向好。从生产看,郴州市工业生产稳定增长,
  • 河北“一户多人口”不再执行居民阶梯电价

  • 日前,省发展改革委印发《关于完善居民生活用电“一户多人口”电价申请办理有关事项的通知》,家庭常住人口在5人及以上的“一户一表”居民用户,可按照居民合表用户电价执行,不再