机器学习基础:基本概念、评估方法与性能度量
机器学习不仅是选择一个算法并运行训练。真正完整的实验需要先明确任务、数据和假设,再决定如何划分数据、使用什么指标,以及怎样比较模型。
这篇笔记把《机器学习》第一章和第二章连在一起:第一章回答“机器学习在做什么”,第二章回答“怎样判断它做得好不好”。
学习路线
- 理解样本、特征、标记、假设空间等基本概念。
- 认识独立同分布、未知分布和归纳偏好等基本假设。
- 区分监督学习、无监督学习等任务类型。
- 使用留出法、交叉验证法或自助法组织实验。
- 根据任务选择准确率、查准率、查全率、F1、ROC 或 AUC。
- 避免用测试集调参,并在比较结论中考虑统计波动。
机器学习的基本概念与假设
这一部分建立后续章节需要的共同语言,并说明学习算法为什么必须带有归纳偏好。
本书的使用:
第1章-绪论
计算学习理论
概率近似正确(Probably Approximately Correct,PAC)描述的是一种学习保证:训练样本由未知分布随机抽取时,学习算法以至少 的概率得到泛化误差足够小的模型。
一种常见的不可知 PAC 表述是:
其中, 是从分布 独立抽取的训练集, 是算法根据 学到的模型, 是模型在真实分布上的风险。
表示允许的误差裕量, 表示学习保证失败的概率。公式中的概率来自训练集的随机抽取,而不是“取得某个模型”的概率。
PAC 讨论的是样本复杂度和泛化保证,不能由 、 推导出 P 与 NP 的关系。通常只要求二者为足够小的正数。
术语名词
1.示例 = 特征向量,样本
- 名词解释:
即对某个事件或者对象的 全局 描述 - 构成元素:
多组(特征:特征值) - 样本 要根据上下文来判断含义
2.特征 = 属性
- 名词解释:
即对某个事件或对象的一个 具体 特征的描述
3.样本空间 = 属性空间 = 输入空间
- 名词解释:
即特征张成的空间,空间中每个点对应一个特征向量即样本
4.数据集、训练集、验证集与测试集
- 训练集用于拟合模型参数。
- 验证集用于选择模型和超参数。
- 测试集只用于最终评估,不能参与调参。
一个包含 个样本的数据集可表示为:
若每个样本包含 个特征,则 。实际划分比例应根据样本量与任务决定,并不存在固定的“二八分”规则。
5.样例,标记,标记空间
- 样例=样本+标记
标记:即想预测的结果的 实际信息,比如想预测瓜的好坏,实际样本中的信息为”好瓜”/“坏瓜”,
一般表示为:
标记空间 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 回归问题-预测 连续值
预测结果 ∈ R2.非监督学习-无导师学习
样本无标记
2.1 聚类算法
-
离散型变量的分类、分组别
-
连续型变量的统计个数,进行密度估计
了解数据内在规律
2.2 降维算法
- 如PCA主成分分析等
…
机器学习的发展
-
符号主义:源于数学逻辑,产生明确的概念表示
符号主义认为人工智能源于数理逻辑后来又发展了 启发式算法>专家系统>知识工程理论与技术
主要方向:决策树 和 基于逻辑的学习
决策树->模拟人类对概念的判定树形过程基于逻辑的学习-->典型代表:归纳逻辑程序设计(ILP) -
连接主义:基于神经网络
算法复杂度高,假设空间大,且参数设置缺乏理论指导
经典代表:BP反向传播算法
-
统计学习:支持向量机(SVM),核方法
与连接主义关系密切
-
深度学习:早期连接主义的衍生,基于神经网络,现阶段很流行
模型评估、性能度量与比较
有了学习任务和假设之后,需要设计可靠的实验。数据划分方式与评价指标会直接影响最终结论。
术语名词
1.泛化误差与经验误差
泛化误差:在“未来”样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”
训练集样本数越接近数据集数量,经验误差就越小。 但是经验误差越小,模型效果就越好吗?
请注意,我们是为了得到泛化能力强的模型,而经验误差≠泛化误差
经验误差很小,会使模型学习到训练样本中的许多无用特征,导致泛化能力变弱 我们称其为过拟合(overfitting)
而与之相对的概念,我们称为欠拟合(underfitting),其表示的就是模型没有很好的学习到训练样本上的特征,从而也导致泛化能力变弱
2.过拟合与欠拟合
过拟合:模型在训练数据上表现得过于复杂,以至于在未见过的数据上表现不佳。 欠拟合:模型在训练数据上表现得过于简单,无法捕捉到数据的内在结构和模式。
出现原因: 1.出现欠拟合的情况,一般是由于样本特征少,模型复杂度低等
2.出现过拟合的情况,一般是由于样本数量少、噪声多,模型复杂度过高等
经验误差就是训练程度的体现,经验误差越小则训练程度越强 所以现在,我们可以得出训练程度不能过大也不能过小的结论
那我们能找到一个最佳方案得出最佳的训练程度吗🤔
答案是--------------->不能🙅
原因是: 对于千禧年七大数学问题之——“P=NP”问题,只要我们相信”P≠NP”,就无法找出最优解
但是我们依然有相应的解决方法,用于欠拟合与过拟合的问题 此处的解决方法我们留待以后解决…
好了,回归本章主题—模型评估与选择
对于模型的选择,我们有三个关键问题:
如何获得测试集?------>评估方法
如何评价性能优劣?------>性能度量
如何判断模型实质差别------>比较检验
1.评估方法
因为我们无法得知未来数据的输出标记 故而需要得到测试集用来评估模型
而测试集有多种划分方法,这里我们给出以下三种
1.1 留出法(hold-out):
将数据集直接划分为训练集和测试集
留出法:对数据集的划分方法会影响模型结果;训练集和测试集的数据分布必须保持一致;测试集过大会使模型拟合效果变差,太小会使得测试估计偏小;有一些数据可能从未被训练过
总结:
- 保证数据分布一致性(比如分层取样)
- 多次重复划分 (例如: 100次随机划分)
- 测试集不能太大或太小(例如:1/5~1/3,其实二八分偏多)
- 可能遗漏数据(随机划分没取到该数据进行训练)
1.2 交叉验证法
对于 留出法出现 可能遗漏数据(随机划分没取到该数据进行训练)的问题
我们引入新的划分方法 k-折交叉验证法 可以有效解决该问题

以该图为例:
首先将数据集D随机划分为10个子集, 进行十次操作, 每一次取其中1个子集为测试集,其余为训练集(实际也可以选取多个子集为测试集) 将结果做平均处理
而对于再划分子集的阶段,将测试集中只留有一个数据的方法叫做留一法 留一法每次只留一个样本用于验证,因此单次训练集与原始数据集非常接近。它的数据利用率高,但需要训练 次,计算成本较高;不同训练集高度重叠,评估结果也可能具有较高方差。
优缺点:
在 折交叉验证中,每个样本会恰好作为一次验证样本,并在其余 折中参与训练。较大的 能提高训练数据利用率,但会显著增加计算成本。
划分时仍要遵守数据的独立结构。例如,同一用户、同一时间序列或同一实体的相关样本不应随意分到训练折和验证折,否则可能产生数据泄漏。
1.3 自助法

“自助法”(bootstrapping) 基于放回取样 亦称“可重复采样”
从含有 个样本的原始数据集中进行 次有放回抽样,可以得到一个大小仍为 的训练集,但其中会包含重复样本。
某个原始样本在一次抽样中未被选中的概率为 ,在 次抽样后仍未被选中的概率为:
因此,约有 的原始样本不会进入本次自助训练集,可作为包外样本(out-of-bag samples)进行评估;进入训练集的不同原始样本约占 。
优缺点:
优点: 自助法在数据集较小、难以有效划分训练/测试集时很有用, 自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。
缺点: 自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。但是通过增加数据划分的次数,就可以缓解该影响。
1.4 调参与验证集
在模型评估与选择的过程中,我们既要选择学习算法,还要对算法的参数进行设定
训练过程中的参数分为两种:
- 算法参数:亦称“超参数”,由人工设定
- 模型参数:由训练集训练而成
1.5 重新训练
模型选择和调参完成后,可以合并训练集与验证集重新训练最终模型,再使用此前从未参与训练和调参的测试集进行一次独立评估。
测试集不是用来选择算法或参数的。如果把测试集也用于重新训练,就不能再用同一测试集报告无偏的泛化性能。部署前确实可以使用全部已有数据训练,但之后应准备新的独立数据进行评估。
2.性能度量
2.1 错误率和精度
错误率定义:
精度定义:
然而对于不同的任务需求,仅仅用错误率和精度是不够的,故引出查准率、查全率、F1的概念
2.2 查准率、查全率、F1
二分类任务:
现有一瓜田含10000个瓜,其中有100个好瓜,利用学习器挑瓜- 查准率或精确率(precision):挑出的瓜中好瓜所占的比例。
- 查全率或召回率(recall):所有好瓜中被成功挑出的比例。
- F1-score:查准率与查全率的调和平均。
注意,precision 不是 accuracy。accuracy 表示全部样本中预测正确的比例。
在选瓜任务中我们的目标是:
- 在挑出来的瓜中尽可能都是好瓜
- 瓜田中的好瓜尽可能多地被挑出来 很直观的可以感受到查全率越大(如挑出越多的瓜,好瓜被挑出的比例也就越大),查准率就会越低
混淆矩阵:

其中查准率P和查全率R的定义为:
F1即综合考虑两者效果:
等价地:
多分类任务:
2.3 ROC与AUC
3.比较检验
从任务到结论的基本流程
一个较规范的机器学习实验可以按以下顺序进行:
- 定义输入、输出和业务目标。
- 明确数据来源及其分布假设。
- 划分训练集、验证集和测试集。
- 只使用验证集选择模型与超参数。
- 根据错误代价选择合适的性能指标。
- 最后一次使用测试集报告泛化性能。
- 比较多个模型时说明随机种子、方差和统计检验方法。
总结
第一章提供机器学习的概念框架,第二章提供验证结论的实验框架。只有把“学习什么”和“如何评价”连接起来,模型结果才具有可解释性和可复现性。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!