第 4–5 章 · 朴素贝叶斯与决策树
两个"可解释性满分"的经典:朴素贝叶斯用条件独立假设把生成建模成乘法;决策树用一连串 if-else 把判别过程画成树。两者都简单到可以手算,强到至今活跃在工程中。
朴素贝叶斯:条件独立的杠杆
"朴素"在给定类别时特征条件独立——把联合分布的指数级参数压成线性。参数估计(极大似然 / 贝叶斯平滑):
拉普拉斯平滑($\lambda = 1$)防止零概率毁掉整个乘积。适用场景:文本分类(词袋 + 条件独立假设出奇地好用)、快速基线;弱点:强相关特征会被"重复计票"。
决策树:可解释的分类器
三大件的谱系(ID3 → C4.5 → CART):
回归树用平方误差最小化选切分点(CART 回归):分段常数预测。
- 特征选择:信息增益 $g(D, A) = H(D) - H(D|A)$(ID3,偏好取值多的特征)、信息增益比(C4.5 修正偏好)、基尼指数 $Gini = 1 - \sum p_k^2$(CART,二叉、可回归);
- 生成:递归选择最优特征分割,直到叶纯度/深度/样本数满足停止条件;
- 剪枝:预剪枝(提前停)与后剪枝(损失函数 $C_\alpha(T) = C(T) + \alpha|T_{\text{叶}}|$ 的子树代价复杂度剪枝)——剪枝是决策树的正则化。
老师的提醒
- 手算一个迷你决策树(10 条样本,算一次信息增益 + 一次基尼)——两个准则的"品味差异"立刻有体感。
- 树的工程强项(表格数据 + 特征交互 + 缺失值容忍)与弱项(外推、高维稀疏文本)决定了它和线性模型/ boosting 的分工。
自检
- 推导拉普拉斯平滑的作用。
- 信息增益比修正了信息增益的什么偏置?
- CART 剪枝的代价复杂度公式?
更深一层:信息增益的"偏好"与"修正"
决策树特征选择的三个准则各自的性格值得对比:信息增益 $g(D, A) = H(D) - H(D|A)$(ID3——偏好取值多的特征,因为"分得更细"天然减熵)、信息增益比(C4.5 修正——除以特征自身熵,惩罚取值多的偏好)、基尼指数 $1 - \sum p_k^2$(CART——计算快、与熵几乎等价、二叉)。三个准则的差别在"对取值多的特征的惩罚力度"——连续特征的离散化、高基数类别特征的处理,都由准则的性格决定。
决策树的真正结构性优势是可解释性与特征交互的自动发现(树的分裂天然表达交互)与缺失值容忍(分裂时缺失值有专门策略)——表格数据的三大强项。弱点:外推差(树只能内插)、高维稀疏文本上不如线性模型。
推导细读:剪枝是"决策树的正则化"
CART 的代价复杂度剪枝 $C_\alpha(T) = C(T) + \alpha|T_{叶}|$ 与 L2 正则化的结构完全同构(经验损失 + 复杂度惩罚)——剪枝就是决策树的正则化。预剪枝(提前停止)与后剪枝(先生长再剪)的分工:预剪枝快但可能"短视"(看似无用的分裂可能为后续好分裂铺路),后剪枝慢但全局更优。剪枝的 $\alpha$ 由交叉验证选——与岭回归的 λ 同源。树的"过拟合画像"(叶节点只剩一两个样本)一眼可辨。
在真实世界里:决策树是"集成方法的细胞"
决策树的现代价值不是单独使用,而是集成的细胞:随机森林(Bagging + 特征子采样——并行去方差)、GBDT/XGBoost/LightGBM(Boosting——串行去偏差)。表格数据的工业建模(风控、推荐、定价)至今由 GBDT 统治——理解单棵树的分裂/剪枝/正则化,就是理解 GBDT 的全部微观机制。
专题深入:朴素贝叶斯的"条件独立赌注"与决策树的"贪心分割"完整版
第四章-第五章是两个"假设换算力"的典范。朴素贝叶斯的赌注:$P(y|x) \propto P(y)\prod_i P(x_i|y)$——给定类别下特征条件独立,这个赌注在文本分类上惊人有效(词的独立性假设明显错,但分类决策只需要后验排序正确、不需要后验数值正确——"排序正确即可"是它抗假设违背的深层原因)。估计细节:拉普拉斯平滑($\frac{N_{iy} + 1}{N_y + K}$——避免零概率灭掉整个乘积);对数空间计算(连乘下溢 → 连加)。决策树的贪心分割:信息增益(ID3,偏向多值特征——增益率(C4.5)用分裂熵归一修正)、基尼指数(CART,二叉、算得快 $\sum_k p_k(1 - p_k)$)——"纯度提升 = 熵下降 = 信息量"三种度量同一物理。剪枝的两条路线(预剪枝快但欠拟合风险、后剪枝(代价复杂度 α 调优)稳但贵)。
推导细读:CART 的"双职能"与树的方差病灶完整版
CART 算法的完整账:分类用基尼、回归用平方误差最小化分割——"回归树 = 分段常数函数",叶节点输出均值;树的拟合能力随深度指数增长 ⟹ 单树方差巨大(对训练集扰动敏感)——这是随机森林与梯度提升存在的病理学依据。信息论推导的完整版:经验熵 $H(D) = -\sum_k \frac{|C_k|}{|D|}\log_2\frac{|C_k|}{|D|}$、条件熵 $H(D|A)$、增益 $g(D, A) = H(D) - H(D|A)$——决策树训练 = 贪心近似最大化互信息(NP-hard 问题的贪心解)。缺失值与连续值处理(连续特征排序找最优分裂点的 O(m log m)、缺失样本按比例分配到子树——工程完备性是 C4.5/CART 的隐形工作量)。决策树的可解释性资产(if-then 规则天然可审计——金融、医疗合规场景的硬需求)。
工程案例细节:树模型的产业统治力工程版
两章的工程出口:朴素贝叶斯的存量岗位(垃圾邮件过滤的经典基线、情感词典 + NB 的轻量方案——毫秒级推理与极小内存让它活在端侧);决策树家族的现代统治(XGBoost/LightGBM/CatBoost 是表格数据的默认首选——Kaggle 与工业排行榜十年证据:GBDT + 好特征在 90% 的表格任务上先赢);单树的可解释用法(风控规则挖掘、医疗决策辅助——树作为"规则自动机"的价值);特征重要性的工程用法(gain/split/shap 三种口径——SHAP 值把树模型输出归因到特征);RF vs GBDT 的选型(RF 并行降方差、GBDT 串行降偏差——噪声大数据用 RF、精度竞赛用 GBDT 的经验法则)。"树模型 = 表格数据的工业标准件"是 2026 年仍成立的结论——李航第五章读完正好接手这批工具。
例题
数据集 14 条:正类 9(含 6 条"年轻")、负类 5(含 1 条"年轻")。计算特征"年龄=年轻"的信息增益。
解答
熵(根):$H(D) = -\frac97\log_2\frac97\cdot\frac12\cdot2 = -\frac97\log_2\frac97 - \frac57\log_2\frac57 \approx 0.940$。
条件熵:年轻组(7 条:6 正 1 负)$H = -\frac67\log_2\frac67 - \frac17\log_2\frac17 \approx 0.592$;非年轻组(7 条:3 正 4 负)$H \approx 0.985$。
- 增益 > 0 ⟹ 这个划分有用但不算强;信息增益比会再除以"特征自身熵"惩罚取值多的特征。基尼指数版本:$0.5 - [\frac{7}{14}(1 - (6/7)^2 - (1/7)^2) + \dots]$ 给出同样的排序。