zoukankan      html  css  js  c++  java
  • 27-如何度量分类算法的性能好坏(Scoring metrics for classification)

    最近两天拥抱了北京这个城市,感觉大气粗犷,整个人都更有精神了。紫禁城好大,颐和园更大,不自量力的我买了联票,结果根本没法逛完。北京人民也热情,坐在船上,开船大爷不停招呼:这边可以拍十七孔桥了,视野好面积大;那边可以拍玉带桥了;坐着我帮你拍几张;你手托着塔,自然点没事。然后走在路上,问一个姑娘东宫门在哪呢,一个走路风风火火的大妈不打自招:就在前面右拐……北京人民的热情,足以抵御漫长的寒冬。

    回来也要好好学习了,今天学习度量分类算法的性能好坏的几个重要指标:)

    首先申明下缩写:P: Positive; N: Negative; TP: True Positive; FP: False Positive; TPR: True Positive Rate; TN, FN, FPR:你懂的。

    1. 准确率(accuracy)

    对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。

    A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN);    反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负。

    2. 混淆矩阵(confusion matrix)

     

    3. 精确率(Precision), 召回率(Recall)和F1-Measure

    精确率(Precision):

    PRE = TP/(TP+FP) ;  反映了被分类器判定的正例中真正的正例样本的比重。

    召回率(Recall),也称为 True Positive Rate:

    REC = TP/(TP+FN) ;  反映了被正确判定的正例占总的正例的比重。

    F1-Measure,可以理解为精确率和召回率的几何平均:

    F1 = 2 *  PRE *  REC/ (PRE+REC);

    另外一个有用的函数是classification_report,它对所有分类类别(y的所有取值)都提供了精确率, 召回率, fscore计算 。

    以上几个metrics特别适用于实践中经常遇到的两种情况:

    1.不平衡的类别:即某一类别比其他类别出现频率高得多;

    2.不对等的代价:即某一分类错误比其他分类错误需要付出更高的代价(如把癌症患者判断为非癌症,后果不堪设想)。

    4. ROC & AUC

    首先理解两个公式:

    TPR = TP / (TP + FN)  ——  可以理解为对正例的敏感度

    FPR = FP / (FP + TN)  ——  可以理解为对正例的瞎敏感度

    WIKI定义:

    The ROC curve is created by plotting the true positive rate (TPR) against the false positive rate (FPR) at various threshold settings.

    ROC曲线画的是当threshold变化时,FPR(x)和TPR(y)的对应关系。当测试样本是正样本的概率值大于某个阈值时(常用0.5),即认为它是正样本,这里的阈值就是threshold。

    举个例子:如果threshold很低(如0.1),那么很容易测试样本是正样本的概率值>0.1,因此FPR会很高(对正例太敏感),同时TPR也很高,假设 threshold=0.1时,FPR=TPR=1,可以在坐标系中画第一个点(1,1);同理,随着threshold的增大,FPR和TPR都会逐渐降低,最后甚至为0。画出的曲线形状通常如下:

    如果分类器效果很好, 那么曲线应该靠近左上角(TPR大,FPR小)。

    AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方(对应随机猜测),所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

    下周学习决策树,干货多多,敬请期待:)

  • 相关阅读:
    整理:深度学习 vs 机器学习 vs 模式识别
    机器学习部分国内牛人
    图像去模糊
    删除流氓软件McAfee
    ceshi
    linux系统加快大文件的写入速度
    修改cmd的字体为Consolas字体
    gdb的可视化工具安装
    微服务编译、启动jar命令指定配置文件
    pycharm中安装可以贴图片的Markdown插件
  • 原文地址:https://www.cnblogs.com/turingbrain/p/7787992.html
Copyright © 2011-2022 走看看