原文链接: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. FTP做作业用到的知识点:

    FTP做作业用到的知识点: 一: os.path 模块下常用的用法 os.path.abspath(file) #返回的是.py文件的绝对路径(完整路径) os.path.dirname(file) ...

  2. tomcat设置开机自动启动

    windows下: 1 命令cmd 进入    磁盘: 回车 2 tomcat\bin目录   回车 3  service.bat install   (注:tomcat一定要有service.bat ...

  3. linux学习第十七天 (Linux就该这么学)

    今天12月14日学习比较少点,等了一会,主要讲了squid代理,1,正向代理 2反向代理 正向代表分为:标准的正向代理,透明的正向代理 ,这个比较实用, 还讲了RHCE考试的中的内容  iscsi 是 ...

  4. selenium+java定位163/126邮箱元素显示定位失败解决

    开始在没有进入iframe时,用任何方法定位163/126邮箱登录页面的元素都不可能定位到,eclipse工作台会显示Unable to locate element:…… 这种情况我遇到了两种原因: ...

  5. Apollo

    下载源码: https://github.com/nobodyiam/apollo-build-scripts#%E4%B8%80%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9 ...

  6. MongoDB + Express 环境搭建记

    最近项目需要使用 MongoDB,所以不得不搭建 MongoDB 环境,此文记录搭建过程及使用过程中需要了解的问题. Linux + Windows 混合搭建调试 MongoDB 记录 版本介绍 : ...

  7. javabean转换为map对象

    在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */p ...

  8. 2019.03.29 bzoj3323: [Scoi2013]多项式的运算(非旋treap)

    传送门 题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作 将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v 将xLx^LxL到xRx^RxR这些项的系 ...

  9. 走进JDK(十一)------LinkedHashMap

    概述LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,LinkedHas ...

  10. vue路由独享守卫beforeEnter

    在某个路由中,使用beforeEnter()方法,参数是to,from,next 和全局路由守卫的用法是一样的 例子: import Vue from 'vue' import Router from ...