机器学习的目的是使学到的模型不仅能对已知数据而且还要对位置数据都有很好的预测能力,这种模型适用于新样本的能力,称为 泛化能力(generalization)

而模型评估与模型选择就是为了让模型具有更强的泛化能力。

1. 经验误差与过拟合

先来介绍一些基本概念。一般我们会把分类错误的的样本数占样本总数的比例称为错误率(error rate)。若m个样本中有a个样本分类错误,则错误率E = a/m;对应的 1 - a/m 称为精度(accuracy)

通常,把学习器的实际预测输出与样本的真实输出之间的差异称为误差(error)。

学习器在训练集上的误差叫训练误差(training error)或经验误差(empirical error).

学习器在新样本上的误差叫泛化误差(generalization).

显然我们更希望得到泛化误差小的学习器,为了达到这个目标会从训练样本中尽可能的学出样本的规律。然而当机器学习把训练样本自身的部分特点当成了所有样本的一般特性,这样反而会让模型的泛化能力下降,这种现象在机器学习中被叫做 过拟合(overfitting)。

与过拟合相对应的是欠拟合(underfitting)这是说对训练样本的一般性质尚未学好。

有多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大, 以至于把训练样本所包含的不太一般的特性都学到了,而欠拟合则通常是由于学习能力低下而造成的。 欠拟合比较容易克服。

过拟合是机器学习面临的关键障碍,各类学习算法都必然带有一 些针对过拟合的措施;然而必须认识到,过拟合是无法彻底避免的,所能做的只是 “缓解“,或者说减小其风险。

2. 评估方法

我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择,为此要使用一个测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差(testing error)作为泛化误差的近似。

如果我们只有一个包含m个样例的训练集D,我们即要训练又要测试,我们可以通过对D进行适当的处理,从中产生出训练集S和测试集T。

下面列举出了常见的做法:

2.1留出法(hold-out)

直接将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集S, 另一个作为测试集T,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

在划分数据集时,通常采用分层采样(stratified sampling)。

若数据集D中存在500个正例和500个反例,则含有70%样本的训练集S应包含350个正例和350个反例,同理,还有30%样本的测试集T应包含150个正例和150个反例。

单次使用留出法得到的估计结果往往不够稳定可靠。因此,使用留出法时,我们要采用若干次随机划分、重复进行实验评估后取均值作为留出法的评估结果。

常见的做法为将 2/3 ~ 4/5 的样本用于训练,剩余样本用于测试。

2.2交叉验证法(cross validation)

将数据集D直接划分为k个大小和相似的互斥子集,每一次,用(k-1)个集合的并集作为数据集S,余下那个作为测试集T。这样,我们可以进行k次训练测试,最终返回的是,这k个测试结果的均值。

“交叉验证法”通常也被称作“k折交叉验证”。

k 最常用的取值是 10, 此时称为 10 折交叉验证,其他常用的 K 值 有5、 20等。

与留出法相似,将数据集D划分为K个子集同样存在多种划分方式. 为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值。

假定数据集D中包含m个样本,若令k=m,则得到了交叉验证法的一个特例留一法(Leave-One-Out,简称 LOO).显然,留一法不受随机样本划分方式的影响。不受随机样本划分方式的影响,评估结果往往比较准确。若数据集大,则计算量无法承受,由NFL定理,纵然这样的巨大计算量,也未必能保证它比其他方法更准确。

2.2.3自助法(bootstrapping)

数据集D中包含m个样本,对其进行采样产生数据集D':每次随机从D中挑选一个样本,将其拷贝放入D',然后将该样本放回初始数据集D。该过程重复m次,我们可得到包含m个样本的数据集D',称为自助采样的结果。

样本在m次采样中始终没有被采样的结果的概率为(1-1/m)^m,取极限得到为1/e约等于0.386。
即通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D' 中.我们可将D' 用作训练集,D\D'用作测试集,这样, 实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、 没在训练集中出现的样本用千测试这样的测试结果。

自助法更适用于数据集较小、难以有效划分训练集、测试集时候使用,并且由于它能产生不同的训练集。它改变了初始数据集的分布。因此,在初始数据量足够时,这种方法使用较少。

[MachineLearning]模型评估与模型选择相关推荐

  1. 第六课.模型评估与模型选择

    目录 导语 模型评估 回归任务的评估指标 分类任务的评估指标 过拟合现象 过拟合的原因 过拟合解决办法 模型选择与调整超参数 正则化 留出法 交叉验证 网格搜索 实验:线性回归预测股票走势 实验说明 ...

  2. ML 04、模型评估与模型选择

    FROM:http://www.cnblogs.com/ronny/p/4063048.html 机器学习算法 原理.实现与实践--模型评估与模型选择 1. 训练误差与测试误差 机器学习的目的是使学习 ...

  3. 模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)

    模型评估与模型选择 当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准. 训练误差的大小,对判定给定的问 ...

  4. python模型评估_模型评估知识点总结及Python实现

    目录 1.概述 2.分类评估--混淆矩阵 3.分类评估--ROC.AUC.提升图与KS图 4.回归评估 5.非监督评估 正文 1.概述 数据集输入到一个模型中,然后再进行输出,我们可以得到模型的输出结 ...

  5. R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)

    R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图.混淆矩阵.Accuray.Precision.Recall.ROC.AUC).PRTPlot函数可视化获取logistic ...

  6. ML之回归预测:利用Lasso、ElasticNet、GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(模型评估、模型推理)

    ML之回归预测:利用Lasso.ElasticNet.GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集[12+1]进行回归预测(模型评估.模型推理) 目录 ...

  7. k近邻算法,朴素贝叶斯算法,分类模型评估,模型调优

    k近邻算法,朴素贝叶斯算法,分类模型评估,模型调优 k近邻算法 k近邻算法概述 k近邻算法代码实现 k近邻算法的评价 朴素贝叶斯算法 朴素贝叶斯算法概述 朴素贝叶斯代码实现 朴素贝叶斯的评价 分类模型 ...

  8. 【统计学习方法】模型评估与模型选择

    一.训练误差与测试误差 首先引入误差的概念,误差(error)是指:学习器的实际预测输出与样本的真实输出之间的差异.类似地,学习器在训练集上的误差被称之为训练误差(training error)或者经 ...

  9. 机器学习中的模型评价、模型选择及算法选择

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 正确使用模型评估.模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要.本文将对这三个任务的相关技术 ...

最新文章

  1. sqlalchemy 对 mysql 进行增删改查
  2. iOS32位唯一标识符
  3. 初次安装Magento商城 后台报错的解决方案
  4. upgrade yum 指定版本_CentOS 6.9/7通过yum安装指定版本的MySQL
  5. python2.7 安装numpy no module name zlib
  6. javascript一些面试常用的问题总结
  7. Oracle In Memory最佳实践(附PPT和视频回放)
  8. 今天我的MSN提示升级了
  9. What is Leanstar.cn?
  10. vector用法 java_java.util.vector中的vector的详细用法
  11. 企业园区全面安防面临的问题及解决之道
  12. archlinux配置Xfce+fcitx5中文输入法
  13. 触动精灵 alilib
  14. html js聊天对话源码,javascript实现简易聊天室
  15. 二、8【FPGA】Verilog中锁存器(Latch)原理、危害及避免
  16. Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning
  17. Visual Basic Script 程序参考手册-学习第4天:数组列表及Msgbox函数
  18. hover在两种情况下的两种用法
  19. 格鲁吉亚理工学院 计算机难度,去美国读CS和工程专业的同学请注意,这里有50所性价比最高的学校待查收!...
  20. Unity全局光照/Bake GI/Precomputed Real-time GI/Lightmap/Light Probe

热门文章

  1. 如何在感觉怕黑怕鬼时壮胆
  2. 微信公众平台开发之模板消息(Java)
  3. NID-00135: There are 1 active threads错误
  4. 对sklearn文件pyd文件进行修改的方法
  5. JS基础实战--day07
  6. 数字编码电位器c语言,数字电位器x9c103应用电路
  7. 平面几何----用梅涅劳斯定理证明笛沙格定理
  8. DeFi热潮下的安全隐患:流动性危机恐将造成连锁反应 | 非正式会谈
  9. 配置web服务器 并运行,二、HelloTomcat(Web服务器配置)
  10. bugku 0和1的故事 用Excel完成