机器学习基础:基本概念、评估方法与性能度量

4155 字
21 分钟
机器学习基础:基本概念、评估方法与性能度量

机器学习不仅是选择一个算法并运行训练。真正完整的实验需要先明确任务、数据和假设,再决定如何划分数据、使用什么指标,以及怎样比较模型。

这篇笔记把《机器学习》第一章和第二章连在一起:第一章回答“机器学习在做什么”,第二章回答“怎样判断它做得好不好”。

学习路线#

  1. 理解样本、特征、标记、假设空间等基本概念。
  2. 认识独立同分布、未知分布和归纳偏好等基本假设。
  3. 区分监督学习、无监督学习等任务类型。
  4. 使用留出法、交叉验证法或自助法组织实验。
  5. 根据任务选择准确率、查准率、查全率、F1、ROC 或 AUC。
  6. 避免用测试集调参,并在比较结论中考虑统计波动。

机器学习的基本概念与假设#

这一部分建立后续章节需要的共同语言,并说明学习算法为什么必须带有归纳偏好。

本书的使用:#

第1章-绪论

计算学习理论#

概率近似正确(Probably Approximately Correct,PAC)描述的是一种学习保证:训练样本由未知分布随机抽取时,学习算法以至少 1δ1-\delta 的概率得到泛化误差足够小的模型。

一种常见的不可知 PAC 表述是:

PrSDm[RD(hS)infhHRD(h)+ϵ]1δ\Pr_{S\sim\mathcal{D}^{m}} \left[ R_{\mathcal{D}}(h_S) \leq \inf_{h\in\mathcal{H}}R_{\mathcal{D}}(h)+\epsilon \right] \geq 1-\delta

其中,SS 是从分布 D\mathcal D 独立抽取的训练集,hSh_S 是算法根据 SS 学到的模型,RD(h)R_{\mathcal D}(h) 是模型在真实分布上的风险。

ϵ\epsilon 表示允许的误差裕量,δ\delta 表示学习保证失败的概率。公式中的概率来自训练集的随机抽取,而不是“取得某个模型”的概率。

PAC 讨论的是样本复杂度和泛化保证,不能由 ϵ=0\epsilon=0δ=0\delta=0 推导出 P 与 NP 的关系。通常只要求二者为足够小的正数。

术语名词#

1.示例 = 特征向量,样本

  • 名词解释:即对某个事件或者对象的 全局 描述
  • 构成元素:多组(特征:特征值)
  • 样本 要根据上下文来判断含义

2.特征 = 属性

  • 名词解释:即对某个事件或对象的一个 具体 特征的描述

3.样本空间 = 属性空间 = 输入空间

  • 名词解释:即特征张成的空间,空间中每个点对应一个特征向量即样本

4.数据集、训练集、验证集与测试集

  • 训练集用于拟合模型参数。
  • 验证集用于选择模型和超参数。
  • 测试集只用于最终评估,不能参与调参。

一个包含 mm 个样本的数据集可表示为:

D={x1,x2,,xm}D=\left\{\boldsymbol{x}_1,\boldsymbol{x}_2,\ldots,\boldsymbol{x}_m\right\}

若每个样本包含 dd 个特征,则 xiRd\boldsymbol x_i\in\mathbb R^d。实际划分比例应根据样本量与任务决定,并不存在固定的“二八分”规则。

5.样例,标记,标记空间

  • 样例=样本+标记

标记:即想预测的结果的 实际信息,比如想预测瓜的好坏,实际样本中的信息为”好瓜”/“坏瓜”,

一般表示为:

(xi,yi)(\boldsymbol{x}_i,y_i)

标记空间 or 输出空间:所有标记的集合

6.假设空间,版本空间

假设:学得模型关于数据的潜在规律
真实or真相:潜在规律本身
假设空间:所有假设构成的集合
版本空间:与训练集一致的假设构成的集合,由一个或多个假设空间的子集构成

基本假设#

我们知道训练出的模型是为了对未知数据进行结果预测

但是为什么模型可以对未知数据进行预测呢?

这里我们引出了机器学习的基本假设。

1.未知分布D#

通常假设样本空间中全体样本服从一个未知“分布” D

此处的“分布”指的是概率论中的概率分布

我们假设数据(包括 源数据集 和 未知数据)背后满足某种规律,

即数据的采样来自一个未知的、潜在的 分布D

2.独立同分布(i.i.d)#

我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(简称i.i.d)

或者说 所有样本都是独立同分布的

一般而言,训练样本越多,我们得到的关于D的信息也越多

3.一些思考#

在现实生活中,大多数样本之间不是独立同分布的,而是相互影响的。

比如说:在淘宝上 买衣服的人 和 买裤子的人,它们之间可能来自不同的分布,可能买衣服的人推荐买裤子的人来淘宝购物。

所以现在在机器学习的前沿领域,

如何突破独立同分布的限制 是一个重大课题

归纳偏好#

归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设

对假设空间 筛选 后所得到的 版本空间中 可能有多个假设 这些假设都能够匹配训练集中的训练样本

而如何对版本空间中的假设进行选择呢?🤔

这里引入一个原则or方法论:

奥卡姆剃刀

若非必要勿增实体

选取多个假设中最简单的。

但是其实感觉没啥用,因为”简单“的定义难以量化。

一个“随机乱猜”的算法有可能优于精心选择的算法

“没有免费的午餐”(NFL)定理:

任意算法的“训练集外误差”相等,即不同算法的误差期望相同,无绝对意义上的更优算法。

所以 不能摆脱具体问题 谈论算法的优劣

实际上:还是看测试集再模型上的效果,以及结合特定领域的需求对模型进行选择

机器学习分类#

1.监督学习-有导师学习#

样本有标记

1.1 分类问题-预测 离散值

  • 二分类-正类/负类(反类)

    一般取值0/1,文本可通过 特征工程 转换为数值型变量

    一般假设正类和负类是可交换的

  • 多分类 涉及 多类别 的预测输出

    可以转换成二分类问题

1.2 回归问题-预测 连续值

预测结果 ∈ R
2.非监督学习-无导师学习#

样本无标记

2.1 聚类算法

  • 离散型变量的分类、分组别

  • 连续型变量的统计个数,进行密度估计

    了解数据内在规律

2.2 降维算法

  • 如PCA主成分分析等

机器学习的发展#

  • 符号主义:源于数学逻辑,产生明确的概念表示

    符号主义认为人工智能源于数理逻辑后来又发展了 启发式算法>专家系统>知识工程理论与技术

    主要方向:决策树 和 基于逻辑的学习

    决策树->模拟人类对概念的判定树形过程
    基于逻辑的学习-->典型代表:归纳逻辑程序设计(ILP)
  • 连接主义:基于神经网络

    算法复杂度高,假设空间大,且参数设置缺乏理论指导

    经典代表:BP反向传播算法

  • 统计学习:支持向量机(SVM),核方法

    与连接主义关系密切

  • 深度学习:早期连接主义的衍生,基于神经网络,现阶段很流行

模型评估、性能度量与比较#

有了学习任务和假设之后,需要设计可靠的实验。数据划分方式与评价指标会直接影响最终结论。

术语名词#

1.泛化误差与经验误差

泛化误差:在“未来”样本上的误差

经验误差:在训练集上的误差,亦称“训练误差”

训练集样本数越接近数据集数量,经验误差就越小。 但是经验误差越小,模型效果就越好吗?

请注意,我们是为了得到泛化能力强的模型,而经验误差≠泛化误差

经验误差很小,会使模型学习到训练样本中的许多无用特征,导致泛化能力变弱 我们称其为过拟合(overfitting)

而与之相对的概念,我们称为欠拟合(underfitting),其表示的就是模型没有很好的学习到训练样本上的特征,从而也导致泛化能力变弱

2.过拟合与欠拟合

过拟合:模型在训练数据上表现得过于复杂,以至于在未见过的数据上表现不佳。 欠拟合:模型在训练数据上表现得过于简单,无法捕捉到数据的内在结构和模式。

出现原因: 1.出现欠拟合的情况,一般是由于样本特征少模型复杂度低

2.出现过拟合的情况,一般是由于样本数量少、噪声多模型复杂度过高

经验误差就是训练程度的体现,经验误差越小则训练程度越强 所以现在,我们可以得出训练程度不能过大也不能过小的结论

那我们能找到一个最佳方案得出最佳的训练程度吗🤔

答案是--------------->不能🙅

原因是: 对于千禧年七大数学问题之——“P=NP”问题,只要我们相信”P≠NP”,就无法找出最优解

但是我们依然有相应的解决方法,用于欠拟合与过拟合的问题 此处的解决方法我们留待以后解决…

好了,回归本章主题—模型评估与选择

对于模型的选择,我们有三个关键问题

如何获得测试集?------>评估方法

如何评价性能优劣?------>性能度量

如何判断模型实质差别------>比较检验

1.评估方法#

因为我们无法得知未来数据的输出标记 故而需要得到测试集用来评估模型

而测试集有多种划分方法,这里我们给出以下三种

1.1 留出法(hold-out):#

将数据集直接划分为训练集和测试集

留出法:对数据集的划分方法会影响模型结果;训练集和测试集的数据分布必须保持一致;测试集过大会使模型拟合效果变差,太小会使得测试估计偏小;有一些数据可能从未被训练过

总结

  1. 保证数据分布一致性(比如分层取样)
  2. 多次重复划分 (例如: 100次随机划分)
  3. 测试集不能太大或太小(例如:1/5~1/3,其实二八分偏多)
  4. 可能遗漏数据(随机划分没取到该数据进行训练)

1.2 交叉验证法#

对于 留出法出现 可能遗漏数据(随机划分没取到该数据进行训练)的问题

我们引入新的划分方法 k-折交叉验证法 可以有效解决该问题

以该图为例:

首先将数据集D随机划分为10个子集, 进行十次操作, 每一次取其中1个子集为测试集,其余为训练集(实际也可以选取多个子集为测试集) 将结果做平均处理

而对于再划分子集的阶段,将测试集中只留有一个数据的方法叫做留一法 留一法每次只留一个样本用于验证,因此单次训练集与原始数据集非常接近。它的数据利用率高,但需要训练 mm 次,计算成本较高;不同训练集高度重叠,评估结果也可能具有较高方差。

优缺点

kk 折交叉验证中,每个样本会恰好作为一次验证样本,并在其余 k1k-1 折中参与训练。较大的 kk 能提高训练数据利用率,但会显著增加计算成本。

划分时仍要遵守数据的独立结构。例如,同一用户、同一时间序列或同一实体的相关样本不应随意分到训练折和验证折,否则可能产生数据泄漏。

1.3 自助法#

“自助法”(bootstrapping) 基于放回取样 亦称“可重复采样”

从含有 mm 个样本的原始数据集中进行 mm 次有放回抽样,可以得到一个大小仍为 mm 的训练集,但其中会包含重复样本。

某个原始样本在一次抽样中未被选中的概率为 11/m1-1/m,在 mm 次抽样后仍未被选中的概率为:

limm(11m)m=1e0.368\lim_{m\to\infty} \left(1-\frac{1}{m}\right)^m =\frac{1}{e} \approx 0.368

因此,约有 36.8%36.8\% 的原始样本不会进入本次自助训练集,可作为包外样本(out-of-bag samples)进行评估;进入训练集的不同原始样本约占 63.2%63.2\%

优缺点

优点: 自助法在数据集较小、难以有效划分训练/测试集时很有用, 自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。

缺点: 自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。但是通过增加数据划分的次数,就可以缓解该影响。

1.4 调参与验证集#

在模型评估与选择的过程中,我们既要选择学习算法,还要对算法的参数进行设定

训练过程中的参数分为两种

  • 算法参数:亦称“超参数”,由人工设定
  • 模型参数:由训练集训练而成

1.5 重新训练#

模型选择和调参完成后,可以合并训练集与验证集重新训练最终模型,再使用此前从未参与训练和调参的测试集进行一次独立评估。

测试集不是用来选择算法或参数的。如果把测试集也用于重新训练,就不能再用同一测试集报告无偏的泛化性能。部署前确实可以使用全部已有数据训练,但之后应准备新的独立数据进行评估。

2.性能度量#

2.1 错误率和精度#

错误率定义:

E(f;D)=1mi=1mI ⁣(f(xi)yi)E(f;D) = \frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\!\left(f(\boldsymbol{x}_i)\neq y_i\right)

精度定义:

acc(f;D)=1mi=1mI ⁣(f(xi)=yi)=1E(f;D)\begin{aligned} \operatorname{acc}(f;D) &= \frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\!\left(f(\boldsymbol{x}_i)=y_i\right) \\ &=1-E(f;D) \end{aligned}

然而对于不同的任务需求,仅仅用错误率和精度是不够的,故引出查准率、查全率、F1的概念

2.2 查准率、查全率、F1#

二分类任务:#
现有一瓜田含10000个瓜,其中有100个好瓜,利用学习器挑瓜
  • 查准率或精确率(precision):挑出的瓜中好瓜所占的比例。
  • 查全率或召回率(recall):所有好瓜中被成功挑出的比例。
  • F1-score:查准率与查全率的调和平均。

注意,precision 不是 accuracy。accuracy 表示全部样本中预测正确的比例。

在选瓜任务中我们的目标是:

  1. 在挑出来的瓜中尽可能都是好瓜
  2. 瓜田中的好瓜尽可能多地被挑出来 很直观的可以感受到查全率越大(如挑出越多的瓜,好瓜被挑出的比例也就越大),查准率就会越低

混淆矩阵

其中查准率P和查全率R的定义为:

P=TPTP+FPP=\frac{TP}{TP+FP}R=TPTP+FNR=\frac{TP}{TP+FN}

F1即综合考虑两者效果:

F1=2PRP+RF_1 = \frac{2PR}{P+R}

等价地:

1F1=12(1P+1R)\frac{1}{F_1} = \frac{1}{2} \left(\frac{1}{P}+\frac{1}{R}\right)
多分类任务:#

2.3 ROC与AUC#

3.比较检验#

从任务到结论的基本流程#

一个较规范的机器学习实验可以按以下顺序进行:

  1. 定义输入、输出和业务目标。
  2. 明确数据来源及其分布假设。
  3. 划分训练集、验证集和测试集。
  4. 只使用验证集选择模型与超参数。
  5. 根据错误代价选择合适的性能指标。
  6. 最后一次使用测试集报告泛化性能。
  7. 比较多个模型时说明随机种子、方差和统计检验方法。

总结#

第一章提供机器学习的概念框架,第二章提供验证结论的实验框架。只有把“学习什么”和“如何评价”连接起来,模型结果才具有可解释性和可复现性。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

机器学习基础:基本概念、评估方法与性能度量
https://hp-patience.github.io/posts/machine-learning-foundations-and-evaluation/
作者
Celyn
发布于
2024-05-15
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Profile Image of the Author
Celyn
记录 AI、前后端与编程技术学习,用费曼学习法把知识讲清楚。
公告
欢迎来到 Celyn 的博客!专注于AI大模型、深度学习与编程技术分享。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
20
分类
13
标签
53
总字数
53,589
运行时长
0
最后活动
0 天前

文章目录