0.      基本术语

数据集(data set):记录的集合。

示例(instance)或样本(sample):每条记录是关于一个事件或者对象的描述。

属性(attribute)或特征(feature):反映事件或对象在某方面的表现或性质的事项。

属性值(attribute value):属性上的取值。

训练集(training set):训练过程中使用的数据。

学习器(learner):找出规律或者逼近真相的模型。

1.      经验误差与过拟合

错误率(error rate):分类错误样本数占样本总数的比例。

错误率E=a/m;在m个样本中有a个样本分类错误。

精度(accuracy)= 1-错误率。

误差(error):学习器的实际预测输出与样本的真实输出之间的差异。

训练误差(training error):学习器在训练集上的误差。

泛化误差(generalization):在新样本上的误差。

Goal:希望得到泛化误差小的学习器。

实际中,只能努力使经验误差最小化,这样就可能出现一个经验误差很小,在训练集上表现很好的学习器,对所有训练样本都分类正确,即分类错误率为零,分类精度为100%,但是在多数情况下都不好。

过拟合:学习能力过于强大,把训练样本所包含的不太一般的特性都学到了,导致泛化性能降低。

欠拟合:学习能力低下。

图片(过拟合,误认为树叶必须有锯齿)

图片(欠拟合,误以为绿色的都是树叶)

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

2.      测试集选取

测试集的选取:通常假设测试样本也是从样本真是分布中独立同分布采样得到,但是需注意,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用(原因:希望得到泛化性能强的模型,就是学生做题时的举一反三能力)

已知:一个包含m个样例的数据集D={(x1,y1),(x2,y2),…,(xm,ym)},既要训练又要测试。对D进行适当的处理,从中产生训练集S和测试集T。

2.1留出法(hold-out)

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

举个栗子:假定D包含1000个样本,将其划分为S包含700个样本,T包含300个样本,用S进行训练,如果模型在T上有90个样本分类错误,那么其错误率为,精度为1-30%=70%。

注意事项:

(1)训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。例如在分类任务中至少要保持样本的类别比例相似,尝采用分层采样的方法,即采样过程中保留类别比例。

(2)即便在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。

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

在这里,还有一个窘境:若训练集S包含绝大多数样本,则训练处的模型可能更接近于用D训练出的模型,但由于T比较小,评估结果可能不够稳定准确,测试集小,评估结果的方差较大;若令测试集T多包含一些样本,则训练集S与差别更大了,被评估的模型与用D训练出的模型相比可能有较大的差别,从而降低了评估结果的保真性(fidelity)。

常见解决方法:将大约2/3~4/5的样本用于训练,剩余样本用于测试。

2.2交叉验证法(crossvalidation)/k折交叉验证(k-fold cross validation)

方法:将数据集D划分为k个大小相似的互斥子集,即.每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后每次都用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

tips:

(1)    评估结果的稳定性和保真性很大程度上取决于k的取值,最常用取值为10,此时成为10折交叉验证;其他常用的k值有5、20.

(2)    为了减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的10次10折交叉验证。

(3)    特例:留一法:k=m,留一法使用的训练集与初始数据集相比只是少了一个样本,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似,因此结果往往被认为比较准确。缺陷:数据集比较大事训练m个模型的计算开销可能过大。

2.3自助法(bootstrapping)

方法:以bootstrap sampling为基础,给定包含m个样本的数据集,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复m次以后,我们就得到了包含m个样本的数据集D’。将D’用作训练集,D\D’用作测试集;这样实际评估的模型与期望评估的模型都使用m个训练样本,而仍有数据总量约1/3的、没在训练集中出现的样本用于测试,这样的测试结果,也成为“包外估计”(out-of bag estimate).

在这个过程中,样本在m次采样中始终不被采到的概率是(1-1/m)m,取极限得到

即通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D’中。

使用条件:

(1)在数据集较小,难以有效划分训练/测试集时很有用;

(2)可从初始数据集中产生多个不同的训练集,对集成学习等方法很有用。

总结:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。在初始数据量足够时,留出法和交叉验证法更常用一些。

机器学习测试集选取常用方法-《机器学习》周志华相关推荐

  1. 《机器学习》(西瓜书)周志华 -学习心得

    第一章绪论 基本术语 记录&示例&样本:"=",意思是取值为,每一条记录是关于一个对象或事件的描述.eg:(色泽=浅白:根蒂=硬挺:敲声=清脆) 数据集:记录的集合 ...

  2. 机器学习两大派别--南大周志华

    //2014年11月7日 //http://quweiprotoss.blog.163.com/blog/static/4088288320099178652101/ 机器学习现在是一大热门,研究的人 ...

  3. 【MLA首日报告摘要】周志华、马毅等教授分享机器学习最新进展

    来源:专知 概要:第15届中国机器学习及其应用研讨会今天11月4日在北京交通大学举行,海内外从事机器学习及相关领域研究的10余位专家与会进行学术交流. 第15届中国机器学习及其应用研讨会今天11月4日 ...

  4. 纯国产的大佬周志华,如何扛起了智能学界的一面大旗

    原创:HyperAI超神经 关键词:周志华  机器学习  IJCAI 身为 AI 领域里的大神级学者,周志华教授在科学研究,人才培养,著作传播上都投入了极高的热忱,而他不凡的学术贡献,更是让其获得嘉奖 ...

  5. 2019中国计算机高引学者榜单出炉,164人入选,周志华位列第二

    晓查 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 全球最大学术出版商之一爱思唯尔(Elsevier),发布了2019年中国高引学者榜单. 本届榜单共有38个学科的2163名学者入选, ...

  6. 周志华机器学习(西瓜书)学习笔记(持续更新)

    <周志华机器学习>笔记 第1章 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 归纳偏好 1.5 发展历程 1.6 应用现状 第2章 模型评估与选择 2.1 经验误差与过拟 ...

  7. 机器学习 --《机器学习》(周志华)第一、二章

    吃瓜笔记(第一.二章) <机器学习>(周志华) 文章目录 吃瓜笔记(第一.二章) 笔记 章节习题 延伸思考 笔记 通过对大量的对象属性进行分析后得到模型的过程称之为训练 进行科学推理常用方 ...

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

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

  9. 【周志华机器学习】八、集成学习

    文章目录 参考资料 1. 基本概念 1.1 个体与集成 2. Boosting 3. Bagging 4.随机森林 5. 结合策略 5.1 平均法(回归问题) 5.2 投票法(分类问题) 5.3 学习 ...

最新文章

  1. LabVIEW目标测量方法(基础篇—12)
  2. 回顾丨2017年人工智能带火了哪些词
  3. 工作流-----WorkFlow
  4. html面包屑菜鸟,css content属性与before及after伪元素配合使用价值发挥到最大
  5. php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP
  6. java短横线转驼峰_Java后端常备的开发规范
  7. html+css+javascript之间的关系与作用
  8. 设计模式之间的关联关系和对比
  9. idea会不定时闪屏_显示器闪屏什么原因
  10. 微软企业库5.0学习笔记(三十三)数据访问模块
  11. SpringBoot—单元测试模板(controller层和service层)
  12. CSU 1111 三家人
  13. python 分解模数_Python模数
  14. matlab中kesi是什么意思,matlab作业简要分析
  15. 计算机 语言学 交叉,计算机和语言学
  16. Gcc编译过程和C语言内存管理
  17. win10查看端口号
  18. c语言微信备份文件夹,电脑微信数据存在哪个文件夹里?
  19. 第三章 ---- 了解各种 Linux 文本编辑器
  20. 逻辑漏洞----其他类型

热门文章

  1. 系统集成小设计作业 以及visio 绘图
  2. 前端代码与后端联调:报错:Required String parameter ‘userID‘ is not present
  3. 在线排查内存泄漏的步骤
  4. 计算机桌面word不见怎么办,电脑桌面图标突然消失或则Word,excel突然无法打开该怎么办...
  5. 16_ue4进阶末日生存游戏开发[持续减少饱腹度]
  6. 一起学libcef--开篇(下载、CMake的使用)
  7. 单片机步进电机ULN2003A硬件实现原理图
  8. 二叉树遍历——前序、后序和中序遍历
  9. 第五章 面向对象——多态 课后作业:
  10. Java面试题之:乐观锁、悲观锁与自旋锁及其相关锁的优化(万字知识点详解)