CART 分类树和回归树有什么区别?
简化版
CART 的分类树通常用基尼不纯度选择划分,叶子输出类别概率或多数类;回归树通常用平方误差下降选择划分,叶子输出目标均值。两者都构造二叉树,核心差别在损失函数和叶子预测值。
详细版
-
分类目标离散,候选切分比较加权 Gini;回归目标连续,比较左右节点的残差平方和。
-
分类叶概率来自叶内各类频数,可再做平滑;回归叶值在平方损失下取均值最优。
-
CART 每次产生两个子节点,类别特征也会被划成两个集合。
-
停止条件和代价复杂度剪枝框架可以共用,但评估指标不同。
-
回归树不能外推超过训练叶值范围,分类树的叶频率也不天然等于校准概率。
完整版教学
一、同一棵二叉树,优化两种不同风险
CART 都采用贪心递归划分:枚举特征与阈值,选择即时损失下降最大的候选。
分类损失衡量类别混杂程度,回归损失衡量数值离散程度。
树结构相同不代表预测含义相同。
分类叶存类别分布,回归叶存一个常数;换用绝对误差时,回归叶的最优常数会从均值变为中位数。
二、数学机制怎么落到节点上
Gini(S) = 1 - sum_k p_k^2;SSE(S) = sum_i (y_i - mean(S))^2。
Gini(S) = 1 - sum_k p_k^2
SSE(S) = sum_i (y_i - mean(S))^2
gain = impurity(parent) - weighted_impurity(children)
三、带数字的推演
父节点有 6 个样本,标签 [0,0,0,1,1,1],Gini=0.5。
某切分得到 [0,0,0,1] 与 [1,1],加权 Gini=4/6×0.375+2/6×0=0.25,下降 0.25;回归任务则会对同一候选计算两边 SSE。
四、方法对比
| 方法/对象 | 核心特点 | 代价或限制 |
|---|---|---|
| 分类 CART | Gini/交叉熵 | 多数类或类频率 |
| 回归 CART | 平方/绝对误差 | 均值或中位数 |
| 共同点 | 贪心二叉切分 | 可预剪枝和后剪枝 |
五、从训练到验证的执行链
根节点数据 -> 枚举特征/阈值 -> 计算损失下降 -> 选最佳二分
-> 递归生长 -> 满足停止条件 -> 叶子计算类别分布或回归常数
六、边界条件与工程代价
贪心最优不是全局最优:第一层稍差的切分可能通向更好的整棵树,但 CART 不会回溯搜索全部树结构。
剪枝通过验证风险补偿局部生长的过拟合。
类别不均衡时,多数类和普通 Gini 可能忽视少数类;回归有重尾异常值时,均值与平方损失也很敏感,需要权重、稳健损失或目标变换。
记忆钩子:把 CART 共性记为“贪心二分后剪枝”,差异记为“分类看纯度、回归看残差;分类叶存分布、回归叶存最优常数”。
七、常见误区与追问
-
误区:分类树和回归树只是输出类型不同。 切分损失和叶值求解也不同。
-
追问:为什么回归叶输出均值? 均值使该叶内平方误差的一阶导数为零。
-
误区:CART 可以产生任意数量分支。 经典 CART 每次做二叉划分。
-
追问:改用绝对误差时叶值是什么? 使绝对偏差最小的是中位数。
-
追问:两类树都能剪枝吗? 可以,但验证风险要使用各自任务的损失或指标。
八、加强记忆
把 CART 共性记为“贪心二分后剪枝”,差异记为“分类看纯度、回归看残差;分类叶存分布、回归叶存最优常数”。
再补上贪心局限与异常数据边界,回答就完整。