Class | Content |
---|---|
layout | post |
title | 机器学习中的性能度量指标汇总 |
categories | Blog |
description | 对机器学习中常用的度量模型的指标进行汇总,并对其附上代码便于以后使用 |
keywords | 错误率和精度、查准率、查全率、F值、ROC和AUC |
前言
在机器学习中要考察选择模型的优劣,需要对模型的泛化能力进行评估,这就是性能度量。本篇文章主要介绍分类、回归以及聚类中的性能度量以及编写代码以便于以后使用。
分类任务常用的性能度量
1. 错误率和精度
顾名思义,错误率是指分类错误的样本占总样本的比例,精度则是分类正确的样本占样本总数的比例
错误率表示为:精度表示为:其中为指示函数,满足要求则为1,不满足为0,且
更一般的,对于数据分布和概率密度
错误率表示为:精度表示为:
实现代码:-
2. 召回率Recall、准确率Precision、F值
单纯靠错误率和精度衡量模型的是远远不够的,在分类中常用Recall、Precision以及F值去度量模型,如下图二分类混淆矩阵,将召回率和准确率以及F值定义如下:
Precision表示为:
Recall表示为:
F值是召回率和准确率的调和平均值,表示为:即F值表示为:
下图是样本总体上的查全率、查准率,当前一个学习器的P-R曲线被另外的学习器完全包住时,则说明后一个学习器性能更优,如果发生交叉,则不能断言。
平衡点(BEP)即查全率=查准率时。平衡点相对更为简单,所以使用F1值或者加权调和平均。
加权调和平均定义为:
标准F1,查全率有更大影响,查准率有更大影响
补充:
在n个二分类混淆矩阵上综合考察查全率查准率有两种方式:
1。宏查准率、宏查全率、宏F1
先在各混淆矩阵上分别计算出查准率和查全率记为
2。微查准率、微查全率、微F1
将各个混淆矩阵的对应元素进行平均,得到的平均值,再计算微查全率、微查准率和微F1。 -
3. ROU与AUC
ROU(Receiver Operating Characteristic,受试者工作特征)
很多学习器是为了测试样本产生一个实值或概率预测,然后将这个预测值与分类器阈值比较,大于阈值则分为正类,否则为反类。在不同的分类任务中,根据需求采取不同的阈值,对所有测试样本进行排序,采用不同的截断点(就是阈值),例如更重视查准率,排序位置靠前截断,更重视查准率,排序位置靠后截断。
ROC曲线的纵轴是“真正例率”(TPR)也称为灵敏度,横轴是“假正例率”(FPR)也称为1-特异度
与PR曲线相似,如果ROC曲线完全被另外学习器的曲线包住,则另外学习器的性能更优,如果交叉则不能判定。如果需要继续进行比较,可以使用曲线下的面积,即AUC(Area Under ROC Curve)
ROC曲线的优点是能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能
PR曲线与ROC的使用场合:
如果没有数据不均衡,倾向于用ROC;
如正样本远小于负样本,PR更敏感,因为用到了precision=(TP/(TP+FP)),所以应该用PRC.
正样本远大于负样本,PRC和ROC差别不大,都不敏感