《机器学习》读书笔记系列-01-2020_09_week4

《机器学习——周志华》 第一章、第二章1、2节

知识点总结

Q:机器学习研究什么

从经验中学习知识,从而改善系统的性能。

在计算机中经验往往以数据的形式存在,机器学习的研究内容就是从数据中产生model的算法,叫做“学习算法”。机器学习是对学习算法的研究。

历史上看,早期的人工智能是符号+推理的演绎推理为主,在70年代,人们认为只有推理能力是不能成就智能的,还需要知识。因此“知识工程”出现,引入知识的人工智能产生了很多专家系统,应用效果良好。但是随后人们发现人来总结知识给机器学习效率低下,被称为“知识工程瓶颈”。机器学习产生于这个时候,用计算机学习数据中的知识,以期突破“知识工程瓶颈”。因而,机器学习是从数据中获取知识。

机器学习是分析利用数据的技术。

Q:基本术语

《机器学习》读书笔记系列-01-2020_09_week4

  • 训练/学习:从数据中习得模型的过程。
  • 训练样本:训练中使用的样本。
  • 训练集:训练样本的集合。
  • 学习器:学习算法在给定数据和参数空间上的实例化。
  • 标记:需要训练的样本的结果信息。
  • 样例:拥有标记的样本。
  • 输入空间/样本空间/属性空间:属性的值张成的空间。
  • 维数:属性的个数
  • 输出空间/标记空间:所有标记的集合。
  • 预测:一般而言预测是通过对数据集的学习,建立从输入空间到输出空间的映射关系。
  • 测试:对学得的模型进行预测。
  • 测试集:用于测试的样本组成的集合。
  • 测试标记:对某一样本进行预测得到的标记

Q:学习算法相关描述

分类

有监督学习的代表

  • 回归:预测连续值
  • 分类:预测离散值

无监督学习的代表

  • 聚类:将样本分成若干“组”或“簇”

Q:泛化能力

学得的模型适用于新样本的能力。

通常会假设样本空间中的全体样本服从一个未知的“分布”D,并且所有的样本独立同分布,这样通过对样本分布的学习,我们就能够得到整体分布的情况。

但是实际中的样本并不是严格满足独立同分布的,而是有样本本身的特征,这些样本本身的特征被算法学习,导致算法的泛化能力下降。一个简单的提高泛化能力的办法是增加样本的数量。

Q:归纳学习

从样例中学习称为归纳学习。

狭义的归纳学习也称为概念学习,即学习一个概念。(比如我们说不相交的两条线叫平行线,即满足不相交这个属性的两条线是平行线,这是一个概念。)

狭义的归纳学习可以用布尔表达式表示,如(AB)v(CD) 它表明满足这样表达式的事物属于某一特定事物。

这种学习方式难以形成可泛化的模型,又称为死记硬背学习。

Q:假设与假设空间

假设: 我们可以将学习的过程看成一个在假设形成的空间中探索的过程,探索的目标是找到与训练集相匹配的假设。

假设空间:如果假设的表示形式确定了,假设空间的规模大小就确定了。

比如:如果我们认为瓜的好坏只和色泽、根蒂、敲声有关,那么假设的表示形式可以表示为(色泽=?)(根蒂=?)(敲声=?)

假设三个属性均有3种取值,相应的假设空间的规模为444+1。其中,4代表每个属性的三种取值和“该属性可以取任何值(什么颜色的都是好瓜)”,1代表世界上根本没有好瓜(类比空集也是集合,不存在这样的假设也是一种假设)。

Q:归纳偏好

版本空间:在假设空间中,我们逐一剔除和数据集不符合假设,最终我们可能仍会剩余多个假设,这些假设组成的集合称为“版本空间”或“假设集合”

归纳偏好:不同的算法从版本空间选择假设时会有各自的偏好,在实际选择算法时,要根据问题的不同考虑算法的偏好。

Q:没有免费的午餐定律

如果所有假设成立的可能性相同,那么模型的好坏与算法的选择无关。(精心选择的算法和胡乱猜想的效率是相同的)。

实际问题中并不是所有假设成立的可能性相同,不同假设成立的可能性不同意味着,应该针对具体问题选择特定的算法,迎合这种不同。

Q:模型评估的指标

  • 错误率 = 错误分类的样本数/总的样本数
  • 精度 = 1 - 错误率
  • 经验误差 : 训练集上的错误率,也叫训练误差
  • 泛化误差 : 训练集外上的错误率,即实际应用时的误差

Q:如何评估模型

一个问题:我们想要泛化误差尽可能小,但是我们难以得到泛化误差;而经验误差不能直接反应泛化误差,因为经验误差很小的模型可能过多学习了样本自身的特征,导致泛化能力差。(过拟合)

解决方法:将数据集分成测试集和训练集,用训练集学习,测试集评估。

Q:如何分离数据集

  • 留出法
    将数据集直接分成两部分。

    注意:

    1. 在分离时要尽可能减少引入额外的偏差,因而应该采用分层采样,保证数据分布的一致。比如,二分类时应该保证训练集和测试集中正反类的比例和原始数据集相同。
    2. 往往多次随机划分,分别训练,取评估结果的平均值。
  • 交叉验证法
    将样本分成k等份,每次取k-1份进行训练,余下的1份进行测试,一共进行k轮,称为k折交叉验证。

    注意:

    1. k的取值一般为5、10、20
    2. 往往会做10次交叉验证,取结果的平均值。k=10 时,这样的方式称为“10次10折交叉验证”
    3. LOO:当每一份只有1个样本时,称为“留一法”,一般认为这种方法评估效果良好。
  • 自助法
    设数据集为D,共有m个样本。从数据集D中随机抽取一个样本,将他的拷贝放入D’,然后将该样本放回,重复m次得到大小为m的训练集D’。将D/D’作为测试集。
    当m很大时,某个样本不被采集到的的概率约等于 1/e = 0.368

    注意:

    1. 在数据集小时较有效
    2. 可以生成多个数据集,适合集成学习
    3. 改变了数据的原始分布,引入了估计偏差,因而不常用。