模型评估与选择

目录

文章目录

  • 模型评估与选择
    • 目录
    • 第二章 模型评估与选择
      • 评估方法
      • 性能度量
      • 比较检验

第二章 模型评估与选择

评估方法

对数据集D产生训练集S和测试集T的方法:

  • 留出法
    直接划分两个互斥的集合;划分要尽可能保持数据分布的一致性。
    从采样的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分层采样”。
    单次使用留出法得到的估计结果往往不够稳定可靠。一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。
    常规做法是2/3~4/5的样本用于训练,剩余样本用于测试。

  • 交叉验证法
    数据集划分为k个大小相似的互斥自己,每个子集从D中通过分层采样得到。 每次用k-1个子集的并集作为训练集,进行k次训练和测试,返回k次测试结果的均值。通常交叉验证又称为“k折交叉验证”k最常用的取值是10.
    在划分为k个不同的子集时,要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值。
    交叉验证的特例:留一法:D中包含m个样本,令k=m,每个子集只有一个样本,留一法中呗实际评估的模型与期望评估的用D训练处的模型很相似,所以结果更准确。
    留一法的缺陷:当数据集比较大时,训练模型的计算开销非常大。

  • 自助法
    前面两种方法(留出法、交叉验证法)实际评估模型使用的训练集比D小,留一法又计算复杂度太高,所以期待一个可以减少训练样本规模不同造成的影响,又高效的方法。
    自助法(bootstrapping):
    对于含有m个样本的数据集D,每次有放回的取一个数据放在D’中,进行m次,这样得到训练集D’,D中会有36.8%的样本未出现在采样数据集D’中,用D\D’(未出现在D’中的数据)作为测试集。
    这样,实际评估的和期望评估的都有m个样本,有约1/3的没在训练集中出现的样本用于测试。 这样的测试结果,亦称“包外估计”。
    自助法的特点:

    1. 在数据集较小、难以有效划分训练/测试集时很有用,
    2. 能从初始数据中产生多个不同的训练集,对集成学习有很大好处;
    3. 产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用。
  • 调参与最终模型
    调参经常的做法是选定参数范围和步长。
    调参往往很困难。
    参数配置不同,学的的模型性能往往有明显差别。
    模型评估与选择中用于评估测试的数据集成为“验证集”。
    基于验证集上的性能来进行模型选择与调参。

性能度量

衡量模型泛化能力的评价标准就是性能度量。
什么样的模型是好的,不仅仅取决于算法和数据,还取决于任务需求。
回归任务最常用的性能度量是均方误差

  • 错误率和精度
    错误率是值错误的样本数占样本总数的比例,精度是指正确的样本数占比。错误率=1-精度。
  • 查准率(precision)、查全率(recall)
    查准率:预测正为准的比上预测为正的;(挑出的瓜有多少是好瓜)
    查全率:预测为正的准的比上实际为正的;(所有号瓜中有多少比例被挑出来了)
    查准率和查全率是一对矛盾的度量。
    根据预测结果排序,按顺序把样本作为正例进行预测,以查准率为纵轴、查全率为横轴做图,就得到了查准率-查全率曲线,建成P-R曲线。
    若一个学习期的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。
  • 平衡点(BEP) 就是一个综合考虑查准率、查全率的性能度量。它是“查准率=查全率”时的取值。平衡点越大,性能越优。
  • F1度量 平衡点还是简化了点。在一些应用中,对查准率和查全率的重视程度不同。
    F1度量的一般形式:

markdown模式下输入公式太麻烦了,这里先不输入。后面可以学一学LaTeX语法之后再输入。

  • ROC与AUC
    首先明白,AUC就是ROC曲线下面的面积,可用来比较学习器的性能。
    ROC曲线与P-R曲线不同的是,ROC曲线的纵轴是“真正确率”(TPR),横轴是“假正确率”(FPR)

  • 代价敏感错误率与代价曲线
    不同类型的错误所造成的后果不同。为错误赋予“非均等代价(unequal cost)”
    在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线(cost curve)”可以达到该目的。
    代价曲线图的横轴是取值为[0,1]的正例概率代价,纵轴是取值为[0,1]的归一化代价。

比较检验

机器学习中性能比较这件事比我们想象的要复杂得多。涉及几个重要因素:

  1. 我们希望比较的是泛化性能,然而通过实验评估方法我们获得的是在测试集上的性能,两者未必一致;
  2. 测试集性能与测试集选择关系很大;
  3. 很多机器学习算法本身具有一定的随机性,相同参数运行多次,结果也会有不同。

统计假设检验(hypothesis test)在学习器性能比较上提供了重要依据。基于假设检验结果,可推断出,在测试集上效果好,泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。
接下来,默认以错误率为性能度量。

  • 假设检验

  • 交叉验证t检验

  • McNemar检验

  • Friedman检验与Nemenyi后续检验

[机器学习]1模型评估与选择相关推荐

  1. 【机器学习】模型评估与选择(实战)

    模型评估与选择(实战) 目录 一.准备工作(设置 jupyter notebook 中的字体大小样式等) 二.数据集读取与查看 三.交叉验证实验 1.划分数据集并置乱 2.设计交叉验证实验 3.进行训 ...

  2. 机器学习提纲 模型评估和选择

    [只是提纲,不完整,有空更新] 1.错误率.精度. 2.误差:学习器的实际预测输出和真实输出的差异.学习器在训练集上的误差称为训练误差或者经验误差.在新样本上的误差称为泛化误差.由于新样本是未知的,我 ...

  3. 【机器学习】模型评估与选择--西瓜书第二章

    2.1 经验误差与过拟合 2.2 评估方法 2.3 性能度量 2.5 偏差与方差 2.1 经验误差与过拟合 错误率(error rate):分类错误的样本占总样本的比率 精度(accuracy):分类 ...

  4. Python机器学习之模型评估及选择

    1. 评估方法 1.回归:RMSE(平方根误差).MAE(平均绝对误差).MSE(平均平方误差).Coefficient of determination (决定系数R2). MAPE(平均绝对百分误 ...

  5. 机器学习笔记(二)模型评估与选择

    2.模型评估与选择 2.1经验误差和过拟合 不同学习算法及其不同参数产生的不同模型,涉及到模型选择的问题,关系到两个指标性,就是经验误差和过拟合. 1)经验误差 错误率(errorrate):分类错误 ...

  6. 《机器学习》 —— 第二章:模型评估与选择 学习笔记

    2.1 经验误差与过拟合 把分类错误的样本数占样本总数的比例称为"错误率"(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m:相应的,1-a/m称为 ...

  7. 机器学习中的不平衡分类方法(part2)--模型评估与选择

    学习笔记,仅供参考,有错必纠 参考自:<机器学习中的不平衡分类方法>-- 康琦,吴启迪 文章目录 模型评估与选择 训练误差与测试误差 过拟合与欠拟合 模型选择 评估方法 模型评估与选择 训 ...

  8. 机器学习(周志华)- 第2章模型评估与选择笔记

    转自: https://samanthachen.github.io/2016/08/03/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0_%E5%91%A8%E5%BF%9 ...

  9. 周志华 《机器学习初步》模型评估与选择

    周志华 <机器学习初步>模型评估与选择 Datawhale2022年12月组队学习 ✌ 文章目录 周志华 <机器学习初步>模型评估与选择 一.泛化能力 二.过拟合和欠拟合 泛化 ...

最新文章

  1. Google图嵌入工业界最新大招,高效解决训练大规模深度图卷积神经网络问题
  2. 哪里可以找到python的免费教程-哪里可以找到比较靠谱的Python教程?
  3. python用sqlite数据库,python 中使用sqlite数据库
  4. C++PrimerPlus学习——第十三章编程练习
  5. 控件的布局 1124
  6. Android ContextCompat 使用详解
  7. 数据库中Select For update语句的解析
  8. SpringBoot实战(十二):集成 Spring Boot Admin 监控
  9. 经典排序算法(八)--选择排序Selection Sort
  10. Android TP驱动分析
  11. u盘无法格式化不在计算机中,u盘被写保护无法格式化怎么办 u盘无法格式化原因及解决...
  12. Excel对图片的组合以及选择
  13. 软件工程与计算II-24-考试总结
  14. 中英文代码对比之ZLOGO 4 LOGO
  15. clustalw2 使用简介
  16. Pytorch:CycleGAN代码中nn.Sequential(*module)处错误:list is not a Module subclass
  17. 微信小程序生成(painter)海报
  18. hadoop集群搭建及易踩坑收录
  19. pixi.js 制作 流星雨效果
  20. 张亚飞《.Net for Flash FMS》读后笔记一

热门文章

  1. 计算机用户名的数值数据是什么,计算机数据最基本的单位是什么?
  2. 每个人都能制作的简易版狂拍灰太狼小游戏(HTML+CSS+JavaScript)
  3. Ubuntu挂载iso文件和配置apt本地源
  4. 黑客攻击欧洲港口石油设施致油价飙升、上海首份《企业数据合规指引》出台、微软计划收购网络安全公司|网络安全周报
  5. css 从右到左的方向调整
  6. C语言中将字符数字转换为数值的小技巧和方法
  7. 【转载】设计之路:如何进行软件需求分析?
  8. 【Scratch画图100例】图39-scratch实心圆 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例
  9. 2021-09-28 网安实验-取证分析-Pcap流量包取证
  10. Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)