zoukankan      html  css  js  c++  java
  • 机器学习算法评价指标

    一、常用分类算法的优缺点

    二、正确率能很好的评估分类算法吗

    不同算法有不同特点,在不同数据集上有不同的表现效果,根据特定的任务选择不同的算法。如何评价分类算法的好坏,要做具体任务具体分析。对于决策树,主要用正确率去评估,但是其他算法,只用正确率能很好的评估吗? 答案是否定的。 正确率确实是一个很直观很好的评价指标,但是有时候正确率高并不能完全代表一个算法就好。比如对某个地区进行地震预测,地震分类属性分为0:不发生地震、1:发生地震。我们都知道,不发生的概率是极大的,对于分类器而言,如果分类器不加思考,对每一个测试样例的类别都划分为0,达到99%的正确率,但是,问题来了,如果真的发生地震时,这个分类器毫无察觉,那带来的后果将是巨大的。很显然,99%正确率的分类器并不是我们想要的。出现这种现象的原因主要是数据分布不均衡,类别为1的数据太少,错分了类别1但达到了很高的正确率却忽视了研究者本身最为关注的情况。

    三、几个常用术语

    这里首先介绍几个常见的 模型评价术语,现在假设我们的分类目标只有两类,即为正例(positive)和负例(negative)分别是:

    1) True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);

    2) False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

    3) False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

    4) True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

    上图是这四个术语的混淆矩阵。

    1)P=TP+FN表示实际为正例的样本个数。

    2)True、False描述的是分类器是否判断正确。

    3)Positive、Negative是分类器的分类结果,如果正例计为1、负例计为-1,即positive=1、negative=-1。用1表示True,-1表示False,那么实际的类标=TF*PN,TF为true或false,PN为positive或negative。 4)例如True positives(TP)的实际类标=1*1=1为正例,False positives(FP)的实际类标=(-1)*1=-1为负例,False negatives(FN)的实际类标=(-1)*(-1)=1为正例,True negatives(TN)的实际类标=1*(-1)=-1为负例。

    四、评价指标

    1) 正确率(accuracy) 正确率是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。

    2) 错误率(error rate) 错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

    3) 灵敏度(sensitive) sensitive = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

    4) 特效度(specificity) specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

    5) 精度(precision) 精度是精确性的度量,表示被分为正例的示例中实际为正例的比例,precision=TP/(TP+FP)。

    6) 召回率(recall) 召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。

    7) 其他评价指标 计算速度:分类器训练和预测需要的时间; 鲁棒性:处理缺失值和异常值的能力; 可扩展性:处理大数据集的能力; 可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

    8) 查准率和查全率反映了分类器分类性能的两个方面。如果综合考虑查准率与查全率,可以得到新的评价指标F1测试值,也称为综合分类率:

    为了综合多个类别的分类情况,评测系统整体性能,经常采用的还有微平均F1(micro-averaging)和宏平均F1(macro-averaging )两种指标。宏平均F1与微平均F1是以两种不同的平均方式求的全局的F1指标。其中宏平均F1的计算方法先对每个类别单独计算F1值,再取这些F1值的算术平均值作为全局指标。而微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值,再由这些值求出F1值。由两种平均F1的计算方式不难看出,宏平均F1平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。

    五、什么样的分类器是最好的

    对某一个任务,某个具体的分类器不可能同时满足或提高所有上面介绍的指标。 如果一个分类器能正确分对所有的实例,那么各项指标都已经达到最优,但这样的分类器往往不存在。比如之前说的地震预测,既然不能百分百预测地震的发生,但实际情况中能容忍一定程度的误报。假设在1000次预测中,共有5次预测发生了地震,真实情况中有一次发生了地震,其他4次则为误报。正确率由原来的999/1000=99.9下降为996/10000=99.6。召回率由0/1=0%上升为1/1=100%。对此解释为,虽然预测失误了4次,但真的地震发生前,分类器能预测对,没有错过,这样的分类器实际意义更为重大,正是我们想要的。在这种情况下,在一定正确率前提下,要求分类器的召回率尽量高。

  • 相关阅读:
    堆排序的应用优先级队列
    php基础语法知识笔记(二)
    XP系统下用虚拟机安装centos 5.6(Linux系统)图文教程(一)—“快速安装”
    linux系统启动服务解释与优化(centos 5版本)
    XP系统下用虚拟机安装centos 5.6(Linux系统)图文教程(二)—“linux优化配置”
    php基础语法知识笔记(一)
    asp.net SQLite数据库操作类,
    SilverLight 相关资源网址 (更新中。。。)
    SPQuery查询语法简要说明
    asp.net SQLite数据库操作Demo
  • 原文地址:https://www.cnblogs.com/ariel-dreamland/p/10563541.html
Copyright © 2011-2022 走看看