机器学习之性能度量

  性能度量是衡量模型泛化能力的评判标准,性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果,因此什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求。

1、错误率和精度

  其实说白了就是我们的损失函数所体现的指标,比如常见的在分类问题中分类错误类别所占的比例或者是回归问题中的均方误差等,分别如下面的公式所示

  

  

2、查准率、查全率与F1

  查准率:查准率表示预测的正例中有多少是真正的正率(也就是你预测正例的准确性)

  查全率:查全率表示真是的正例中有多少被准确的预测为正率(也就是你把多少的正例给预测出来了)

  首先我们引入混淆矩阵,混淆矩阵表示如下

  

  简单说下变量的概念,例如TP就是预测为为正例的结果中真正的正例的比例(也就是说你预测为正例的结果中实际上是有正例和反例的),FP就是你预测为正例的结果集中实际上是反例所占的比例。对于FN和TN的概念也是一样的。现在可以将我们的查全率和查准率表示出来

  

  P为查准率,R为查全率。那介绍查全率和查准率到底有什么用呢,事实上这两个概念都有对应的特征定场景,比如查准率,对于一些步允许犯错误的场景,我们就希望查准率要高,也就是要收紧我们的阀值,对一些不能极大概率确定为正例的我们统统步预测或者作为反例。比如在对病人的病情预测时,我们就一定要保持足够高的准确性,对于那些没有足够把握的预测还是让专家进行进一步的分析。而对于查全率就是可以理解为一个正例都不能放过,也就是放宽预测的阀值,争取将所有的正例都预测出来(即使在这个过程中还会将很多反例预测为正例,那也无所谓)。

  从查全率和查准率的概念来看,这两者是相互矛盾的度量。一般来说查准率高时,查全率往往偏低;查全率高时,查准率就偏低。P-R曲线正式描述查全率和查准率的变化曲线(很多时候我们希望两者都够好,但特定的业务场景可能会偏向某一个值),P-R曲线如下

  

  在上图中展示了三个模型(模型A,B,C)的P-R曲线图,那如何根据P-R曲线来评价模型的好坏呢。第一,若模型的曲线包围了另一个模型的曲线(如A和B都包围了C),则认为模型A,B的性能要优于C;第二,对比B和A,当模型的曲线交叉后,就比较这两条曲线下面的面积,面积大的模型性能更好。然而对于这样的面积比较是比较难做到的,因为这些曲线都是不规则的,在算面积的时候往往比较复杂,因此引入另一个度量标准F1,其表达式如下

  

  F1是将查全率和查准率放在同样重要的位置上的一个度量值,F1值越大也代表了模型的性能越好

 

3、ROC与AUC

  学习器对测试样本的评估结果一般为一个实值或概率,设定一个阈值,大于阈值为正例,小于阈值为负例,因此这个实值的好坏直接决定了学习器的泛化性能,若将这些实值排序,则排序的好坏决定了学习器的性能高低。ROC曲线正是从这个角度出发来研究学习器的泛化性能,ROC(Receiver Operating Characteristic)曲线与P-R曲线十分类似,都是按照排序的顺序逐一按照正例预测,不同的是ROC曲线以“真正例率”(True Positive Rate,简称TPR)为横轴,纵轴为“假正例率”(False Positive Rate,简称FPR),ROC偏重研究基于测试样本评估值的排序好坏。

  

  

  通过ROC来比较模型的性能的方法和P-R曲线是一样的。ROC曲线是对预测样本排好序之后,通过选取不同的阀值来计算出不同的TPR值和FPR值绘制的。AUC就是ROC曲线的面积。而最理想的分类器就是FP和TN为0,即全部分类正确,此时有TPR=1,FPR=0。

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orphans: 0; widows: 0 }
a:link { color: #0000ff }

原文地址:https://www.cnblogs.com/jiangxinyang/p/9314578.html

时间: 2024-08-12 21:34:40

机器学习之性能度量的相关文章

机器学习:模型性能度量(performance measure)(待补充)

对学习器的泛化性能进行评估,不仅需要有效的实验估计方法,还需要有衡量模型泛化性能的评准指标,这就是性能度量.性能度量反应任务需求,对比不同模型能力时,使用不同性能度量能导致不同的评判结果.因此,模型的好坏是相对的,模型不仅取决于算法和数据,还绝对于任务需求. 1. 回归任务中常用的性能度量是"均方误差"(mean squared error) 2. 聚类任务中性能度量分为两类:一类是将聚类结果与某个"参考模型"(reference model)进行比较,成为&quo

机器学习评估方法及性能度量

机器学习评估方法及性能度量 1.方法 2.度量 机器学习评估方法及性能度量 1.方法 已知数据集\(D\)有限, 需分出一部分用作训练, 剩下的一部分用作测试. 按比例留出. 训练集和测试集保持\(D\)中类别的比例. 以二分类任务为例, 常见做法是将大约\(2/3\)~\(4/ 5\)的样本用作训练, 剩余样本用于测试. 一般采用若干次随机划分, 重复进行实验评估后取平均值作为留出法的评估结果. 交叉检验法. 划分\(D = D_1\cup \cdots \cup D_k\),\(D_i\ca

吴裕雄 python 机器学习——模型选择回归问题性能度量

from sklearn.metrics import mean_absolute_error,mean_squared_error #模型选择回归问题性能度量mean_absolute_error模型 def test_mean_absolute_error(): y_true=[1,1,1,1,1,2,2,2,0,0] y_pred=[0,0,0,1,1,1,0,0,0,0] print("Mean Absolute Error:",mean_absolute_error(y_tr

吴裕雄 python 机器学习——模型选择分类问题性能度量

import numpy as np import matplotlib.pyplot as plt from sklearn.svm import SVC from sklearn.datasets import load_iris from sklearn.preprocessing import label_binarize from sklearn.multiclass import OneVsRestClassifier from sklearn.model_selection imp

机器学习周志华——学习器性能度量

衡量模型泛化能力的评价标准,就是性能度量(performance measure). (1)错误率与精度 (2)查准率.查全率与F1 基于样例真实类别,可将学习器预测类别的组合划分为真正例(true positive).假正例(false positive).真反例(true negative).假反例(false negative),TP.FP.TN.FN分别表示其对应的样例数,则有TP+FP+TN+FN=样例总数. 查准率P与查全率R分别定义为: P= TP/(TP+FP)=>正例结果中真正

任务、性能度量和经验

机器学习算法被认为是一种从数据中学习的算法.所谓"学习"有一个定义:''对于某类任务 T 和性能度量 P,一个计算机程序被认为可以从经验 E 中学习是指,通过经验 E 改进后,它在任务 T 上由性能度量 P 衡量的性能有所提升." 下面将对任务.性能度量和经验进行介绍. 1.任务E 从"任务"的相对定义来讲,学习过程不能算成任务,学习能获取一种能力,这种能力可以让我们完成任务.比如我们要让机器人行走,那么行走就是任务. 从机器学习的角度来讲,任务定义为机器

机器学习模型性能评估方法笔记

模型性能评估综述 对于模型性能的评估,我们通常分为一下三步: 1. 对数据集进行划分,分为训练集和测试集两部分: 2. 对模型在测试集上面的泛化性能进行度量: 3. 基于测试集上面的泛化性能,依据假设检验来推广到全部数据集上面的泛化性能 数据集的划分 对于模型来说,其在训练集上面的误差我们称之为"训练误差"或者"经验误差",而在测试集上的误差称之为"测试误差".因为测试集是用来测试学习期对于新样本的学习能力的,因此我们可以把测试误差作为泛化误差的

模型性能度量

对学习器的泛化性能的评估,不仅需要有效可行的试验评估方法,还需要有模型泛化能力的评价标准,这就是性能度量(performance measure),性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果,这意味着模型的"好坏"是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求. 在预测任务中,给定样例集D={(x1,y1),(x2,y2),......,(xm,ym)},其中yi是示例xi的真是标记,要评估学习器f的性能,就要把学习

性能度量RMSE

回归问题的典型性能度量是均方根误差(RMSE:Root Mean Square Error).如下公式. m为是你计算RMSE的数据集中instance的数量. x(i)是第i个实例的特征值向量 ,y(i)是其label(期望的模型输出).如下: X是包含了所有实例的特征值(不包含label)的矩阵.每行代表一个实例,并且每行等于x(i)向量的转置:(x(i))T . 下图矩阵中的第一行为2中向量的转置(列向量变为行向量). h是预测函数,当输入是某实例的特征向量x(i) ,应用函数之后,结果为