机器学习中的性能度量指标汇总


Class Content
layout post
title 机器学习中的性能度量指标汇总
categories Blog
description 对机器学习中常用的度量模型的指标进行汇总,并对其附上代码便于以后使用
keywords 错误率和精度、查准率、查全率、F值、ROC和AUC

前言

在机器学习中要考察选择模型的优劣,需要对模型的泛化能力进行评估,这就是性能度量。本篇文章主要介绍分类、回归以及聚类中的性能度量以及编写代码以便于以后使用。

分类任务常用的性能度量

  • 1. 错误率和精度
    顾名思义,错误率是指分类错误的样本占总样本的比例,精度则是分类正确的样本占样本总数的比例
    错误率表示为:error(f;D)=\frac{1}{N}\sum_{i=0}^{N}I(f(x_i)\neq y_i)精度表示为:acc(f;D)=\frac{1}{N}\sum_{i=0}^{N}I(f(x_i)=y_i)其中I为指示函数,满足要求则为1,不满足为0,且error=1-acc
    更一般的,对于数据分布D和概率密度p(.)
    错误率表示为:error(f;D)=\int_{x \in D}I(f(x)\neq y)p(x)dx精度表示为:acc(f;D)=\int_{x \in D}I(f(x)=y)p(x)dx
    实现代码:

  • 2. 召回率Recall、准确率Precision、F值
    单纯靠错误率和精度衡量模型的是远远不够的,在分类中常用Recall、Precision以及F值去度量模型,如下图二分类混淆矩阵,将召回率和准确率以及F值定义如下:

    图1. 二分类混淆矩阵

    Precision表示为:P=\frac{TP}{TP+FP}
    Recall表示为:R=\frac{TP}{TP+FN}
    F值是召回率和准确率的调和平均值,表示为:\frac{2}{F}=\frac{1}{P}+\frac{1}{R}即F值表示为:F=\frac{2TP}{2TP+FP+FN}=\frac{2*P*R}{P+R}
    下图是样本总体上的查全率、查准率,当前一个学习器的P-R曲线被另外的学习器完全包住时,则说明后一个学习器性能更优,如果发生交叉,则不能断言。
    PR曲线

    平衡点(BEP)即查全率=查准率时。平衡点相对更为简单,所以使用F1值或者加权调和平均。
    加权调和平均定义为:F_\alpha=\frac{(1+\alpha^2)*P*R}{(\alpha^2*P)+R}
    \alpha=1标准F1,\alpha>1查全率有更大影响,\alpha<1查准率有更大影响
    补充:
    在n个二分类混淆矩阵上综合考察查全率查准率有两种方式:
    1。宏查准率、宏查全率、宏F1
    先在各混淆矩阵上分别计算出查准率和查全率记为(P_1,R_1),(P_2,R_2),...,(P_n,R_n)
    macro_P=\frac{1}{n}\sum\limits_{i=1}^{n}P_i
    macro_R=\frac{1}{n}\sum\limits_{i=1}^{n}R_i
    macro_F1==\frac{2*macro_P*macro_R}{macro_P+macro_R}
    2。微查准率、微查全率、微F1
    将各个混淆矩阵的对应元素进行平均,得到TP/FP/TN/FN的平均值\hat{TP}/\hat{FP}/\hat{TN}/\hat{FN},再计算微查全率、微查准率和微F1。

  • 3. ROU与AUC
    ROU(Receiver Operating Characteristic,受试者工作特征)
    很多学习器是为了测试样本产生一个实值或概率预测,然后将这个预测值与分类器阈值比较,大于阈值则分为正类,否则为反类。在不同的分类任务中,根据需求采取不同的阈值,对所有测试样本进行排序,采用不同的截断点(就是阈值),例如更重视查准率,排序位置靠前截断,更重视查准率,排序位置靠后截断。
    ROC曲线的纵轴是“真正例率”(TPR)也称为灵敏度,横轴是“假正例率”(FPR)也称为1-特异度
    TPR=\frac{TP}{TP+FN}
    FPR=\frac{FP}{TN+FP}

    ROC曲线与AUC示意图

    与PR曲线相似,如果ROC曲线完全被另外学习器的曲线包住,则另外学习器的性能更优,如果交叉则不能判定。如果需要继续进行比较,可以使用曲线下的面积,即AUC(Area Under ROC Curve)
    ROC曲线的优点是能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能
    PR曲线与ROC的使用场合:
    如果没有数据不均衡,倾向于用ROC;
    如正样本远小于负样本,PR更敏感,因为用到了precision=(TP/(TP+FP)),所以应该用PRC.
    正样本远大于负样本,PRC和ROC差别不大,都不敏感

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。