第四章关键名词全解释(基于书中原文)
1 混淆矩阵(Confusion Matrix)
混淆矩阵展示模型分类的四种可能结果:
书中图 4-8 清楚展示了四格矩阵【引用】:
- TP(真正例):正类预测正确
- FP(假正例):预测为正,但实际为负
- TN(真负例):负类预测正确
- FN(假负例) :预测为负,但实际为正
【引用:混淆矩阵解释见:L1--L27】【】
混淆矩阵是理解后续所有指标的基础。
2 精确率(Precision)是什么?
精确率衡量模型识别出的结果中有多少是相关的。【L30-L31】
公式来自书中:
Precision = TP / (TP + FP)
👉 通俗理解 :
模型说"这是正例"的那些里,有多少是真的?
示例:模型认为 10 条是正面评论,其中 8 条真的正面 → 精确率=8/10=0.8
3 召回率(Recall)是什么?
书中原文:
召回率指的是所有相关类别中有多少被成功识别出来。【L32-L33】
公式来自书中:
Recall = TP / (TP + FN)
👉 通俗理解 :
真实的正例里,你找出来了多少?
示例:共有 20 条正例,你成功找出了 15 条 → 召回率 = 15/20 = 0.75
4 准确率(Accuracy)是什么?
书中原文:
准确率指模型在所有预测中做出正确预测的比例。
公式:
Accuracy = (TP + TN) / (TP + FP + FN + TN)
👉 通俗理解 :
总共预测的结果里,有多少是对的?
但是在类别不平衡时,这个指标经常会骗人(例如 99% 都是负例)。
5 F1 分数(F1 Score)是什么?为什么常用?
书中原文:
F1 分数平衡了精确率和召回率,用于衡量整体性能。
书中公式:
F1 = 2 × (Precision × Recall) / (Precision + Recall)
👉 通俗理解:
精确率和召回率常常冲突,F1 是它们的"折中平均分"。
当你既想要"预测得准"(precision)又想"一个不漏"(recall)时,F1 是最合理的评价指标。
书中示例:
-
嵌入模型 + 逻辑回归 → F1 = 0.85
-
使用零样本分类 → F1 = 0.78
6 逻辑回归(Logistic Regression)是什么?
书中原文:
分类器不限于逻辑回归,可以采用任何形式。
书中解释它的使用方式:
- 将嵌入向量作为输入
- 使用 sklearn 的 LogisticRegression 训练
👉 通俗解释 :
逻辑回归不是"回归",而是一种二分类算法 。
它做的事是:
输入一堆特征(例如嵌入),输出"是正类的概率是多少"。
若概率 > 0.5 → 属于正类,否则负类。
逻辑回归优点:
- 简单、可解释
- 训练快
- 在嵌入固定的情况下,只需训练少量参数
这也是本书选择它作为示例的原因。
7 加权平均(Weighted Average)与宏平均(Macro Avg)
- 宏平均(Macro Avg):每个类别的精确率/召回率/F1 平均,不看样本多少。
- 加权平均(Weighted Avg):按类别数据量加权,更真实反映整体性能。
书中采用的是 Weighted F1。
8 零样本分类(Zero-shot Classification)
书中原文:
没有标注数据的情况下探索分类任务是否可行。
通俗解释:
不用训练数据,让模型直接根据文字理解来分类。
总结
| 名词 | 通俗解释 |
|---|---|
| 精确率 | 预测为正的里,有多少是真的? |
| 召回率 | 真实为正的里,你找到了多少? |
| F1 分数 | 精确率与召回率的折中平均,分类模型最常用指标 |
| 准确率 | 总体预测正确比例,但不适合类别不平衡 |
| 混淆矩阵 | 分类结果的四格表:TP/FP/FN/TN |
| 逻辑回归 | 最经典的二分类模型,输入向量输出概率 |
| 零样本分类 | 不需要标注数据,模型靠理解直接分类 |
第四章问答
第 1 题:为什么"嵌入模型 + 逻辑回归"可以做文本分类?
因为嵌入模型将文本映射到一个语义向量空间:
- 相似语义 → 相似向量
- 不同语义 → 分布在不同区域
逻辑回归只需要把这些向量作为"特征"输入,就可以:
- 学习一个线性决策边界
- 将空间分成类别区域
- 新样本落在哪边就属于哪个类
嵌入模型 无需训练 ,逻辑回归 非常轻量,因此整个流程极快、成本极低。
第 2 题:有标注数据时,什么时候仍然会选择零样本分类?
当 标注数据不一致、不可靠、不稳定 时。
零样本分类依赖"标签描述的语义",而不是标注质量。当:
- 标注风格混乱
- 标注规则有偏差
- 标注含义变动
- 标注样本太少
- 类别经常变化
零样本分类反而更稳,因为它用的是模型自己的语义知识。
第 3 题:表示模型 vs 生成模型做分类的主要区别?
表示模型(BERT)
- 输入:文本
- 输出:类别(固定标签)
- 无法生成解释
- 高效、稳定、适合大规模分类
- 有标注数据时性能最好
生成模型(GPT/T5)
- 输入:文本 + prompt
- 输出:文本(可解释、可对话)
- 能写分析、能解释理由
- 灵活、适用于复杂语义
- 适合零样本、动态规则
第 4 题:为什么"嵌入 + LR"训练非常快?
- 嵌入模型完全冻结,不参与训练
- 只训练一个小小的逻辑回归(几千个参数)
- CPU 就能训
- 几秒钟以内即可完成
训练成本几乎为零。
第 5 题:为什么嵌入模型可以做无监督分类?
因为嵌入模型把:
- 语义相似的文本 → 映射到相近向量
- 语义不同的文本 → 映射到不同区域
在这个"语义空间"中,
不需要标签也可以通过相似度或聚类自动分组。
第 6 题:T5 如何把分类任务变成文本生成任务?
T5 采用 Text-to-Text 框架:
- 输入:"sst2 sentence: 这电影太棒了"
- Encoder:编码输入
- Decoder:生成一个文本作为输出(如 "positive")
即:所有任务都被格式化为:
文本 → 文本(包括分类任务)
因此分类结果也是"生成"的文本。
第 7 题:使用 ChatGPT 做分类的优势?
- 不需要训练,只需 prompt
- 能生成原因、解释、分析
- 能根据提示词调整分类规则
- 支持动态类别
- 对模糊语义的理解能力更强
- 更符合人类偏好(RLHF)
- 对复杂任务远比传统模型灵活
第 8 题:为什么"嵌入 + 监督分类"比零样本效果更强?
因为监督学习:
- 直接学习任务的真实规律
- 优化专属的"决策边界"
- 在任务数据分布上拟合得更准
零样本分类只是通过类别名称的语义进行"推断",
没有学习决策边界,所以准确度较低。
第 9 题:表示模型与生成模型的取舍?
✔ 什么时候用表示模型
- 有标注数据
- 追求最高 F1
- 不需要解释
- 要高吞吐量
- 海量数据,低成本场景
- 分类规则明确、稳定
✔ 什么时候用生成模型
- 没有标注数据
- 需要解释、分析
- 规则复杂、语义模糊
- 类别经常变化
- 想通过 prompt 值得调整规则
- 需要自然语言结果
第 10 题:嵌入 + LR vs 微调 BERT 有何区别?(四维度)
✔ 训练成本
- 嵌入 + LR:极低,CPU 即可
- 微调 BERT:高,必须 GPU
✔ 数据需求
- 嵌入 + LR:几十条即可
- 微调 BERT:几千〜几万条
✔ 性能
- 嵌入 + LR:不错(F1=0.85)
- BERT 微调:通常最强
✔ 灵活性
- 嵌入 + LR:灵活,可快速换类目
- BERT 微调:不灵活,换类需重训
第 11 题:为什么大模型不适合百万级数据分类?
- 成本极高(按 token 收费)
- 推理速度慢(自回归生成)
- 输出不稳定(随机性、格式不一致)
- 不适合结构化、大批量处理
- 吞吐量远不如表示模型
第 12 题:逻辑回归如何找到"决策边界"?
逻辑回归:
- 不计算余弦
- 不比较标签向量
- 它做的是:
找到一个最佳的"超平面",把不同类别的向量分开。
新样本落在哪边 → 属于哪类。
第 13 题:为什么标签名称会影响零样本分类?
零样本分类依赖:
- 标签名称的语义
- 标签描述的向量
- 文本向量与标签向量的相似度
因此:
- 标签写错
- 标签模糊
- 标签反着写
- 标签太短、不清晰
都会直接导致结果偏差。
模型不是学数据,而是学标签描述的"语言意义"。
第 14 题:为什么聚类能"自动找出类别"?
因为嵌入模型已经把语义相似的文本映射到相近位置。
聚类算法(如 KMeans)只是:
- 找出自然形成的"向量堆积区"
- 把靠近同一中心点的文本分成一组
无需标签,因为"语义结构"已经在空间中存在。
第 15 题:为什么文本分类是一个"工具箱"?
因为分类任务的需求高度多样:
- 有无标注
- 高精度 vs 快速上线
- 需要解释 vs 不需要解释
- 类别是否固定
- 数据规模大小
- 成本要求是否严格
不同任务 → 最优方案完全不同。
工具箱包括:
- BERT 微调
- 嵌入 + 逻辑回归
- 零样本分类
- 生成模型分类
- 聚类(无监督)
真正的能力不是掌握一个模型,而是:
根据任务条件选择最优方案。