《机器学习》学习笔记

第一章 绪论

基本术语

  • 数据集,示例,样本
  • 学习/训练:从数据中学得模型的过程,学得模型对应了关于数据的某种潜在的规律,因此也叫“假设”,这种潜在规律本身称为“真相”或“真实
  • 标记
    • 对于示例结果的信息,称之为“标记”,拥有了标记信息的示例则称之为“样例”。
    • 通俗来讲就是针对每一个训练样本x都有一个结果信息y与之对应,y就是x的标记。扩展起来所有y的集合就是标记空间,或输出空间
  • 分类回归
    • 如果我们预测的是离散值,例如好瓜坏瓜,此类学习任务称为“分类
    • 如果我们预测的是连续值,例如西瓜的成熟度0.97,0.35…此类学习任务称为“回归
  • 二分类多分类
    • 只涉及两个类别的分类任务称为二分类,涉及多个类别时称为多分类
    • 通常称一个为正类,另一个为反类
  • 聚类
    • 将训练集中的数据分成若干组,每组称为,这些簇对应着一些潜在的概念划分,但这种概念划分我们事先是不知道的,而且学习的过程中使用的训练样本不具有标记信息
  • 监督学习无监督学习
    • 监督学习也就是学习过程中我们事先知道这些输入所对应的的输出空间,要做的任务是建立所有的输入与输出空间的映射。分类回归是监督学习的代表。
    • 无监督学习也就是学习过程中我们事先不知道训练样本的结果是什么,聚类是无监督学习的代表。
  • 泛化能力
    • 学得模型适用于新样本的能力,称为泛化能力

假设空间

  • 归纳演绎
    • 归纳是从特殊到一般的“泛化”过程,从具体事实归结出一般性规律
    • 演绎是从一般到特殊的“特化”过程,从基础原理推演出具体状况
  • 概念学习
    • 狭义的归纳学习,从训练数据中学得概念
    • 可以把学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集匹配的假设
  • 版本空间
    • 实际中可能面临的假设空间很大,但学习过程是基于有限的样本训练集进行的,因此可能有多个假设与训练集一致,也就是存在着一个与训练集一致的“假设集合”,我们称之为“版本空间

归纳偏好

  • 针对同一个样本,使用不同的模型可能会有不同的输出,如何选择最终的输出结果就是偏好
  • 奥卡姆剃刀
    • 若有多个假设与观察一致,则选择最简单的那个
    • 问题:对于“最简单”的判断原则却很不简单
  • NFL定理没有免费的午餐)告诉我们,脱离具体问题谈论“什么学习算法好”毫无意义。要谈论算法的优劣,必须要针对具体的学习问题。

第二章 模型评估与选择

经验误差与过拟合

  • 错误率:分类错误的样本数占样本总数的比例
  • 误差:学习器的实际预测输出与样本的真实输出之间的差异
    • 训练误差:学习器在训练集上的误差
    • 泛化误差:学习器在新样本上的误差
  • 过拟合欠拟合
    • 过拟合是指由于学习能力太过强大,以至于把训练样本所包含的不太一般的特性都学到了,也就是把无关紧要的细枝末节也当做了判定的依据,导致泛化能力下降。
    • 欠拟合是指由于学习能力低下,导致应该学到的一般特性未能学习到
    • 过拟合是机器学习面临的关键障碍,是无法彻底避免的,我们能做的只是“缓解”。

评估方法

  • 留出法
    • 将数据集划分为两个互斥的集合,其中一个作为训练集,另一个作为测试集
    • 数据集的划分要尽可能保持数据分部的一致性,避免因划分问题导致结果偏差
    • 由于划分的方式不同,单次使用留出法得到的结果往往不够稳定可靠,一般要采用多次随机划分、重复进行实验评估后取平均值作为留出法的评估结果
  • 交叉验证法
    • 先将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性。
    • 然后每次都使用k-1个子集的并集作为训练集,余下的那个子集作为测试集。
    • 这样可获得k个测试结果,返回平均值
  • 自助法
    • 在有m个数据的数据集D中进行采样,采样的结果拷贝到数据集D’中,每个数据每次都有可能被选中。
    • 重复采样m次,获得一个具有m个数据的数据集D`,这就是自助采样的结果。
    • 自助采样会使得初始数据集D中仍然有38%左右的数据未出现在数据集D`中,却使得训练集拥有和初始数据集相同的容量
    • 缺点:改变了初始数据集的分布,引入了估计偏差

性能度量

  • 性能度量:衡量模型泛化能力的评价标准。要评估学习器的性能,就要把学习器预测结果与真实标记进行比较
  • 均方误差
    • 回归任务最常用的性能度量是“均方误差
  • 查准率查全率
    • 查准率:检索的信息中有多少是用户感兴趣的
    • 查全率:用户感兴趣的信息有多少被检索出来了
    • 查准率与查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。(通俗解释:若要提高查全率,则会将尽可能多的信息容纳进来,导致查准率降低,也就是“宁杀错,不放过”。而若要提高查准率,那么对于没有把握的信息就应该排除在外,只容纳有把握的信息,导致查全率降低,也就是“宁放过,不杀错”。)
    • P-R曲线
      • 根据机器学习的预测结果对样例进行排序,排在最前面的是学习器认为最可能是正例的样本,排在最后的是学习器最不可能认为是正例的样本,按此顺序逐个排序,计算出当前的查全率和查准率,并以查全率为横轴、查准率为纵轴,就可以绘制出P-R曲线。
      • P-R图直观地显示出学习器在样本总体上的查全率、查准率。横坐标为查全率,纵坐标为查准率
      • 哪条曲线包围的面积大,在一定程度上表征了学习器在查准率和查全率上取得“双高”的比例,但这个值不易估算
      • 平衡点是P-R曲线上查准率=查全率时的取值
    • 对于具有多个二分类混淆矩阵的情况
      • 一种方法是先在各混淆矩阵上分别计算出查准率和查全率,然后再计算平均值,这样得到“宏查准率”、“宏查全率”,以及相应的“宏F1
      • 另一种方法是先将各混淆矩阵的对应元素进行平均,再基于这些平均值计算出**“微查准率**”、“微查全率”和“微F1
  • ROCAUC
    • 很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于分类阈值则为正类,若小于分类阈值则为反类。将预测结果进行排序,最可能是正例的排在前面,最不可能是正例的排在后面,这样,分类过程就相当于在中间选取一个“截断点”,前面的视为正例,后面的视为反例。因此,排序质量的好坏影响学习器在不同人物下的期望泛化性能的好坏。ROC曲线就是从这个角度出发来研究学习器泛化性能的有力工具。
    • ROC曲线以真正例率为纵轴,假正例率为横轴,其对角线对应于“随机猜测模型”,而点(0,1)则对应于所有正例排在反例之前的理想模型
    • 若一个ROC曲线将另一个曲线包住,则其性能较优。若两者有交叉则需比较两曲线所包围的面积AUC的大小。这与P-R曲线优劣的判定一致。
  • 代价敏感错误率代价曲线
    • 为了权衡不同类型的错误所造成的不同损失,为错误赋予“非均等代价
    • 二分类代价矩阵cost[i][j]表示将第i类样本预测为第j类样本的代价
    • 之前的性能度量大都隐式地假设了均等代价,而在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化总体代价
    • 在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”可以达到该目的。
    • 代价曲线的横轴是取值为[0, 1]的正例概率代价,纵轴是取值为[0, 1]的归一化代价
    • 代价曲线的绘制:
      • ROC曲线上的每一点对应了代价平面上的一条线段

比较检验

  • 假设检验
    • 假设检验中的假设,是对学习器泛化错误率分部的某种判断或猜想。现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率。
    • 泛化错误率是学习器在一个样本上犯错的概率
  • 交叉验证t检验
    • 用k折交叉验证“成对t检验”来进行比较检验
  • McNemar检验
  • Friedman检验Nemenyi后续检验
    • 交叉验证t检验和McNemar检验都是在一个数据集上比较两个算法的性能,而在很多时候,我们会在一组数据集上对多个算法进行比较。
    • 当有多个算法参与比较时,一种做法是在每个数据集上分别列出两两比较的结果,而在两两比较时可以使用前述的方法。另一种直接的做法是使用基于算法排序的Friedman检验

偏差与方差

  • 对学习算法除了通过实验估计其泛化性能,人们往往还希望了解它为什么具有这样的性能。
  • 偏差-方差分解是解释学习算法泛化性能的一种重要工具。它说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,也就是能够充分拟合数据,并且使方差较小,也就是是的数据扰动产生的影响小 。
  • 一般来说,偏差与方差是有冲突的,这称为“偏差-方差窘境
    • 当训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率
    • 随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率
    • 在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著的变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合

第三章 线性模型

基本形式

  • 线性模型试图学得一个通过属性的线性组合来进行预测的函数
  • 线性模型形式简单,易于建模,具有很好的可解释性

线性回归

  • 线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记
  • 均方误差
    • 是回归任务中最常用的性能度量
    • 均方误差有很好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”
    • 扩展:欧氏距离
      • 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
  • 最小二乘法
    • 基于均方误差最小化来进行模型求解的方法称为“最小二乘法”
    • 在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小

对数几率回归

  • 实际上使用线性回归模型的预测结果区逼近真实标记的对数几率。
  • 虽然名为回归,实际上是一种分类学习方法。
  • 优点
    • 它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分部不准确所带来的问题
    • 它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需要利用概率辅助决策的任务很有用
    • 对数几率回归(对率回归)求解的目标函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可以直接用于求解最优解

线性判别分析LDA

  • 线性判别分析是一种经典的线性学习方法。给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离。再对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
  • 可以通过LDA来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术

多分类学习

  • 现实中经常遇到多分类学习任务,有些二分类学习方法可以直接推广到多分类,但在更多情况下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题
  • 考虑N个类别,多分类学习的基本思路是“拆解法”,将多分类任务拆解成若干个二分类任务求解。先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。
  • 拆分策略
    • 一对一OvO
      • 将N个类两两配对,形成N(N-1)/2个二分类任务,其中一个类别作为正例,另一个类别作为反例,需要训练N(N-1)/2个分类器
    • 一对其余OvR
      • 每次将一个类的样例作为正例,其余所有类的样例作为反例来训练N个分类器
    • 多对多MvM
      • 每次将若干个类作为正类,若干个其他类作为反类,其正反类的构造必须有特殊的设计,不能随意选取,常用的MvM技术是“纠错输出码

类别不平衡问题

  • 前面介绍的分类学习方法都有一个共同的基本假设,那就是不同类别的训练样例数目相当。如果不同类别的训练样例数目稍有差别通常影响不大,但若差别很大,则会对学习过程造成困扰。
  • 类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。
  • 类别不平衡问题的一个基本策略就是再缩放
  • 为了能有效地基于训练集观测几率来推断出真实几率,现有技术有三种做法:
    • 欠采样:去除一些反例使得正反例的数目接近,然后再进行学习
    • 过采样:增加一些正例使得正反例的数目接近,然后再进行学习
    • 阈值移动:直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将再缩放公式嵌入到其决策过程中。

第四章 决策树

基本流程

  • 决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制
  • 决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单而直观的“分而治之”策略
  • 决策树的生成是一个递归过程,下面三种情况会导致return:
    • 当前结点包含的样本全属于同一类别,无需划分
    • 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
    • 当前结点包含的样本集合为空,不能划分

划分选择

  • 信息增益
    • 信息熵是度量样本集合纯度最常用的一种指标,信息熵越小,信息的纯度越高
    • 信息增益越大,则意味着使用属性a来进行划分所获得的的“纯度提升”越大,因此我们可以用信息增益来进行决策树的划分属性选择。
  • 增益率
    • 事实上信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,注明的C4.5决策树算法不直接使用信息增益,而是使用“增益率”来选择最优划分属性。
    • 在增益率的定义中,属性a的可能取值数目越多,属性a的固有值通常会越大。
    • 注意:增益率准则对可取值数目较少的属性有多偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找到信息增益高于平均水平的属性,再从中选择增益率最高的
  • 基尼指数
    • 基尼指数反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。基尼指数越小,数据集D的纯度越高。

剪枝处理

  • 剪枝是决策树学习算法对付“过拟合”的主要手段
  • 决策树剪枝的基本策略有“预剪枝”和“后剪枝”。
    • 预剪枝是指在决策树生成的过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;
    • 后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
    • 预剪枝降低了过拟合风险,还显著减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支虽不能提升泛化性能甚至会带来泛化性能的降低,但在其基础上进行的后续划分却有可能大幅提升泛化性能。因此预剪枝也给决策树带来了欠拟合的风险。
    • 后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成决策树之后进行的,并且要自底向上得对树中所有非叶结点进行考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

连续与缺失值

  • 前面讨论的是基于离散属性来生成决策树,而现实学习任务中常会遇到连续属性,如何在决策树学习中使用连续属性呢?
  • 连续值处理
    • 由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分,此时,连续属性离散化技术可派上用场。
    • 最简单的策略是采用二分法来对连续属性进行处理。
      • 二分法就是将所有可能的取值排序,取相邻两个取值的中间点作为候选划分点,这样可以像离散属性值一样考察这些划分点,选取最优的划分点进行样本集合的划分。
      • 选好划分点之后,利用公式计算出该属性的信息增益值及对应的划分点,选择拥有最大信息增益值的属性进行划分。
    • 与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。
  • 缺失值处理
    • 现实任务中常会遇到不完整样本,即样本的某些属性值缺失。如果放弃使用缺失属性信息的样本,将会造成信息的浪费,因此有必要考虑利用有缺失属性值的训练样例进行学习。
    • 如何在属性值缺失的情况下进行划分属性选择?
      • 见课本
    • 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
      • 若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为w;
      • 若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,但样本权值要根据比例进行调整。总的来说就是让同一个样本以不同的概率划入到不同的子结点中去。

多变量决策树

  • 若我们把每个属性视为坐标空间的一个坐标轴,则d个属性描述的样本就对应了d维空间的一个数据点,对样本的分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界,决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。
  • 多变量决策树是能够实现“斜划分”甚至更复杂划分的决策树。
  • 在实现斜划分的多变量决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试。于是,与传统的“单变量决策树”不同,在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。

第五章 神经网络

神经元模型

  • 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应
  • M-P神经元模型
    • 在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。
    • 理想中的激活函数是跃阶函数,但不光滑、不连续。因此采用Sigmoid函数作为激活函数,也称为“挤压函数”
    • 把多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。

感知机与多层网络

  • 感知机
    • 感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。
    • 感知机能容易地实现逻辑与、或、非运算。
    • 感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。
    • 事实上,逻辑与、或、非问题都是线性可分的问题,若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛而求得适当的权向量w;否则感知机的学习过程将会发生震荡,w难以稳定下来,不能求得合适解。
  • 多层网络
    • 要解决非线性可分问题,需考虑使用多层功能神经元。
    • 更常见的是具有多层结构的神经网络,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为多层前馈神经网络
    • 输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。
  • 神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值,换言之,神经网络“学”到的东西,蕴含在连接权与阈值当中。

误差逆传播算法

  • **误差逆传播算法(BP算法)**是训练多层网络的算法的杰出代表,是迄今为止最成功的神经网络学习算法。
  • BP算法不仅可以用于多层前馈神经网络,还可用于其他类型的神经网络,例如训练递归神经网络。但“BP网络”通常是指利用BP算法训练的多层前馈神经网络。
  • BP算法的工作流程
    • 先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;
    • 然后计算输出层的误差,再将误差逆向传播至隐层神经元;
    • 最后根据隐层神经元的误差来对连接权和阈值进行调整;
    • 该迭代过程循环进行,直到达到某些停止条件为止。
  • BP算法的目标是要最小化训练集D上的累积误差。如果类似地推导出基于累积误差最小化的更新规则,就得到了累积误差逆传播算法(累积BP算法)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值