机器学习分类
决策树分类
用一棵 CART 树把定量或定类特征切成轴平行区域,每个叶子用该区域内的多数类作为预测,并给出可以念出来的分裂路径。
这篇能回答什么
CART 分类树回答两句可以写进结果节的话:这套房(或这个人)被判成哪一档;沿着根节点往下,是哪几条「面积是否大于某阈值、楼层是否低于某层」的轴平行规则把它送进那片叶子。叶子里不再估计对数几率,只数该区域内金标准的多数类。StatsX 本页先甩出一张三档占用表,逼你承认先验,再谈树有没有把纯度做得比「全猜最大类」更高。
综合评价教学表把房源的户型信息压成三个教学档位(表中的类别 A / B / C),特征用面积(平米)、楼层、总楼层、建筑年份。完整个案 375。C 档独占约三分之二,这是分类问题的先验占用,不是模型分数。
什么时候不该用
你要的是「面积每多 10 平米,落入高档的发生比变多少」这类带标准误的边际效应,应改用多项逻辑回归或二元逻辑回归。没有金标准、只想把房子切开看画像,用K-Means 聚类分析。单棵树方差大、换一批房源规则就跳,若目标是稳住预测而不是打印规则,应换随机森林分类。编号列、房源 ID 不能当特征。
如何选择方法
先问自己:交付物是一张能念给业务听的规则清单,还是一个更稳的黑盒预测器,还是一组带置信区间的优势比。只有第一项,才值得停在 CART。规则会随样本抖动时,集成比加深这一棵树更合理;关系近似线性、又要写「控制其他变量之后」时,逻辑回归更干净。
决策树分类(CART):1 个定类标签 + 若干特征;输出占用、可解释分裂与叶内多数类。
随机森林 / AdaBoost / GBDT:多棵树,牺牲可读路径,换方差或偏差。
多项 / 二元逻辑回归:线性 logit,报告 OR,不做矩形切割。
线性判别:假设组内协方差相近,找分离超平面,不是递归二分。
输入、输出与限制
输入
标签必须是定类,至少两个互斥水平;教学运行把户型压成三档。特征可以是面积这类定量,也可以是装修、城市这类定类(内部会编码)。房源 ID、小区名这类准标识符会被拒绝。
特征变量:最少 1 个,最多 40 个。
标签变量:正好 1 个定类字段,水平数 2–12。
输出
教学表四列:项目、类别、统计量、取值。统计量只有频数、占比(%)与合计 N,用来读标签占用。完整工作台还会展开树路径与叶内多数类;本页取值列没有准确率、没有 F1、没有 AUC,248 不能写成「答对了 248 套」。
产品限制
分裂准则固定为 CART 基尼,不是 C4.5 的信息增益比,也不是 SPSS 默认有时出现的 CHAID。
默认最大深度 8,叶节点至少 5 条;深度开到「纯叶子」会在少数类上过拟合。
有效行至少 20;拟合最多使用 20000 行。
类别超过 12 个会拒绝,避免把准连续编号当成标签。
这些上限是 StatsX 实现,不要拿 SPSS 决策树「生长 / 修剪」对话框的默认最小个案去逐格对。
案例
研究问题。 中介想用面积、楼层、总楼层、建筑年份,事先判断一套挂牌房更像哪一种户型档,并且希望把规则打印出来给新人背,而不是只给一个黑盒分数。
教学运行在完整个案 375 上清点金标准占用:A 档 75 套(20.0%),B 档 52 套(13.87%),C 档 248 套(66.13%)。C 是主导档。一棵永远预测 C 的树桩,命中率已经等于 66.13%,任何「看起来很高」的训练准确率都要先减去这个数。下载综合评价表,标签用房屋类型(或你事先合并好的三档),特征勾选面积、楼层、总楼层、建筑年份。
在 StatsX 中操作
步骤 1 · 装入综合评价表
把住房 xlsx 拖进工作台,确认工作表能看到房屋类型、面积、楼层。单文件不超过 20 MB。不要把「房源ID」一列留下当特征。
步骤 2 · 先看标签有几档
画像里核房屋类型的水平数。若原始有六种户型,教学阅读按三档占用理解:本页 A/B/C 是压扁后的金标准,不是六类原名。
步骤 3 · 点选决策树分类
目录搜索「决策树」或 CART,选分类而不是回归树。适合标记只是提示,户型档才是你的 Y。
步骤 4 · 挂上特征与档位
标签放房屋类型(或你的三档列);特征放面积(平米)、楼层、总楼层、建筑年份。点运行。
步骤 5 · 先读占用,再顺着根往叶走
占用表上的 75 / 52 / 248 必须加总为 375。只有确认 C 档先验之后,才去看第一刀切在面积还是楼层,以及少数类叶子里是不是只剩个位数。




如何阅读输出
取值列是分类器的先验台账。A 75、B 52、C 248,加总 375,与合计行一致。占比 20.0% / 13.87% / 66.13% 的分母也是 375。项目列重复「决策树分类」,只表示这张占用属于本次 CART 运行,不是三棵不同的树。C 档 248 套是金标准落在主导户型的房子数,不是这棵树答对了多少套。
| 项目 | 类别 | 统计量 | 取值 |
|---|---|---|---|
| 决策树分类 | 类别 A | 频数 | 75 |
| 决策树分类 | 类别 B | 频数 | 52 |
| 决策树分类 | 类别 C | 频数 | 248 |
| 决策树分类 | 合计 | 有效样本 N | 375 |
| 决策树分类 | 类别 A | 占比(%) | 20.0 |
| 决策树分类 | 类别 B | 占比(%) | 13.87 |
| 决策树分类 | 类别 C | 占比(%) | 66.13 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


分类语言里的第一句话应当是:这是一个三分类、先验严重倾斜的任务,多数类基线 = 66.13%。第二句才是树有没有用面积等特征把叶子纯度做到高于这个基线。B 档只有 52 套,深度 8 的树很容易切出「只装得下两三套」的纯叶子——训练纯度为 1,换一批两室房就塌。读图时不要把 C 柱最高写成「模型认为大户型最好」。
理论与公式
对节点 t,记各类占比为 p_k(t)。CART 用基尼不纯度衡量「再随机抽一条,按节点分布去猜会猜错的概率」:
候选分裂把节点切成左右两块,以样本量加权后的基尼下降作为切分分数。本教学先验 p_C≈0.6613 时,根节点基尼已经小于均匀三分类的 2/3,树必须证明切一刀之后两侧更纯,而不是只把多数类再声明一次。
叶子的预测是 arg max_k n_k(leaf),即叶内占用最多的那一档。这与逻辑回归的 softmax 概率不同:CART 给出的是矩形区域上的硬标签,没有「面积每增加一平米」的连续斜率。过拟合的典型机制是:深度不受限时,B 档 52 套会被切成许多近乎单点的纯叶,训练误差趋近 0,结构方差爆炸。
注意事项
占用表不是混淆矩阵。对角线上「判对多少」要另表才有;本页只有金标准直方图。
多数类基线 66.13% 必须写进方法。高于它才谈得上树学到了户型结构。
轴平行切割抓不住「面积与楼层必须同时大」的对角线关系,除非用很深的阶梯去逼近。
换 20% 房源,第一刀阈值常会跳。规则能沟通,不代表规则稳定。
基尼对多数类友善:B 档 13.87% 的分裂增益容易被 C 档淹没,少数类召回不会自动变好。
SPSS CRT 的最小个案、先验选项与 StatsX 默认叶大小不同,树形不必长得一样。
常见问题
参考文献
Breiman, L., Friedman, J., Olshen, R., Stone, C. Classification and Regression Trees[M]. Wadsworth, 1984.
Quinlan, J. R. C4.5: Programs for Machine Learning[M]. Morgan Kaufmann, 1993.
周志华. 机器学习[M]. 北京: 清华大学出版社, 2016.