机器学习笔记 (:西瓜书 By 周志华 (未完 占坑)

重点

  • 特征
  • 模型
  • 策略

第一章 绪论

1.1 基本术语

  • 分类(classification)预测值为离散型,当只有两个类别时,则相对于“多分类”(multi-class classification)称之为“二分类”(binary classification),通常称其中一个类为“正类”(positive class),另一个类为“反类”(negative class)。

  • 回归(regression)预测的是连续值,例如西瓜的成熟度0.95、0.37...。

  • 聚类(clustering): 对训练的数据集分成若干组,每组称为一个“簇”(cluster),这些自动形成的簇可能对于一些潜在的、非人为标注的概念划分。这样的学习有助于我了解数据的内在规律。

  • 监督学习(supervised learning) 和 无监督学习(unsupervised learning): 根据训练数据是否拥有标记信息,学习任务可大致划分为该两大类。其中分类和回归是前者的代表,而聚类则是后者的代表。

  • 泛化(generalization)学得模型适用于新样本的能力,称为泛化能力。

1.2 假设空间

  • 版本空间(version space): 学习过程是基于有限样本训练集进行的,因此可能存在多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,就称之为“版本空间”。

1.3 归纳偏好

  • 归纳偏好(inductive bias): 机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”,简称“偏好”。任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果。在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好于问题是否相匹配,往往起决定性的作用。

  • 奥卡姆剃刀(Occam's razor): 一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”。

第二章 模型评估与选择

2.1 经验误差与过拟合

  • 训练误差(training error)或经验误差(empirical error): 学习器在训练集上的误差。

  • 泛化误差(generalization error): 在新样本上的误差。

  • 过拟合(overfitting): 当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本中自身的一些特点当作了所有潜在样本都会具有的一般性质,这种导致泛化性能下降的现象称为过拟合。过拟合是无法彻底避免的,所能做到的只是“缓解”,或者说减小其风险。

  • 欠拟合(underfitting): 相对于过拟合现象,指对训练样本的一般性质尚未学好。欠拟合通常是由于学习能力低下而造成的,则比较容易克服

    扫描二维码关注公众号,回复: 13165406 查看本文章

2.2 评估方法

  • 留出法(hold-out)直接将数据集D划分为两个互斥的集合,一个集合为训练集S,另一个作为测试集T。但由于训练集划分部分给了测试集,导致训练集的缩小使得降低了评估结果的保真性(fidelity)。常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。

  • 交叉验证法(cross validation)将数据集划分成k个大小相似的互斥子集,遍历训练k次,每次使用k-1组子集的并集作为训练集,余下的那个子集作为测试集;最终返回的是这k个测试结果的均值。交叉验证法评估结果的稳定性喝保真性在很大程度上取决于k的取值,所以为强调这一点,通常把交叉验证法又称为“k折交叉验证”(k-fold cross validation)。当k=样本数目时,则得到交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO)。留一法使用的训练集与初试数据集相比只少了一个样本,因此评估结果往往被认为比较准确,但当数据集比较大时,训练m个模型的计算开销可能是难以忍受的。

  • 自助法(bootstrapping)从包含m个数据集D中自助有放回的采样m次,生成数据集D'用作训练集。自助法在数据集较小、难以有效划分训练/测试集时很有用。

  • 调参(parameter tuning)与最终模型: 在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的“参数调节”或简称“调参”。现实中常用的做法是对每一个参数选定一个范围和变化步长,例如在[0, 0.2]范围内以0.05为步长,则实际要评估的候选参数值有5个。

2.3 性能度量

对学习器的泛化性能进行评估,不仅需要有可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure)

  • 错误率: 错误率是分类错误的样本数占样本总数的比例。

  • 精度: 精度则是分类正确的样本数占样本总数的比例。

  • 查准率(precision)与查全率(recall)与: 查准率可理解为“检索出的信息中有多少比例是用户感兴趣的”。查全率为“用户感兴趣的信息中有多少被检索出来了”。若希望查准率高,则会刻意提高挑选时的把握,导致部分范围内的选项漏过,使得查全率低;若希望查全率高,则会尽量把所有可能选项都选上,导致部分非优项也被包括,使得查准率低。所以查准率和查全率是一对矛盾的度量

  • F1度量: 基于查准率与查全率的调和平均定义的。F1是 F β = ( ( 1 + β 2 ) P R ) / ( ( β 2 P ) + R ) Fβ=((1+β^2)*P*R) / ((β^2 * P) + R) 当β=1时的特殊情况,此时查全率与查准率的相对重要性相同;对于加权平均调和 F β ,当β>1时查全率有更大影响;当β<1时查准率有更大影响。

2.4 比较检验

  • 假设检验(hypothesis test): 根据测试错误率估推出泛化错误率的分布。关于单个学习器泛化性能的假设进行检验。

  • 交叉验证t检验: 基本思想是若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同。所以分别对两个学习器用k折交叉验证法得到两A、B组测试错误率,然后通过以下公式计算,当小于临界值tα/2,k-1,则假设不能被拒绝,即认为两个学习器没有显著差别;反之则认为有显著差别,且平均错误率低的那个学习器性能较优。这里tα/2,k-1是自由度为k-1的t分布上尾部累积分布为α/2的临界值。

T t = ( k ) μ / σ Tt = |(√k) * μ / σ|
  • 5x2交叉验证: 对于交叉验证t检验,欲进行有效的假设检验,一个重要的前提是测试错误率均为泛化错误率的独立采样,然而通常情况下由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练会有一定程度的重叠,这就使得测试错误率实际上并不独立,会导致过高估计假设成立的概率。为缓解这一问题,可采用“5x2交叉验证”法。即做5次2折交叉验证,在每次2折交叉验证之前随机将数据打乱,使得5次交叉验证中的数据划分不重复。

  • McNemar检验: 对二分类问题,通过留出法不仅可以估计出学习器A和B的测试错误率,还可获得两学习器分类结果的差别。若假设两学习器性能相同,则两学习器检错样本数应该相等即 e ₀₁ e ₁₀ |e₀₁ - e₁₀| ,且差的绝对值即 e ₀₁ e ₁₀ |e₀₁ - e₁₀| 服从正态分布。McNemar检验考虑变量Tχ₂,公式如下,服从自由度为1的χ²分布,即标准正态分布变量的平方。给定显著α,当以上变量值小于临界值χα²时,不能拒绝假设,即认为两学习器的性能没有显著差别;否则拒绝假设,认为两者性能有显著差别,且平均错误率较小的那个学习器性能较优。

T χ = ( e ₀₁ e ₁₀ 1 ) ² / ( e ₀₁ + e ₁₀ ) Tχ₂ = (|e₀₁ - e₁₀| - 1)² / (e₀₁ + e₁₀)
  • Friedman检验: 相比于交叉验证t检验与McNemar检验都是在一个数据集上比较两个算法的性能,该方法适用于更多时候我们需在一组数据集上对多个算法进行比较。Friedman检验通过对比Tχ²或更常用的是τF,公式如下,τF检验的常用临界值查表。若“所有算法的性能相同”这个假设被拒绝,则说明算法的性能显著不同,这时需要进行“后续检验”(post-hoc test)来进一步区分各算法。常用的则有Nemenyi后续检验。
T χ ² = ( k 1 ) / k 12 N / k ² 1 ( 1 > k ) ( r i ( k + 1 ) / 2 ) ² Tχ² = (k - 1) / k * 12N / (k² - 1)∑(1->k)(ri - (k + 1)/2)²
= 12 N / ( k ( k + 1 ) ) ( ( 1 > k ) ( r i ) ² ( ( k ( k + 1 ) ² ) / 4 ) ) = 12N/(k(k+1))(∑(1->k)(ri)² - ((k(k+1)²)/4))
  • Nemenyi后续检验: 计算出平均序值差别的临界值域CD。qɑ公式如下,常用取值查表。
C D = q ɑ (√ k ( k + 1 ) / 6 N ) CD = qɑ * (√k(k+1)/6N)

2.5 偏差与方差

  • 偏差: 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。

  • 方差: 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。

  • 噪声: 噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

  • 偏差-方差分解(bias-variance decomposition): 人们往往还希望了解学习器“为什么”具有这样的性能,偏差-方差分解是解释学习算法泛化性能的一种重要工具。泛化误差可分解为偏差、方差和噪声之和。偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务时,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

  • 偏差-方差窘境(bias-variance dilemma): 一般来说偏差和方差是有冲突的,这称为偏差-方差窘境。给定学习任务时,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率随训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学习到,方差逐渐主导了泛化错误率;在训练充足后,学习器的拟合能力非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习到了,则将发生过拟合

第三章 线性模型

3.1 基本形式

线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即 f ( x ) = ω ₁х₁ + ω ₂х₂ + . . . + ω d х d + b f(x) = ω₁х₁ + ω₂х₂ + ... + ωdхd + b 一般用向量形式写成 f ( x ) = ω Тх + b f(x) = ωТх + b 线性模型形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想。许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。

3.2 线性回归

  • 线性回归(linear regression): 试图学得一个线性模型以尽可能准确地预测实值输出标记。通过给定数据集D={(х₁, y₁), (x₂, y₂), ..., (xm, ym)},其中xi=(xi₁; xi₂; ...; xid),并通过一般公式学得 f ( x i ) = ω х i + b f(xi) = ωхi + b ,令f(xi)≌yi,即学习器的推断值近似等于预测值,从中我们确定学习器w和b的规则。而w和b通过试图让均方误差最小化来衡量,即通过对以下公式①分别对ω与b的求导得公式②和③,令其为0求得ω及b的最优解的闭式。
( ω , b ) = a r g m i n ( ω , b ) ( 1 > m ) ( f ( x i ) y i ) ² (ω*, b*) = arg min(ω, b) ∑(1->m) (f(xi) - yi)²
= a r g m i n ( ω , b ) ( 1 > m ) ( y i ω x i b ) ² = arg min(ω, b) ∑(1->m) (yi - ωxi - b)² …… ①
-
ð E ( ω , b ) / ð ω = 2 ( ω ( 1 > m ) ( x i ) ² ( 1 > m ) ( y i b ) x i ) ðE(ω, b)/ðω = 2(ω∑(1->m)(xi)² - ∑(1->m)(yi - b)xi) …… ②
-
ð E ( ω , b ) / ð b = 2 ( m b ( 1 > m ) ( y i ω x i ) ) ðE(ω, b)/ðb = 2(mb - ∑(1->m)(yi - ωxi)) …… ③
-
ω = ( 1 > m ) y i ( x i ( 1 / m ) ( ( 1 > m ) x i ) ) / ( 1 > m ) x i ² ( 1 / m ) ( ( 1 > m ) x i ) ² ω = ∑(1->m)yi(xi - (1/m)(∑(1->m)xi)) / ∑(1->m)xi² - (1/m)(∑(1->m)xi)²
-
b = ( 1 / m ) ( 1 > m ) ( y i ω x i ) b = (1/m)∑(1->m)(yi - ωxi)
  • 多元线性回归(multivariate linear regression): 更一般的情形是当开头的数据集D,样本由d个属性描述。此时试图学得 f ( x i ) = ω T х i + b f(xi) = ωTхi + b ,使得f(xi)≌yi。这称为“多元线性回归”。

3.3 对数几率回归

3.4 线性判别分析

3.5 多分类学习

3.6 类别不平衡问题

猜你喜欢

转载自juejin.im/post/7016981725095919623