• 第二章 模型评估与选择(下)


    2.3.3 ROC与AUC

    很多模型是为测试样本产生一个实例或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则则分为正类,否则为反类。
    根据这个实值或概率预测结果,我们可将测试样本进行排序,最可能是正例的排在最前面,最不可能是正例的排在最后面。
    如此,分类过程就相当于在这个排序中以某个截断点将样本分为两部分,前一部分判作正例,后一部分则判作反例
    ROC全称是受试者工作特征(Receiver Operating Characteristic)曲线,其纵轴是真正例率(True Positive Rate,简称TPR),横轴是假正例率(False Positove Rate,简称FPR)。其定义为:
    在这里插入图片描述
    ROC图示意图如图所示(理想模型):
    请添加图片描述
    现实情况往往不是光滑的ROC曲线,只能利用有限个测试样例来绘制ROC图,此时仅能获得有限个个坐标对,如图所示:
    在这里插入图片描述
    在进行模型比较时,与P-R图相似,若一个模型的ROC曲线被另一个模型的曲线完全包住,则可断言后者性能优于前者。
    若两者曲线发生交叉,较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve).

    2.3.4 代价敏感错误率与代价曲线

    为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。
    以二分类任务为例,我们可以设定一个“代价矩阵”,cost(i,j)表示将第i类样本预测为第j类样本的代价。
    在这里插入图片描述

    2.4 比较检验

    关于机器学习中性能比较,这里面涉及到几个重要因素:
    首先:我们希望比较的是泛化性能,然而通过实验评估方法我们获得的是测试集上的性能,两者未必相同。
    其次:测试集上的性能与测试集本身的选择有很大关系,且不论使用不同大小的测试集会得到不同的结果,即便用相同大小的测试集,若包含的测试样例不同,测试结果也会有不同。
    最后:很多机器学习算法本身有一定的随机性,即便用相同的参数设置在同一个测试集上多次运行,其结果也会有不同

    2.4.1假设检验

    假设检验中的假设是对模型泛化错误率分布的某种判断或猜想。现实情况下我们并不知道模型的泛化错误率,只能获知其测试错误率,泛化错误率与测试错误率未必相同。但直观上二者相差的可能性很小。
    在很多时候我们并非只做一次留出法估计,而是通过多次重复留出法或是交叉验证法等进行多次训练/测试,这时会得到多个测试错误率,此时可使用t检验
    这两种方法都是关于单个模型泛化性能的假设进行检验。下面介绍对不同模型的比较

    2.4.2交叉验证t检验

    在这里插入图片描述
    欲进行有效的假设检验,一个重要的前提是测试错误率均为泛化错误率的独立采样,然而,通常情况下由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度的重叠,这就使得测试错误率实际上并不独立,会导致过高假设成立的概率,为缓解这一问题,可采用5X2交叉验证。

    2.4.3 McNemar检验

    对二分类问题,使用留出法不仅可估计模型A和B的测试错误率,还可以获得两个模型分类结果的差别,即两者都正确,都错误,一个正确另一个错误的样本数。如列联表所示
    请添加图片描述
    在这里插入图片描述

    2.4.4 Friedman检验与Nemenyi后续检验

    交叉验证t检验和McNemar检验都是在一个数据集上比较两个算法的性能,而在很多时候,我们会在一组数据集上对多个算法进行比较。当有多个算法参与比较时,一种做法是在每个数据集上分别列出两两比较的结果,另一种做法更为直接,即使用基于算法排序的Friedman检验。
    可以先列出算法比较序值表,将每个算法在一种数据集上的表现进行排序并赋予序值,如图所示。
    在这里插入图片描述
    然后,使用Friedman检验来判断这些算法是否性能都相同,若相同,则他们的平均序值应相同。
    若所有算法的性能相同这个假设被拒绝,则说明算法的性能显著不同,这时需进行后续检验来进一步区分各个算法,常用的有Nemenyi后续检验

    2.5 偏差与方差

    偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
    方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
    噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
    偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的

    在这里插入图片描述

  • 相关阅读:
    libVLC 制作一款精美的播放器
    RocketMQ第一话 -- Docker安装以及Springboot集成RocketMQ
    【广州华锐互动】VR高层小区安全疏散演练系统
    python中的正则表达式
    青岛大学数据结构与算法——第5章
    Vue + moment 实现自定义日历
    neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF-f
    中职组网络安全C模块全漏洞脚本讲解包含4个漏洞的脚本
    RK3568 android 11 增加自定义API
    SpringBoot快速打包
  • 原文地址:https://blog.csdn.net/weixin_44014982/article/details/127928215