第一章 绪论+第二章 模型评估与选择

系列文章目录

本系列文章将总结《西瓜书》+《南瓜书》学习过程中的内容

参考资料:
1.《机器学习》 周志华
2.《机器学习公式详解》 谢文睿 秦州
3.【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集

目前已完成部分:

第一章 绪论+第二章 模型评估与选择



一、机器学习简介

1.基本术语

  • 模型:泛指从数据中学的结果,对应了关于数据的某种潜在的规律,也成为“假设”
  • 学习算法:在计算机上从“数据”中产生“模型”的算法
  • 机器学习:研究关于“学习算法”的学问
  • 数据集相关:
    • 记录:关于一个事件或对象的描述,称为 “示例” 或者 “样本”
    • 数据集:记录的集合
    • 属性/特征:事件或对象在某方面的表现或性质的事项
    • 属性值:属性上的取值
    • 属性空间/样本空间/输入空间:属性张成的空间,n个属性张成一个n维空间
      • 每个示例都能在属性空间中找到自己的坐标位置
      • 空间中每个点对应一个坐标向量
      • 因此每个示例称为一个 “特征向量”
  • 数据集的表示:
    • D = { x 1 , x 2 , … , x m } D = \left\{x_{1},x_{2},\ldots,x_{m}\right\} D={x1,x2,,xm},表示包含 m m m 个示例的数据集
    • 如果每个示例由 d d d 个属性描述,则每个示例表示为: x i = ( x i 1 ; x i 2 ; … ; x i d ) x_{i}=(x_{i1};x_{i2};\ldots;x_{id}) xi=(xi1;xi2;;xid),是 d d d 维样本空间 X \mathcal{X} X 中的一个向量
      • x i j x_{ij} xij 是示例 x i x_{i} xi 在第 j j j 个属性上的取值
      • d d d 称为样本 x i x_{i} xi维数
  • 训练过程中使用的数据称为训练数据,每个样本称为一个训练样本,训练样本组成的集合称为训练集
  • 标记:训练样本的“结果”信息
  • 样例:拥有了标记信息的示例
    • 一般地,用 ( x i , y i ) (x_{i},y_{i}) (xi,yi)表示第 i i i 个样例
    • y i ∈ Y y_{i}\in \mathcal{Y} yiY 是示例 x i x_{i} xi的标记
  • Y {\mathcal{Y}} Y是所有标记的集合,称为标记空间输出空间
  • 分类:预测的是离散值
    • 二分类:只涉及两个类别的任务
      • 一个类为正类
      • 另一个类为反类
    • 多分类:涉及多个类别的任务
  • 回归:预测的是连续值
  • 聚类:将训练集中的示例分为若干组
  • 测试:学得模型后,使用其进行预测的过程
  • 根据训练数据是否拥有标记信息,学习任务可大致划分为两大类
    • 监督学习
      • 分类
      • 回归
    • 无监督学习
      • 聚类
  • 泛化能力:学的模型适用于新样本的能力
    • 机器学习的目标是使学得模型能很好地适用于“新样本”,而不是仅仅在训练样本上工作得很好

2.假设空间

  • 假设空间:所有假设组成的空间
  • 假设的表示一旦确定,假设空间及其规模大小就确定了
    • 考虑假设空间规模的时候要考虑极端情况,例如 ∅ \emptyset
  • 学习的过程就是在假设空间中进行搜索,找到与训练集匹配的假设,将训练集中的每个示例正确判断的假设
    • 在有限样本训练集的学习过程中,训练集可能会对应多个与其一致的假设,形成一个假设集合,称为版本空间

二、模型评估与选择

1.经验误差与过拟合

  • 错误率:分类错误的样本数/样本总数
  • 精度:1-错误率,常写为百分比形式
  • 误差:实际预测输出与样本真实输出之间的差异
    • 训练误差/经验误差:训练集上的误差
    • 泛化误差:新样本上的误差
  • 学习过程期望:从训练样本中尽可能学出适用于所有潜在样本的普遍规律,能在新样本上表现好的学习器
  • 过拟合:
    • 泛化性能下降
    • 把训练样本自身的一些特点当作所有潜在样本都会具有的一般性质,例如训练样本的树叶都有锯齿,则学习器误以为树叶必须有锯齿,不能对没有锯齿的新树叶做出正确判断
    • 最常见导致因素:学习能力过于强大,把训练样本不太一般的特性都学到了
    • 是机器学习面临的关键障碍
    • 无法彻底避免,只能缓解或减少其风险
  • 欠拟合:
    • 训练样本的一般性质尚未学好,还是以判断是否为树叶为例,在学习过程中认为只要绿色的都是树叶,将所有绿色新样本都认定为树叶
    • 导致因素:学习能力低下
    • 较容易克服,例如在决策树学习中扩展分支、在神经网络学习中增加训练轮数等

2.评估方法

  • 使用测试集测试学习器对新样本的判别能力,以测试集上的测试误差作为泛化误差的近似,作为模型评估与选择的标准
  • 测试集的选择:
    • 假设测试样本是从样本真实分布中独立同分布采样而得
    • 测试集应该尽可能与训练集互斥,测试样本尽量不在训练集中出现
  • 对包含 m m m 个样例的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D = \left\{(x_{1},y_{1}),(x_{2},y_{2}),\ldots,(x_{m},y_{m})\right\} D={(x1,y1),(x2,y2),,(xm,ym)} ,如何产生训练集S和测试集T,有几种常见做法
    • 留出法
      • 直接将数据集 D D D划分为两个互斥的集合,一个作为训练集,另一个作为测试集
      • 划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外偏差影响最终结果
        • 例如,分类任务中至少要保持样本的类别比例相似
      • 单次使用留出法得到的估计结果往往不够稳定可靠,一般要采用若干次随即划分、重复进行实验评估后取平均值作为留出法的评估结果
      • 常见做法:将大约2/3~4/5的样本用于训练,剩余样本用于测试
    • 交叉验证法—— k k k折交叉验证
      • 将数据集划分为 k k k个大小相似互斥子集

      • 每个子集 D i D_{i} Di尽可能保持数据分布的一致性,从 D D D中通过分层采样得到

      • 每次用 k − 1 k-1 k1个子集的并集作为训练集,余下的那个子集作为测试集

      • 得到 k k k组训练/测试集,进行 k k k次训练和测试

      • 最终返回 k k k个测试结果的均值

      • 评估结果的稳定性和保真性很大程度上取决于 k k k的取值

        • k k k最常用的取值为10
          • 参照西瓜书绘制的“10折交叉验证示意图”如下所示
            在这里插入图片描述
      • 其他常用的 k k k值有5、20等

    • 与留出法类似,为减少因样本划分不同而引入的差别, k k k折交叉验证通常要随机使用不同的划分重复 p p p
      • 最终评估结果是这 p p p k k k折交叉验证结果的均值
      • 例如常见的有10次10折交叉验证
    • 交叉验证发的特例——留一法:
      • 假定数据集 D D D中包含 m m m个样本,若令 k = m k=m k=m,则为留一法
      • 留一法不受随机样本划分方式的影响
      • 留一法的训练集只比初始数据集少一个样本,绝大多数情况下,留一法的评估结果比较准确
      • 缺陷:数据集较大时,训练m个模型的计算开销太大,计算复杂度太高
    • 自助法
      • 留出法和交叉验证法都导致训练集比数据集小,会引入因训练样本规模不通过的估计偏差
      • 自助法以自助采样法为基础:
        • 给定包含 m m m个样本的数据集 D D D,对其采样产生数据集 D ′ D^{'} D
          • 每次随机从 D D D中挑选一个样本,将其拷贝放入 D ′ D^{'} D
          • 将该样本放回初始数据集 D D D,使得该样本下次采样时仍有可能被采到
          • 上述过程重复 m m m次后,得到包含m个样本的 D ′ D^{'} D
        • D D D中有一部分样本会在 D ′ D^{'} D中多次出现,而另一部分样本不出现
          • 样本在 m m m次采样中始终不被采到的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m 1m1)m,取极限得到
            lim ⁡ m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m \to \infty} (1-\frac{1}{m})^m=\frac{1}{e}\approx0.368 mlim1m1)m=e10.368
          • 即通过自助采样,有36.8%的样本未出现在采样数据集 D ′ D^{'} D
        • D ′ D^{'} D用作训练集, D \ D ′ D\backslash D^{'} D\D用作测试集
          • 实际评估模型与期望评估模型都使用 m m m个训练样本
          • 有数据总量约1/3的、没在训练集中出现的样本用于测试
          • 测试结果,称为“包外估计”
      • 自助法在数据集较小、难以有效划分训练/测试集时很有用
      • 自助法能从初始数据集中产生多个不同的训练集,对集成学习等方法有很大的好处
      • 缺点:产生的数据集改变了初始数据集的分布,会引入估计偏差
    • 调参与最终模型
      • 对每种参数配置都训练出模型,然后把对应最好模型的参数作为结果
      • 常用做法:每个参数选定一个范围和变化步长
        • 虽然选定的参数值往往不是最佳值,但是计算开销和性能估计之间的折中结果
  • 给定包含 m m m个样本的数据集 D D D,在模型评估与选择过程中由于需要留出一部分数据进行评估测试,只是用一部分数据训练模型。当学习算法和参数配置选定之后,应该用数据集 D D D重新训练模型,这才是最终提交给用户的模型
  • 测试数据:学得模型在实际使用中遇到的数据
  • 验证集:模型评估与选择过程中用于评估测试的数据集

3.性能度量

  • 模型的好坏是相对的,在对比不同模型的能力时,使用不同性能度量往往导致不同的评判结果
    • 什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求
  • 回归任务最常用的性能度量是均方误差
    E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_{i})^2 E(f;D)=m1i=1m(f(xi)yi)2
    • 更一般地,对于数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p(),均方误差可描述为:
      E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) E(f;D)=\int_{x\sim\mathcal{D}}(f(x)-y)^2p(x) E(f;D)=xD(f(x)y)2p(x)
  • 分类任务常用地性能度量
    • 错误率与精度
    • 查准率、查全率与F1
      • 分类结果混淆矩阵
        在这里插入图片描述

      • 查准率/准确率:
        P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP

      • 查全率/召回率:
        R = T P T P + F N R = \frac{TP}{TP+FN} R=TP+FNTP

      • 查准率和查全率是相互矛盾地度量,一般来说,一个高,另一个则低。通常只有一些简单任务重,才可能两者都很高

      • P-R曲线:以查准率为纵轴、查全率为横轴做的图

        • 一个学习器A的P-R曲线完全被另一个学习器B的曲线包住,则B的性能优于A
        • 若曲线发生交叉则难判断谁的性能更好
      • 平衡点(BEP):查准率=查全率时的取值

      • F1度量:
        F 1 = 2 × P × R P + R = 2 × T P 样例总数 + T P − T N F1 = \frac{2 \times P \times R}{P+R}=\frac{2\times TP}{样例总数+TP-TN} F1=P+R2×P×R=样例总数+TPTN2×TP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值