绪论(p1-p2) author:run

绪论

基本术语

  • 数据集(data set):记录的集合

记录是关于一 个事件或对象(这里是一个西瓜)的描述,称 为 一 个 “示例”(instance)或 “样 本 " (sample)

反映事件或对象在某方面的表现或性质的事项,例 如 “色泽” “根蒂” “敲 声 " 称 为 “属 性 "(attribute)或 “特征”(feature);

属性上的取 值,例 如 “青绿” " 乌 黑 " 称 为 “属性值”时 (attribute value)

属性张成的空 间 称为“属性空间" (attribute space)、 “样本空间”(sample space)或 “输入 空间”

样本有几个属性(特征),则空间就有几个维度;
一个示例也称为一个“特征向量”(feature vector)

一般地,令 D = { x 1 , x 2 , … , x m } D=\{\pmb{x_1},\pmb{x_2},\dots,\pmb{x_m}\} D={x1x1x1,x2x2x2,,xmxmxm}表示包含 m m m个示例的数据集,每个示例由 d d d个属性描述,则每个示例 x i = ( x i 1 ; x i 2 ; …   ; x i d ) \pmb{x_i}=(x_{i1};x_{i2};\dots;x_{id}) xixixi=(xi1;xi2;;xid) d d d维样本空间 d d d样本空间 χ \chi χ中的一个向量, x i ∈ χ \pmb{x_i}\in\chi xixixiχ,其中 x i j x_{ij} xij x i \pmb{x_{i}} xixixi在第 j j j个属性上的取值, d d d称为样本 x i \pmb{x_{i}} xixixi的 “维 数 "(dimensionality)

从数据中学得模型的过程称为“学习”(learning)或 “训练”(training), 这个过程通过执行某个学习算法来完成.训练过程中使用的数据称为“训练 数 据 “(training data), 其中每个样本称为一个“训练样本” (training sample), 训练样本组成的集合称为“训 练 集 "(training set). 学得模型对应了关于数据 的某种潜在的规律,因此亦称“假 设 "(hypothesis); 这种潜在规律自身,则称 为 “真相”或 “真实”(ground-truth), 学习过程就是为了找出或逼近真相.本书有时将模型称为“学习器”(learner), 可看作学习算法在给定数据和参数空间上的实例化.

示例结果的信息称 为 “标 记" (label); 拥有了标记信息的示例,则 称 为 “样 例 "(example).一般地,用 ( x i , y i ) (\pmb{x_i},y_i) (xixixi,yi)表示第 i i i个样例,其中 y i ∈ γ y_i\in\gamma yiγ是示例 x i \pmb{x_{i}} xixixi的标记, γ \gamma γ是所有标记的集合, 亦 称 “标记空间”(label space)或 “输出空间”.

若我们欲预测的是离散值,例 如 “好瓜” “坏瓜”,此类学习任务称为 “分 类 " (classification);若欲预测的是连续值,例如西瓜成熟度0.95、0.37, 此 类 学 习 任 务 称 为 “回归”(regression ).对 只 涉 及 两 个 类 别 的 “二分 类" (binary classifcation)任务,通常称其中一个类为“正类”(positive class), 另 一 个 类 为 “反 类 ”(negative c la ss);涉 及 多 个 类 别 时 ,则 称 为 “多分 类 " (multi-class classification)任 务 一 般地 ,预测任务是希望通过对训练集 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } \{(\pmb{x_1},y_1),(\pmb{x_2},y_2),\dots,(\pmb{x_m},y_m)\} {(x1x1x1,y1),(x2x2x2,y2),,(xmxmxm,ym)}进行学习,建立一个从输入空间 χ \chi χ到输出空间 γ \gamma γ的映射 f : χ ↦ γ f:\chi \mapsto \gamma f:χγ.对二分类任务,通常令 γ = { − 1 , + 1 } \gamma=\{-1,+1\} γ={1,+1} { 0 , 1 } \{0,1\} {0,1};对多分类任务, ∣ γ ∣ |\gamma| γ>2;对回归任务, γ = R \gamma= \R γ=R, R \R R为实数集.

学得模型后,使用其进行预测的过程称为“测试”(testing),被预测的样本 称 为 “测试样本”(testing sample).例如在学得 f f f后,对测试例 x \pmb{x} xxx,可得到其预测标记 y = f ( x ) y=f(\pmb{x}) y=f(xxx).

我们还可以对西瓜做“聚 类 " (clustering),即将训练集中的西瓜分成若干组,每组称为一个“簇”(cluster);这些自动形成的簇可能对应一些潜在的概念 划分,例 如 “浅色瓜” “深 色 瓜 "甚 至 “本地瓜” “外地瓜”.这样的学习过 程有助于我们了解数据内在的规律,能为更深入地分析数据建立基础.需说明的是,在聚类学习中,“浅色瓜” “本地瓜”这样的概念我们事先是不知道的, 而且学习过程中使用的训练样本通常不拥有标记信息. 根据训练数据是否拥有标记信息,学习任务可大致划分为两大类: “监督 学习“(supervised learning)和 “无 监 督 学 习 "(unsupervised learning),分类和回归是前者的代表,而聚类则是后者的代表.

学得模型适用于新样本的能力,称 为 “泛 化 " (generalization)能力.具有强泛化能力的模型能很好地适用于整个样本空间.

通常假设样本空间中全体样本服从一个未知“分布 " (distribution ) D \mathcal{D} D我们获得的每个样本都是独立地从这个分布上采样获得的,即 “独立同分布" (independent and identically distributed,简 称 i . i . d i.i.d i.i.d ).一 般 而 言 ,训练样本越多,我们得到的关于 D \mathcal{D} D 的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型.

假设空间

归纳(induction)与演绎(deduction)是科学推理的两大基本手段.前者是从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性规 律;后者则是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况.例如,在数学公理系统中,基于一组公理和推理规则推导出与之相洽的定理,这是演绎;而 “从样例中学习”显然是一个归纳的过程,因此亦称 “归纳学习 ”(inductive learning).

把学习过程看作一个在所有假设(hypothesis)组成的空间中进行 搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设,即能够将训练集中 的瓜判断正确的假设.假设的表示一旦确定,假设空间及其规模大小就确定了. 这里我们的假设空间由形如“(色泽= ?)^(根蒂= ?)^(敲声= ?)" 的可能取值所形成的假设组成.

基础样本的所有可能的假设组成假设空间,假设即训练的函数模型,假设空间是基于数据理论上科能出现的模型的集合

归纳偏好

机器学习 算法在学习过程中对某种类型假设的偏好,称为 “归纳偏好”(inductive bias), 或简称为“偏好”.

归纳偏好与特征选择有关

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进 行选择的启发式或“价值观”.那 么 ,有没有一般性的原则来引导算法确立 “正确的”偏好呢? “奥卡姆剃刀" (Occam’s razor)是一种常用的、 自然科学研究中最基本的原则,即 “若有多个假设与观察一致,则选最简单的那个”.

  • “没有免费的午餐”定理 (No Free Lunch Theorem,简称NFL )

NFL定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好.要谈论算法的相对优劣,必须要针对具体的学习问题;在 某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法 自身的归纳偏好与问题是否相配,往往会起到决定性的作用

模型评估与选择

经验误差与过拟合

我们把分类错误的样本数占样本总数的比例称为“错误率”(error r ate ),即如果在 m m m个样本中有 a a a个样本分类错误,则错误率 E = a / m E= a /m E=a/m;相应的, 1 − a / m 1-a /m 1a/m 称 为 “精度”(accuracy),即 “精度 = 1 − =1- =1错误率”.更一般地,我们把 学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error), 学 习 器 在 训 练 集 上 的 误 差 称 为 “训练误 差 ”(training error)或 “经验误差”(empirical error),在 新 样 本 上 的 误 差 称 为 “泛化误差”(generalization error)

当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都 会具有的一般性质,这样就会导致泛化性能下降.这种现象在机器学习中称为 “过拟合" (overfitting).与 “过拟合”相对的是“欠拟合" (imderRtting),这 是指对训练样本的一般性质尚未学好

评估方法

通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选 择.为此 需使用一个“测试集”(testing set)来测试学习器对新样本的判别能 力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似.通常 我们假设测试样本也是从样本真实分布中独立同分布采样而得.但需注意的 是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过.

评价模型好坏的指标:测试集的误差
  • 留出法

“留出法”(hold-out)直接将数据集 D D D划分为两个互斥的集合,其中一个 集合作为训练集 S S S ,另一个作为测试集 T T T , 即 D = S ∪ T , S ∩ T = ∅ D= S \cup T, S \cap T = \varnothing D=ST,ST= .在 S S S 上训练出模型后,用 T T T来评估其测试误差,作为对泛化误差的估计.

需注意的是,训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保持样本的类别比例相似.如果从采样(sampling)的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分 层 采 样 "(stratified sampling )

另一个需注意的问题是,即便在给定训练/测试集的样本比例后,仍存在多 种划分方式对初始数据集 D D D进行分割.单次使用留出法得到的估计结果往往不够稳定可靠,在 使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作 为留出法的评估结果.

  • 交叉验证法

“交叉验证法”(cross validation)先将数据集 D D D划 分 为 k k k个大小相似的 互斥子集,即 D = D 1 ∪ D 2 ∪ ⋯ ∪ D k , D i ∩ D j = ∅   ( i ≠ j ) . D=D_1 \cup D_2 \cup \dots \cup D_k,D_i\cap D_j=\varnothing \ (i\neq j). D=D1D2Dk,DiDj= (i=j).每个子集 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-fold cross validation), k k k最常用的取值是 10 10 10 ,此时称为10 折交叉验证;其他常用的 k k k 值 有 5、20$等 .图 2 .2给出了 $ 10 10 10折交叉验证的示意图.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wpgNvspb-1668429324773)(C:\Users\lita\AppData\Roaming\Typora\typora-user-images\image-20221114152514927.png)]

与留出法相似,将数据集 D D D划 分 为 k k k 个子集同样存在多种划分方式.为减小因样本划分不同而引入的差别, k k k 折交叉验证通常要随机使用不同的划分 重复 p p p次,最终的评估结果是这 p p p k k k折交叉验证结果的均值,例如常见的有 “ 10 次10折交叉验证”.

假定数据集$D 中 包 含 中包含 m 个 样 本 , 若 令 个样本,若 令 k=m$,则得到了交叉验证法的一个特例:留一法(Leave-One-Out,简 称 LOO )

  • 自助法

“自助法”(bootstrapping)它直接以自助采样法(bootstrap sampling)为基础[Efron and Tibshirani, 1993].给定包含 m m m 个样本的数据集 D D D,我 们 对 它 进 行 采 样 产 生 数 据 集 D ′ D' D: 每 次 随 机 从 D D D中挑选一个样本,将其拷贝放入 D ′ D' D ,然后再将该样本放回初始数据集 D D D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行 m m 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 , \mathop{\lim}_{m\mapsto\infty}(1-\frac{1}{m})^m \mapsto \frac{1}{e} \approx 0.368, limm(1m1)me10.368,
即通过自助采样,初始数据集 D D D 中约有 36.8 % 36.8\% 36.8%的样本未出现在采样数据集 D ′ D' D 中.于是我们可将 D ′ D' D用作训练集, D ∖ D ′ D\setminus D' DD 用作测试集;这样,实际评估的模型与 期望评估的模型都使用馆个训练样本,而我们仍有数据总量约 1 / 3 1 /3 1/3的、没在训 练集中出现的样本用于测试.这样的测试结果,亦称 “包外估计”(out-of-bag estimate).

自助法在数据集较小、难以有效划分训练/测试集时很有用;此外,自助法 能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处. 然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差.因此,在初始数据量足够时,留出法和交叉验证法更常用一些.

  • 调参与最终模型

给定包含 m m m个样本的数据集 D D D,在模型评估与选择过程中由于需要留出 一部分数据进行评估测试,事实上我们只使用了一部.分数据训练模型.因此,在 模型选择完成后,学习算法和参数配置已选定,此时应该用数据集 D D D重新训练 模型.这个模型在训练过程中使用了所有 m m m个样本,这才是我们最终提交给用户的模型.

把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验 证 集 " (validation set).例如,在研究对比不同算法的泛化性能时,我们用测试 集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参.

训练模型用到训练集、验证集,模型实验应用遇到的是测试集

性能度量:衡量模型泛化能力的评价标准

  • 错误率与精度

  • 查准率

查准率P和查全率R
P:判断为正例的正确律
R:正确分类中正例的比例
  • 代价敏感错误率与代价曲线

比较检验

  • 假设检验
单个学习器泛化性能的假设检验:验证集误差能否代替泛化误差
  • 交叉验证 t t t检验
两个学习器性能的假设检验:性能是否相同
  • McNemar检验
两个学习器性能的假设检验:性能是否相同 卡方检验
  • Friedman检 验 与 Nemenyi后续检验
多个算法的性能比较
  • 偏差与方差
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值