[特殊字符]零基础入门AI:归纳演绎、假设空间、归纳偏好、NFL、过拟合与欠拟合、模型评估选择、超参数、性能度量、混淆矩阵、P-R曲线和F1

🧠 一、机器是怎样从例子中学习的

机器学习常写成:

y = f(x)

其中,x 是机器看到的东西,y 是希望机器给出的答案,f 是机器学到的判断方法。

例如:

  • x:西瓜的颜色、根蒂和敲击声音。

  • y:它是不是好瓜。

  • f:根据这些特征判断好瓜的规则。

🔄 1. 归纳与演绎

假设我们看到三只会飞的鸟,然后猜测"鸟通常会飞",这就是归纳。它从几个具体例子出发,总结出一般规律。

如果我们已经知道"鸟通常会飞",又知道"小蓝是一只鸟",于是推测"小蓝可能会飞",这就是演绎。它从一般规律出发,判断具体情况。

从训练样本中学习规律,本质上是归纳,所以机器学习也叫"归纳学习"。

知识点 简单解释 方向
归纳 看过一些例子后总结规律 特殊到一般
泛化 把学到的规律用于没见过的新例子 已知样本到新样本
演绎 用已有规律判断一个具体对象 一般到特殊
特化 把宽泛规则变得更具体 一般到特殊
归纳学习 机器从训练样本中总结规则 样本到模型

🧩 二、假设空间:机器可以选择的所有规则

假设我们认为,好瓜完全由三个特征决定:

  • 色泽

  • 根蒂

  • 敲声

一条规则可以写成:

(色泽 = ?) AND (根蒂 = ?) AND (敲声 = ?) ↔ 好瓜

问号表示这里可以填写一个具体取值,也可以填写通配符"*"。通配符表示"不关心这个特征"。

例如:

(色泽 = 青绿) AND (根蒂 = *) AND (敲声 = 浊响)

它表示:只要西瓜是青绿色并且敲起来浊响,就把它看成好瓜,不管根蒂是什么样。

机器能够考虑的全部规则,合起来叫作"假设空间"。

如果三个特征分别有 n₁、n₂、n₃ 种候选写法,那么假设数量可以写成:

假设数量 = n₁ × n₂ × n₃ + 1

例如:

4 × 3 × 3 + 1 = 37

通用的计算方法就是:

  1. 数出每个特征有几种真实取值。

  2. 给每个特征的取值数都加1(这个1就是"*",代表"无所谓")。

  3. 把所有这些"加1后"的数字乘起来。

  4. 最后再 +1(代表"一个都不是"的空假设)。

这里的候选数需要把通配符计算在内。最后的"+1"表示"没有任何西瓜是好瓜"的空假设。

具体数量会随着每个特征允许的取值数量变化。

只记住训练集中的几个西瓜并不是真正的学习,因为机器还要判断从未出现过的新西瓜。

|-------------|-------------------|
| 知识点 | 含义 |
| 假设 | 一条可能的判断规则 |
| 假设空间 | 所有候选规则组成的集合 |
| 通配符"*" | 不限制这个特征 |
| 空假设 | 认为没有任何样本属于目标类别 |
| 概念学习 | 从样本中寻找能够描述目标概念的规则 |
| 记忆训练集 | 只会回答见过的样本,无法真正泛化 |

🔍 三、搜索假设与版本空间

假设空间可能很大,机器需要在其中搜索。

一种办法是从最宽松的规则开始,不断增加条件,这叫"从一般到特殊"或"自顶向下"。

另一种办法是从非常具体的规则开始,逐渐放宽条件,这叫"从特殊到一般"或"自底向上"。

搜索时可以不断删除错误规则:

  • 遇到一个正例,就删除那些把它判断成反例的假设。

  • 遇到一个反例,就删除那些把它判断成正例的假设。

最后留下的规则都能正确解释训练集。但是,有限的训练集通常无法只留下唯一规则。

所有与训练集一致的假设组成的集合,叫作"版本空间"。

如果两个假设都能正确判断训练集,却对一个新西瓜给出不同答案,机器就必须在它们之间进行选择。

|--------------|-------------------------|
| 知识点 | 简单解释 |
| 自顶向下 | 从宽松规则开始,逐渐增加限制 |
| 自底向上 | 从具体规则开始,逐渐放宽限制 |
| 与训练集一致 | 能正确判断训练集中的全部样本 |
| 版本空间 | 所有与训练集一致的假设 |
| 版本空间产生原因 | 样本有限,但可能的规律很多 |
| 核心问题 | 多条规则都能解释旧样本,却可能对新样本意见不同 |

✂️ 四、归纳偏好:机器更愿意相信哪条规则

当版本空间里有多条可用规则时,机器必须偏向其中一些规则。这种偏向叫作"归纳偏好"。

任何能给出确定结果的机器学习算法都必须有归纳偏好。否则,两条规则在训练集上表现完全相同,机器就不知道该选择谁。

一种常见原则是"奥卡姆剃刀":

如果多条规则都能解释观察结果,优先选择最简单的那条。

例如,两条曲线都经过全部训练点,一条非常平滑,另一条弯来弯去。通常会认为平滑曲线更简单。

不过,"简单"不一定永远正确。归纳偏好是否适合当前问题,常常直接决定模型能否取得好成绩。

|--------------|---------------------|
| 知识点 | 含义 |
| 归纳偏好 | 算法对某类假设的偏爱 |
| 为什么必须有偏好 | 多个假设可能在训练集上同样正确 |
| 奥卡姆剃刀 | 多个解释都成立时,优先选择简单解释 |
| 平滑偏好 | 在某些问题中,更平滑的曲线被看作更简单 |
| 决定性能的关键 | 偏好必须与真实任务相匹配 |

🍱 五、没有免费午餐定理:不存在永远最好的算法

假设算法 A 和算法 B 都穿过了所有黑色训练点。

后来加入一些白色测试点:

  • 在一种分布中,A 穿过全部黑点和白点,A 更好。

  • 换一种分布后,B 穿过全部黑点和白点,B 更好。

这说明:一个算法在某些问题上优于另一个算法,就会存在另外一些问题,使结果反过来。

这就是"没有免费午餐定理",简称 NFL。

它有一个重要前提:

所有可能问题出现的机会相同,或者所有问题同等重要。

现实中,我们通常只关心某一类具体任务,所以仍然可以针对任务选择更合适的算法。

例如,从 A 地到 B 地最快的交通方式是什么?

  • 北京到重庆:飞机可能最快。

  • 县城到市区:汽车可能更合适。

  • 村东头到村西头:自行车可能最快。

算法就像交通工具。脱离距离、道路和任务要求,直接争论"哪个永远最好"没有意义。

|------------|-------------------|
| 知识点 | 含义 |
| NFL 定理 | 没有一个算法能在所有问题上永远最好 |
| 重要前提 | 所有问题等可能或同等重要 |
| 实际启示 | 先明确任务,再选择算法 |
| 算法是否优秀 | 取决于算法与问题的契合程度 |
| 工程思维 | 不空谈最好,而要分析具体数据和需求 |

🎯 六、错误率、精度与两种误差

假设模型判断了100个西瓜,其中20个判断错误。

错误率是:

错误率 = 20 ÷ 100 = 20%

精度,也就是准确率,是:

精度 = 1 - 20% = 80%

"误差"是模型预测结果与真实答案之间的差异。

误差还分成两类:

  • 训练误差,也叫经验误差:模型在训练集上的误差。

  • 泛化误差:模型面对新样本时的误差。

训练误差可以直接计算,因为训练样本就在手里。

真正的泛化误差通常无法直接计算,因为未来可能出现的新样本数量巨大,而且我们不知道它们是什么样。

我们真正希望降低的是泛化误差,而不只是训练误差。

|------------|--------------|----------|
| 知识点 | 含义 | 是否容易得到 |
| 错误率 | 错误样本数除以样本总数 | 容易 |
| 精度 | 正确样本数除以样本总数 | 容易 |
| 精度与错误率 | 精度 = 1 - 错误率 | 容易 |
| 训练误差 | 模型在训练集上的误差 | 可以直接计算 |
| 泛化误差 | 模型在新样本上的误差 | 通常无法直接得到 |
| 学习目标 | 让泛化误差尽可能小 | 需要估计 |

📚 七、过拟合与欠拟合

📝 1. 过拟合:把练习题背得太细

训练集中出现的树叶都有锯齿。模型于是学到:

只有带锯齿的才是树叶。

当它看到一片没有锯齿的真实树叶时,就会判断错误。

模型把训练样本偶然具有的特点,当成了所有样本都具有的规律。这叫过拟合。

过拟合常见于模型学习能力过强。它在训练集上成绩很高,在新数据上却明显下降。

由于训练样本永远有限,过拟合风险无法被彻底消除,只能尽量缓解。

🌱 2. 欠拟合:连基本规律都没学会

一个能力太弱的模型可能只学到:

绿色的东西都是树叶。

于是它把一棵绿色的树也判断成一片树叶。这叫欠拟合。

欠拟合说明模型连训练数据中的一般规律都没有学好。可以通过增强学习能力来改善,例如:

  • 给决策树增加分支。

  • 使用更有表达能力的神经网络。

  • 增加合理的训练轮数。

假设有两个模型:

  • A:训练精度99.9%,测试精度50%。

  • B:训练精度50%,测试精度50%。

A 的训练成绩远高于测试成绩,属于过拟合。B 连训练集都学不好,属于欠拟合。

|------------|----------------|-----------|
| 对比项 | 过拟合 | 欠拟合 |
| 原因 | 学得过细,把偶然特点当成规律 | 学习能力不足 |
| 训练集表现 | 通常很好 | 通常较差 |
| 新样本表现 | 明显变差 | 同样较差 |
| 直观比喻 | 背下了答案,却不会做新题 | 连课本基础都没学会 |
| 处理方向 | 缓解过度学习,提高泛化能力 | 增强模型学习能力 |
| 能否彻底避免 | 通常不能 | 通常可以改善 |

🗂️ 八、为什么需要训练集、验证集和测试集

理想情况下,我们应该直接比较候选模型的泛化误差,再选择泛化误差最小的模型。

但泛化误差无法直接得到,训练误差又可能被过拟合欺骗。因此,需要从已有数据中留下模型没有参与训练的数据,用它近似检查模型面对新样本的能力。

三个数据集合的职责不同:

  • 训练集:让模型学习内部参数。

  • 验证集:选择算法、超参数和模型版本。

  • 测试集:在全部选择结束后,进行最后一次公平考试。

训练集和测试集应尽量互斥,并且都应从同一种真实分布中独立采样,也就是"独立同分布",简称 IID。

例如,成绩分布是:

  • 50至60分有10人。

  • 60至70分有20人。

  • 70至80分有30人。

  • 80至90分有20人。

  • 90至100分有10人。

划分测试集时,也应按相同比例从每个分数段抽取,这叫"分层采样"。

|----------|-----------------|----------|
| 数据集合 | 作用 | 能否参与调参 |
| 训练集 | 学习模型参数 | 用于训练 |
| 验证集 | 选择超参数和模型 | 可以 |
| 测试集 | 最终估计泛化能力 | 不应参与 |
| IID | 各集合来自相同分布,并独立抽样 | 是公平评估的基础 |
| 互斥 | 测试样本不出现在训练过程中 | 防止答案泄漏 |
| 分层采样 | 各类别或区间按原比例抽取 | 保持分布一致 |

✂️ 九、留出法

留出法把数据集 D 分成训练集 S 和测试集 T。

它们之间的关系是:

完整数据集 D = 训练集 S + 测试集 T

训练集 S 与测试集 T 没有重复样本

也可以写成:

D = S ∪ T

S ∩ T = 空集

也就是说,两部分合起来是全部数据,而且没有重复样本。

留出法需要注意三件事:

  1. 保持数据分布一致,常用分层采样。

  2. 多次随机划分,再对测试结果取平均。

  3. 测试集不能太大,也不能太小,常取总数据的五分之一到三分之一。

测试集太大,训练集就会太小,模型可能学不好。

测试集太小,结果又会非常不稳定。例如测试集只有一个样本,错误率只能是0%或100%。

|----------|----------------------|
| 知识点 | 说明 |
| 留出法 | 一部分数据训练,另一部分测试 |
| 集合关系 | D = S ∪ T,S ∩ T = 空集 |
| 分布要求 | 训练集和测试集尽量保持相同分布 |
| 重复划分 | 多次随机划分并取平均,减少偶然性 |
| 常见比例 | 测试集约占五分之一到三分之一 |
| 主要问题 | 实际训练模型使用的数据少于完整数据集 |

🔁 十、交叉验证法

以十折交叉验证为例:

  1. 把数据集分成10个大小相似、互不重叠的子集。

  2. 每个子集都尽量保持原来的类别分布。

  3. 每次取9份训练,剩下1份测试。

  4. 轮流让每一份当一次测试集。

  5. 一共训练和测试10次。

  6. 对10个测试结果取平均。

如果为了减少划分带来的偶然影响,又随机重新划分并重复10轮,就叫"10次10折交叉验证"。

总训练和测试次数为:

10轮 × 每轮10次 = 100次

|---------------|---------------------|
| 知识点 | 说明 |
| k折交叉验证 | 把数据分成 k 份 |
| 每轮训练数据 | 其中 k - 1 份 |
| 每轮测试数据 | 剩下的1份 |
| 每次划分的训练次数 | k 次 |
| 最终结果 | k 个测试结果的平均值 |
| 重复 p 次 | 用不同随机划分重复,降低偶然影响 |
| 优点 | 每个样本都能参与训练,也能参与一次测试 |
| 代价 | 需要反复训练模型 |

1️⃣ 十一、留一法

如果数据集中有 m 个样本,并令:

k = m

就得到留一法,英文是 Leave-One-Out,简称 LOO。

每次使用:

  • m - 1 个样本训练。

  • 1个样本测试。

然后重复 m 次,让每个样本都单独做一次测试样本。

例如有100个样本:

每轮训练样本数 = 100 - 1 = 99

总训练次数 = 100次

留一法的训练集几乎和完整数据集一样大,因此评估的模型与最终用全部数据训练的模型很接近。

但是,如果有100万个样本,就需要训练100万个模型,计算量很大。

|-----------|----------------------|
| 知识点 | 说明 |
| 留一法 | k = m 的特殊交叉验证 |
| 每轮训练 | m - 1 个样本 |
| 每轮测试 | 1个样本 |
| 总训练次数 | m 次 |
| 优势 | 几乎不减少训练数据,不受一次随机划分影响 |
| 劣势 | 数据量大时计算开销极高 |
| 适用情况 | 样本较少、单次训练成本可接受 |

🎒 十二、自助法

自助法采用"有放回采样"。

假设原数据集有 m 个样本。每次随机拿出一个样本,复制到新训练集中,然后把原样本放回去。

重复 m 次后,新训练集仍然有 m 个位置,但其中可能有重复样本。

某个样本一次没有被抽中的概率是:

一次未被抽中的概率 = 1 - 1/m

连续抽取 m 次都没有抽中它的概率是:

连续 m 次未被抽中的概率 = (1 - 1/m) 的 m 次方

当 m 很大时:

(1 - 1/m) 的 m 次方 ≈ 1/e ≈ 0.368

因此,原数据中大约36.8%的样本不会出现在自助训练集中,可以把它们作为测试样本。

这些样本也叫"袋外样本"。

|---------------|-------------------|
| 知识点 | 说明 |
| 自助采样 | 有放回地重复抽取样本 |
| 新训练集大小 | 与原数据集同为 m |
| 至少出现一次的样本 | 约占原样本的63.2% |
| 未出现的样本 | 约占36.8%,可作为袋外测试样本 |
| 优势 | 训练集表面规模不变 |
| 劣势 | 重复样本改变了原来的数据分布 |
| 适用情况 | 数据较少,或希望进行自助估计 |

🎛️ 十三、模型参数与超参数

参数分为两类。

⚙️ 1. 模型参数

模型参数由训练数据自动学习,例如:

  • 直线 y = ax + b 中的 a 和 b。

  • 神经网络连接上的权重。

  • 卷积核中的数字。

🛠️ 2. 超参数

超参数通常在训练前由人设定,例如:

  • 神经网络有多少层。

  • 每层有多少个神经元。

  • 训练多少轮。

  • 使用哪种模型结构。

调参的过程是:先设置多组超参数,训练出多个候选模型,再根据验证结果选择较好的配置。

选定算法和超参数后,可以把训练集与验证集合并,重新训练最终模型,最后只在测试集上进行一次公平评估。

|------------|--------------|----------------|
| 对比项 | 模型参数 | 超参数 |
| 谁来确定 | 学习算法通过数据确定 | 人工或搜索过程设定 |
| 何时确定 | 训练过程中 | 通常在训练前或调参时 |
| 示例 | 权重、卷积核、a、b、c | 网络层数、结构、训练轮数 |
| 使用哪个集合 | 训练集 | 验证集帮助选择 |
| 对性能的影响 | 决定模型具体学到了什么 | 决定模型怎样学习、能力有多强 |

📏 十四、性能度量必须反映任务需求

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

不同任务需要不同标准,所以使用不同指标,可能得到不同的模型排名。

假设工厂需要区分鲈鱼和草鱼:

  • 模型 A 预测为鲈鱼时几乎不会错,但会漏掉一些真正的鲈鱼。

  • 模型 B 能找到更多鲈鱼,却可能把一些草鱼错当成鲈鱼。

如果企业重视口碑,希望鲈鱼罐头里一定是鲈鱼,就更重视"查准率"。

如果企业更怕漏掉鲈鱼,就更重视"查全率"。

这不是单纯的数学选择,而是任务需求带来的偏好。

|--------------|----------------|
| 知识点 | 含义 |
| 性能度量 | 衡量模型表现的标准 |
| 为什么有多个指标 | 不同任务在意的错误不同 |
| 查准率优先 | 希望模型说"是"时尽量可靠 |
| 查全率优先 | 希望真正的目标尽量不要被漏掉 |
| 选择原则 | 指标必须与业务目标一致 |
| 与归纳偏好的关系 | 任务需求决定我们偏爱哪种模型 |

📈 十五、回归任务与均方误差

如果模型要预测温度、价格或身高,答案 y 是连续数值,这叫回归任务。

回归任务常用均方误差,简称 MSE。

公式为:

MSE = 所有"预测值与真实值之差的平方"相加 ÷ 样本数

E(f, D) = (1/m) × Σ[f(xᵢ) - yᵢ]²

其中:

  • xᵢ:第 i 个样本。

  • yᵢ:第 i 个样本的真实答案。

  • f(xᵢ):模型对第 i 个样本的预测答案。

  • m:样本数量。

  • Σ:把所有样本的结果加在一起。

计算步骤是:

  1. 计算预测值与真实值的差。

  2. 把差进行平方。

  3. 把所有平方结果相加。

  4. 除以样本数量。

平方可以消除正负号,并让较大的错误受到更重的惩罚。

如果讨论的不是有限样本,而是完整数据分布 D 和概率密度 p(x),积分公式:

E(f, D) = ∫[f(x) - y]² × p(x) dx

回归任务要求输出 y 是连续值,但输入 x 可以是离散对象,也可以是连续数值。

有限样本常用求和,连续分布常用积分。

|------------|---------------|
| 知识点 | 说明 |
| 回归任务 | 预测连续数值 |
| 均方误差 | 预测误差平方的平均值 |
| 为什么平方 | 消除正负号,并加重较大错误 |
| 有限样本 | 使用求和公式 |
| 连续分布 | 使用带概率密度的积分公式 |
| 判断任务类型 | 主要看输出 y 是否连续 |

🏷️ 十六、分类任务的数学表达

分类任务的答案是类别,例如"好瓜或坏瓜"。

错误率可以写成:

错误率 = (1/m) × ΣI[f(xᵢ) ≠ yᵢ]

其中,I 是指示函数:

  • 括号中的条件为真,结果是1。

  • 括号中的条件为假,结果是0。

因此,每次预测错误就记1分,预测正确就记0分。最后除以样本总数,就是错误率。

精度可以写成:

精度 = (1/m) × ΣI[f(xᵢ) = yᵢ]

精度与错误率的关系是:

精度 = 1 - 错误率

对于完整连续分布,也可以使用积分表示:

错误率 = ∫I[f(x) ≠ y] × p(x) dx

精度 = ∫I[f(x) = y] × p(x) dx

|-----------|------------------|
| 知识点 | 说明 |
| 分类任务 | 预测离散类别 |
| 指示函数 | 条件成立取1,否则取0 |
| 错误率公式 | 统计预测错误的样本比例 |
| 精度公式 | 统计预测正确的样本比例 |
| 二者关系 | 精度 = 1 - 错误率 |
| 分布形式 | 可用积分表示真实分布上的期望结果 |

🧮 十七、混淆矩阵

在二分类中,可以把"好瓜"规定为正例,把"坏瓜"规定为反例。

模型的预测与真实情况组合后,一共有四种结果:

|--------|-----------|-----------|
| 真实情况 | 预测为正例 | 预测为反例 |
| 正例 | TP:真正例 | FN:假反例 |
| 反例 | FP:假正例 | TN:真反例 |

记忆方法:

  • 第二个字母 P 或 N 表示模型预测为正例还是反例。

  • 第一个字母 T 或 F 表示这个预测是正确还是错误。

四格之和就是样本总数:

样本总数 = TP + FP + FN + TN

错误率:

错误率 = (FP + FN) / (TP + FP + FN + TN)

精度:

精度 = (TP + TN) / (TP + FP + FN + TN)

|----|------|------|----------|
| 名称 | 真实情况 | 预测结果 | 是否正确 |
| TP | 正例 | 正例 | 正确 |
| FN | 正例 | 反例 | 错误,漏掉了正例 |
| FP | 反例 | 正例 | 错误,误报为正例 |
| TN | 反例 | 反例 | 正确 |

🎯 十八、查准率与查全率

✅ 1. 查准率

查准率,也叫 Precision,回答的问题是:

模型找出来的正例中,有多少是真的?

公式为:

P = TP / (TP + FP)

🔎 2. 查全率

查全率,也叫 Recall,回答的问题是:

所有真正的正例中,模型找到了多少?

公式为:

R = TP / (TP + FN)

假设:

TP = 30,FP = 10,FN = 20,TN = 40

那么:

P = 30 / (30 + 10) = 75%

R = 30 / (30 + 20) = 60%

模型说有40个好瓜,其中30个真是好瓜,所以查准率是75%。

真实共有50个好瓜,模型找出30个,所以查全率是60%。

通常,查准率与查全率存在矛盾:

  • 判断条件严格,误报减少,查准率可能升高,但会漏掉更多正例。

  • 判断条件宽松,漏掉的正例减少,查全率可能升高,但误报会增多。

|-----------|--------------------|----------|-----------|
| 指标 | 公式 | 关心的问题 | 主要受哪种错误影响 |
| 查准率 P | P = TP / (TP + FP) | 找出来的有多准 | FP |
| 查全率 R | R = TP / (TP + FN) | 真正目标找全了吗 | FN |
| 高查准率 | 预测为正时更可信 | 少误报 | 控制 FP |
| 高查全率 | 尽量不漏掉正例 | 少漏报 | 控制 FN |

📉 十九、P-R曲线

许多分类器会为每个样本给出一个"像正例的分数"。

可以按照分数从高到低排列样本,再逐渐放宽判断为正例的条件。

每改变一次条件,就能得到一组新的查准率和查全率。

以查全率为横轴、查准率为纵轴,把这些点连接起来,就得到P-R曲线。

比较模型时:

  • 如果一条曲线完全包住另一条曲线,外面的曲线通常更好。

  • 如果两条曲线交叉,就不能简单说谁永远更好。

  • 可以比较曲线下面积。

  • 可以比较平衡点。

  • 也可以使用F1。

平衡点是查准率与查全率相等的位置:

P = R

|---------|---------------------|
| 知识点 | 说明 |
| P-R曲线横轴 | 查全率 R |
| P-R曲线纵轴 | 查准率 P |
| 生成方法 | 按预测分数排序,并不断改变判断门槛 |
| 曲线包围关系 | 一条曲线整体更靠外时通常更好 |
| 曲线交叉 | 模型各有擅长区域,需要结合任务选择 |
| 曲线下面积 | 用于综合比较不同门槛下的表现 |
| 平衡点 | 查准率等于查全率的位置,即 P = R |

⚖️ 二十、F1与Fβ:把查准率和查全率合成一个分数

🤝 1. F1度量

F1是查准率和查全率的调和平均。

公式为:

F1 = 2PR / (P + R)

使用混淆矩阵中的数据,可以写成:

F1 = 2TP / (2TP + FP + FN)

它也可以写成:

F1 = 2TP / (样本总数 + TP - TN)

调和平均会惩罚严重不平衡的结果。

即使查准率很高,只要查全率很低,F1也不会很高。

F1还满足:

1/F1 = (1/2) × (1/P + 1/R)

例如:

P = 75%

R = 60%

那么:

F1 = 2 × 0.75 × 0.60 / (0.75 + 0.60)

F1 ≈ 66.7%

🎚️ 2. Fβ度量

如果查准率与查全率不是同等重要,可以使用Fβ。

纯文本公式为:

Fβ = (1 + β²)PR / (β²P + R)

它还可以写成:

1/Fβ = [1 / (1 + β²)] × (1/P + β²/R)

β的作用是调整查准率和查全率的重要程度:

  • β = 1:就是F1,两者同等重要。

  • β > 1:更重视查全率。

  • β < 1:更重视查准率。

|---------------|-------------------|--------|
| 指标 | 用途 | 偏好 |
| 平衡点 | 查看 P = R 时的表现 | 两者相等 |
| F1 | 把查准率与查全率合成一个分数 | 两者同等重要 |
| Fβ,β > 1 | 漏掉正例的代价更高 | 更重视查全率 |
| Fβ,β < 1 | 误报正例的代价更高 | 更重视查准率 |
| 调和平均 | 防止一个指标很高掩盖另一个指标很低 | 惩罚不平衡 |

🛤️ 二十一、完整的模型评估与选择流程

一个较完整的AI模型选择过程是:

  1. 明确任务需要预测什么。

  2. 确定最重要的性能指标。

  3. 准备具有代表性的数据。

  4. 划分训练集、验证集和测试集。

  5. 使用训练集学习模型参数。

  6. 使用验证集选择算法和超参数。

  7. 检查过拟合与欠拟合。

  8. 必要时使用留出法、交叉验证、留一法或自助法进行更稳定的评估。

  9. 选定配置后,用训练集和验证集重新训练最终模型。

  10. 最后在未参与选择的测试集上评估一次。

  11. 报告与任务需求匹配的指标。

|------------|-------------|----------------|
| 阶段 | 要解决的问题 | 常用方法 |
| 理解任务 | 需要解决哪一种具体问题 | 明确输入、输出和错误代价 |
| 建立假设 | 机器可以学习哪些规则 | 假设空间、版本空间 |
| 选择偏好 | 多个规则中选谁 | 归纳偏好、奥卡姆剃刀 |
| 防止盲目比较 | 是否存在永远最好的算法 | NFL定理 |
| 诊断学习状态 | 学得太多还是太少 | 过拟合、欠拟合 |
| 估计泛化能力 | 新样本上表现如何 | 测试集、交叉验证等 |
| 调整模型 | 使用哪种结构和配置 | 验证集、超参数 |
| 衡量结果 | 什么才算表现好 | MSE、精度、P、R、F1等 |
| 最终选择 | 哪个模型最适合实际任务 | 数据、指标和任务需求共同决定 |

🧐课后小测

序号 问题 标准答案 解析 记忆口诀
1 什么是归纳和演绎?为何机器学习是归纳学习? 归纳是从特殊到一般;演绎是从一般到特殊。机器从样本中总结规律,因此属于归纳学习。 看见很多白天鹅后总结"天鹅通常是白色"是归纳;用这条规律判断新天鹅是演绎。 归纳:例子→规律;演绎:规律→例子。
2 所有候选规则的总称是什么?如何计算? 叫假设空间。公式:假设数 = (v₁+1)×(v₂+1)×...+1。括号中的"+1"是通配符,最后"+1"是空假设。 假设空间像装着所有候选规则的大盒子,"*"表示这个特征随便。 每个特征加"随便",最后再加"全不要"。
3 算法对某类规则的偏爱叫什么?为何必须有? 叫归纳偏好。多条假设都能解释训练集时,算法必须有所偏好,才能选择规则并预测新样本。 多位同学旧题都满分,机器必须决定新题更相信谁的方法。 旧题都做对,偏好决定听谁的。
4 A的泛化误差远低于B,说明什么? 说明A的归纳偏好更匹配当前任务,不能证明A在所有任务上都更好。 雨天雨鞋更好,不代表去沙滩时雨鞋仍然最好。 当前赢不等于永远赢,匹配任务才会赢。
5 NFL定理的结论与前提是什么? 结论:对所有问题平均时,各算法平均性能相同。前提:所有问题等可能或同等重要。 飞机、自行车谁更快,必须先说明路程;不存在永远最好的交通工具。 没有万能算法,只有合适算法。
6 训练误差和泛化误差有什么区别? 训练误差是训练集上的误差,可以计算;泛化误差是新样本上的真实误差,因未来数据未知而难以直接得到。 练习册成绩能直接数,未来所有考试的成绩无法提前知道。 训练误差看旧题,泛化误差看新题。
7 A训练99%、测试70%;B训练70%、测试68%,分别是什么状态? A明显过拟合;B训练和测试成绩都较低,可能欠拟合。严格判断还要结合任务难度和基准成绩。 A背熟练习题却不会新题;B连练习题也没有学好。 训练高测试低是过拟合;两边都低是欠拟合。
8 训练集与测试集应满足什么条件?IID是什么? 样本应独立同分布,即彼此独立并来自相同分布;训练集与测试集还应互斥。 平时和考试应考同一范围,但正式试题不能提前出现在练习册中。 范围相同,题目没见过。
9 怎样保持训练集与测试集的分布一致? 使用分层采样:先按标签分层,再按原比例从每层随机抽取。 班级男女比例为6∶4,抽取代表时也尽量保持6∶4。 先分层,再按比例抽。
10 轮流使用不同部分做测试叫什么? 叫交叉验证。十折交叉验证将数据分成10份,每次9份训练、1份测试,轮换10次后取平均。 10个人轮流当考试代表,最后把10次成绩平均。 分成k份,轮流考试,最后平均。
11 留一法有什么优缺点? 每次用m−1个样本训练、1个测试,共训练m次。优点是训练数据接近完整数据;缺点是样本多时计算量极大。 100名学生每次留下1人考试,要轮换100次。 留一个,练其他;利用率高,训练次数多。
12 过拟合和欠拟合怎样调整? 过拟合可早停、正则化、简化模型、数据增强或增加代表性数据;欠拟合可增加模型能力、特征或训练轮数。 过拟合是背得太细,需要减少死记;欠拟合是基础没学会,需要增加学习能力。 过拟合做减法,欠拟合做加法。
13 P-R曲线的横纵轴是什么?A包住B说明什么? 横轴是查全率R,纵轴是查准率P。A整体包住B,表示在相同查全率下,A通常具有更高查准率。 在找全程度相同时,A找出来的结果更加准确。 横轴查全,纵轴查准,越靠右上越好。
14 平衡P和R最常用的指标是什么? 使用F1。F1 = 2PR/(P+R) = 2TP/(2TP+FP+FN)。其中P=TP/(TP+FP)R=TP/(TP+FN) F1像检查两条腿,只要其中一条很弱,整体就跑不快。 P看误报,R看漏报,F1要求两边都好。
15 Fβ中β大于1表示什么? β>1更重视查全率;β<1更重视查准率;β=1就是F1。 查病时怕漏掉病人,可让β大于1;警报怕误报,可让β小于1。 β变大更怕漏,β变小更怕错。
16 测试集何时使用?能否用于调参? 在训练和调参全部完成后使用一次,不能用于调参,否则会发生信息泄露,使评估结果失真。 如果提前看期末试卷再复习,最后的高分就不能证明真正学会了。 训练集用来学,验证集用来选,测试集最后验。
17 完整机器学习项目如何排序? 明确目标→划分数据→训练候选模型→验证集调参→训练集与验证集合并重训→测试集最终评估→部署。 先知道考什么,再练习和模拟;方法确定后完整复习,最后参加正式考试。 定目标→分数据→训练→调参→重训→测试。
18 如何串联整篇文章的逻辑? 训练样本→归纳学习→假设空间→版本空间→归纳偏好→模型选择→泛化评估→处理拟合问题→性能度量→最终模型 机器先从样本找规则,再从合格规则中作选择,最后用新数据和合适指标检查。 看样本、找规则;靠偏好、选模型;用新题、看指标。
相关推荐
cooldream20091 小时前
AI 时代,前端工程师的“新学习路线“—— 从“学框架“到“用 AI“
前端·人工智能·学习
艾斯特_1 小时前
Function Calling与工具调用:让模型从回答走向执行
人工智能·python·算法·ai
道影子1 小时前
阴阳引力多维基元:超越二进制的计算革命
人工智能·深度学习·微服务·云原生·架构
zhoupenghui1681 小时前
大模型核心技术ReAct和Agentic RAG讲解
人工智能·ai·大模型·react·rag·动态推理·agentic rag
学习中.........2 小时前
从 Karpathy 手写 BPE 到 CS336 `train_bpe` 作业实现
人工智能·机器学习·语言模型·自然语言处理
无忧智库2 小时前
产业数字化平台建设方案:从单点工厂改造到城市产业生态的全景落地指南(PPT)
大数据·人工智能
草莓熊Lotso2 小时前
【LangChain】核心组件详解:文档加载器(Document Loaders)
开发语言·c++·python·langchain·软件工程