原文链接:https://developers.google.com/machine-learning/crash-course/generalization

泛化是指模型很好地拟合以前未见过的新数据(从用于创建该模型的同一分布中抽取)的能力。

1- 过拟合的风险

机器学习的目标是对从真实概率分布(已隐藏)中抽取的新数据做出良好预测。
过拟合模型在训练过程中产生的损失很低,但在预测新数据方面的表现却非常糟糕。
模型只能从训练数据集中取样,无法查看整体情况。
如果某个模型在拟合当前样本方面表现良好,那么如何相信该模型会对新数据做出良好的预测呢?

奥卡姆剃刀定律:科学家应该优先采用更简单(而非更复杂)的公式或理论。
运用在机器学习中:机器学习模型越简单,良好的实证结果就越有可能不仅仅基于样本的特性。
应用于统计学习理论计算学习理论领域。这些领域已经形成了泛化边界,即统计化描述模型根据以下因素泛化到新数据的能力:

  • 模型的复杂程度
  • 模型在处理训练数据方面的表现

虽然理论分析在理想化假设下可提供正式保证,但在实践中却很难应用。
MLCC侧重于实证评估,以评判模型泛化到新数据的能力。

1.1- 获取新数据

机器学习模型旨在根据以前未见过的新数据做出良好预测。
如何获得以前未见过的数据呢?
一种方法是将您的数据集分成两个子集:

  • 训练集 - 用于训练模型的子集。
  • 测试集 - 用于测试模型的子集。

一般来说,在测试集上表现是否良好是衡量能否在新数据上表现良好的有用指标,前提是:

  • 测试集足够大。
  • 不会反复使用相同的测试集来作假。

1.2- 机器学习细则

以下三项基本假设阐明了泛化:

  • 从分布中随机抽取独立同分布 (i.i.d)的样本。换言之,样本之间不会互相影响。
  • 分布是平稳的;即分布在数据集内不会发生变化。
  • 同一分布的数据划分中抽取样本。

在实践中,有时会违背这些假设。例如:

  • 想象有一个选择要展示的广告的模型。如果该模型在某种程度上根据用户以前看过的广告选择广告,则会违背 i.i.d. 假设。
  • 想象有一个包含一年零售信息的数据集。用户的购买行为会出现季节性变化,这会违反平稳性。

如果违背了上述三项基本假设中的任何一项,那么就必须密切注意指标。

1.3- 总结

  • 如果某个模型尝试紧密拟合训练数据,但却不能很好地泛化到新数据,就会发生过拟合。
  • 如果不符合监督式机器学习的关键假设,那么我们将失去对新数据进行预测这项能力的重要理论保证。

2- 关键词

泛化 (generalization)
指的是模型依据训练时采用的数据,针对以前未见过的新数据做出正确预测的能力。

过拟合 (overfitting)
创建的模型与训练数据过于匹配,以致于模型无法根据新数据做出正确的预测。

预测 (prediction)
模型在收到输入样本后的输出。

平稳性 (stationarity)
数据集中数据的一种属性,表示数据分布在一个或多个维度保持不变。
这种维度最常见的是时间,即表明平稳性的数据不随时间而变化。
例如,从 9 月到 12 月,表明平稳性的数据没有发生变化。

测试集 (test set)
数据集的子集,用于在模型经由验证集的初步验证之后测试模型。
与训练集和验证集相对。

训练集 (training set)
数据集的子集,用于训练模型。
与验证集和测试集相对。

机器学习入门05 - 泛化 (Generalization)的更多相关文章

  1. 机器学习入门 - Google机器学习速成课程 - 笔记汇总

    机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...

  2. [转]MNIST机器学习入门

    MNIST机器学习入门 转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html?plg_ ...

  3. tensorfllow MNIST机器学习入门

    MNIST机器学习入门 这个教程的目标读者是对机器学习和TensorFlow都不太了解的新手.如果你已经了解MNIST和softmax回归(softmax regression)的相关知识,你可以阅读 ...

  4. 机器学习入门:极度舒适的GBDT原理拆解

    机器学习入门:极度舒适的GBDT拆解 本文旨用小例子+可视化的方式拆解GBDT原理中的每个步骤,使大家可以彻底理解GBDT Boosting→Gradient Boosting Boosting是集成 ...

  5. Azure机器学习入门(三)创建Azure机器学习实验

    在此动手实践中,我们将在Azure机器学习Studio中一步步地开发预测分析模型,首先我们从UCI机器学习库的链接下载普查收入数据集的样本并开始动手实践: http://archive.ics.uci ...

  6. 【网络爬虫入门05】分布式文件存储数据库MongoDB的基本操作与爬虫应用

    [网络爬虫入门05]分布式文件存储数据库MongoDB的基本操作与爬虫应用 广东职业技术学院  欧浩源 1.引言 网络爬虫往往需要将大量的数据存储到数据库中,常用的有MySQL.MongoDB和Red ...

  7. web安全之机器学习入门——3.1 KNN/k近邻

    目录 sklearn.neighbors.NearestNeighbors 参数/方法 基础用法 用于监督学习 检测异常操作(一) 检测异常操作(二) 检测rootkit 检测webshell skl ...

  8. JavaScript基础入门05

    目录 JavaScript 基础入门05 严格模式 严格模式的设计目的 如何开启使用严格模式 显式报错 字符串 字符串的创建 字符串实例方法之常用API JavaScript 基础入门05 严格模式 ...

  9. 【机器学习】机器学习入门08 - 聚类与聚类算法K-Means

    时间过得很快,这篇文章已经是机器学习入门系列的最后一篇了.短短八周的时间里,虽然对机器学习并没有太多应用和熟悉的机会,但对于机器学习一些基本概念已经差不多有了一个提纲挈领的了解,如分类和回归,损失函数 ...

随机推荐

  1. java整数溢出问题及提升为long型

    整数溢出问题 Java 中的 int 用 32 位表示,正数最大值的情况,首位是 0,其他位都可以是 1(就是 2^31-1).但是如果正数过大了,例如 2^31,计算机不得不把首位变成 1,并且计算 ...

  2. Sliverlight调用WebService跨域问题解决

    在SilverlightApplication正常添加webservice(承载网站中建webservice,这样就不存在跨域问题了,即域名一样如:localhost:4676) http://loc ...

  3. POJ 2378.Tree Cutting 树形dp 树的重心

    Tree Cutting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4834   Accepted: 2958 Desc ...

  4. java 多线程的唤醒

    package TestThread.ThreadSynchronized.TestInterruptedException; public class InterruptDemo { public ...

  5. Springboot & Mybatis 构建restful 服务三

    Springboot & Mybatis 构建restful 服务三 1 前置条件 成功执行完Springboot & Mybatis 构建restful 服务二 2 restful ...

  6. php日志报错child exited with code 0 after seconds from start

    因为日志文件老是有这种提示: [27-May-2015 15:13:48] NOTICE: [pool www] child 3998 started [27-May-2015 15:13:59] N ...

  7. Springboot单例模式实战封装json转换

    一.定义 保证一个类仅有一个实例,并提供一个全局访问点. 二.优点 (1)在内存里只有一个实例,减少了内存开销      (2)可以避免对资源的多重占用      (3)设置全局访问点,严格控制访问 ...

  8. Maven学习笔记2(坐标和依赖)

    1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...

  9. 如何在Ubuntu上安装LAMP服务器系统?

    在Ubuntu上安装LAMP Ubuntu的开发人员让人们很容易安装和配置LAMP软件包,只要借助一个终端命令.所以,打开终端窗口,让我们开始入手吧. sudo apt-get install lam ...

  10. [Java基础复习] -- x. 正则表达式的使用

    序号待定, 先用x占位表示 理论知识待完善, 先贴上代码 import java.util.regex.Matcher; import java.util.regex.Pattern; import ...