机器学习分类
adaboost分类
把上一轮分错的个案加重,训练一串弱树桩,再按加权错误率给每棵树一个发言权,组合成强分类器。
这篇能回答什么
AdaBoost 问的不是「第一根树桩准不准」,而是:把被分错的学生在下一轮变得更「吵」之后,弱分类器委员会能不能把三个年级拉开。每一轮只允许很浅的树(常是树桩),发言权 α_t 由该轮加权错误率决定——错得越少,这根树桩话越大。指数损失会把注意力推到难例上,所以标签填错时,它也会越学越盯着那些错行。
学生问卷教学运行用就读年级当三档金标准(表内 A/B/C),特征用数学学习兴趣、课堂专注、教学吸引力、家庭学习支持等量表。完整个案 189,三档大约 31% / 25% / 44%,没有哪一档压过一半太多。这种占用下,提升才有「难分年级」可加重;若像住房表那样六成同一档,第一轮树桩会先躺在多数类上。
如何选择方法
提升与袋装的方向相反。袋装并行、平等投票;AdaBoost 串行改权,专门惩罚上一轮的错误。和逻辑回归比:两者都是加性模型,但逻辑回归加的是特征的 βx,AdaBoost 加的是整棵弱分类器乘以 α_t,从 α 反推「兴趣的优势比」没有定义。
adaboost分类:浅树 + 样本权重 + SAMME 多类组合。
随机森林:并行袋装,对填错标签更钝。
GBDT:同样串行,但拟合的是损失的负梯度,不是指数损失加权重。
多项逻辑回归:一次估计全部 logit 系数,给出 OR。
输入、输出与限制
输入
标签是名义定类(本案例为年级三档)。特征以李克特 1–5 与少量定类为主。编号、准标识符不要进。完整个案按分析列成表删除,所以 N=189 小于问卷全表 500。
特征变量:最少 1 个,最多 30 个。
标签变量:正好 1 个定类,水平 2–10。
输出
教学表是年级占用:项目写「adaboost分类」,三类频数与占比,外加合计 N。完整运行另有各轮加权错误、α_t 与训练/验证曲线。43.92% 是 C 档学生占比,不是提升后的命中率。
产品限制
基学习器默认深度 1 的树桩,可选深度 2;再深就不再「弱」,提升会很快记住噪声。
迭代默认 50,上限 200。加权错误率 ≥ 0.5 的轮次会被丢掉或提前停。
多类采用 SAMME(离散),输出是加权投票,不是天然概率。
有效行至少 30。
SPSS 没有 AdaBoost 菜单。不要拿「决策树 CRT 反复跑」冒充提升权重。
案例
研究问题。 教研组怀疑兴趣、专注、教学吸引力这些量表能否把五年级、四年级、六年级(教学记号 A/B/C)分开,而且特别在意那群「量表长得很像邻年级」的学生。他们不要一棵深树背下 47 个难例,而想看弱树桩在加重之后还认不认得这群人。
成表删除后剩下 189 人:A 59(31.22%)、B 47(24.87%)、C 83(43.92%)。最大档 43.92%,最小档仍有约四分之一。这种占用让指数损失有东西可追——B 档 47 人若总被树桩漏掉,下一轮权重会明显抬头。下载学生问卷,标签勾就读年级,特征勾兴趣、专注、教学吸引力、家庭支持。
在 StatsX 中操作
步骤 1 · 载入学生问卷
工作表选「有效样本数据」。单文件不超过 20 MB。厌学多选题那几列先不要全部塞进特征,除非你打算解释稀疏 0/1。
步骤 2 · 核对接力年级是不是三档
画像里就读年级应能数出多个水平。本页占用按三档阅读;若你过滤掉一个年级,权重更新会按剩下的类重来。
步骤 3 · 搜索 adaboost 分类
目录里回归与分类是分开的。本页预测的是年级名义类,不是兴趣均分。
步骤 4 · 年级进标签,量表进特征
标签:就读年级。特征:数学学习兴趣、课堂专注情况、教学吸引力、家庭学习支持。迭代先用默认 50。
步骤 5 · 看权重有没有把小班抬起来
先对 59+47+83=189。然后看训练曲线:若某一轮加权错误冲过 0.5,后面的树不应再进委员会。B 档人数最少,检查它有没有在后半程被反复点名。




如何阅读输出
这张表是标签直方图,是提升的起点。189 名完整个案里,三个年级分别 59、47、83 人。没有哪一档压过一半太多,委员会才有「难分年级」可加重。把 43.92% 写成 AdaBoost 准确率,等于把先验抄进了结果节。
| 项目 | 类别 | 统计量 | 取值 |
|---|---|---|---|
| adaboost分类 | 类别 A | 频数 | 59 |
| adaboost分类 | 类别 B | 频数 | 47 |
| adaboost分类 | 类别 C | 频数 | 83 |
| adaboost分类 | 合计 | 有效样本 N | 189 |
| adaboost分类 | 类别 A | 占比(%) | 31.22 |
| adaboost分类 | 类别 B | 占比(%) | 24.87 |
| adaboost分类 | 类别 C | 占比(%) | 43.92 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


分类语言:先验接近(31 / 25 / 44),多数类基线只有 43.92%,比住房六成主导档苛刻——瞎猜 C 不再那么好看。指数损失会把总被分错的 B 档学生(47 人)越加越重;若标签里混了「五年级误填六年级」,后半程 α_t 会为这几行发颤。读洞察时找的是「难例有没有被抬起」,不是柱子谁最高。
理论与公式
初始化每条权重 w_i=1/N。第 t 轮在当前权重上拟合弱分类器 h_t,计算加权错误率 ε_t。SAMME 把多类修正写进发言权:
分错的行乘 e^{α_t} 再归一化。最终预测是各轮 h_t 的加权投票。K=3 时,ε_t 必须明显低于随机猜(约 2/3)才配得上正的 α_t;若某轮 ε_t≥1/2,该轮没有信息,产品会丢掉它。
指数损失对远离边界的错分指数放大,这与逻辑回归的对数损失不同:后者对概率 0.01 与 0.0001 的惩罚差是有限的。所以 AdaBoost 更「恨」难例,也更怕贴错的年级。过拟合表现为:训练加权错误被压到近 0,验证错误从某一轮开始抬头——应停在抬头之前,而不是加满 200 轮。
注意事项
N=189 是成表删除后的完整个案,不能拿 500 去对占用。
SAMME 的输出是投票分数,不宜直接当校准概率画 ROC,除非另做标定。
树桩太弱时,五十轮也学不会面积式的深交互;这时应改 GBDT 或加深到 2,而不是盲加轮数。
标签噪声会被当成难例。先用频数扫年级×极端量表格子。
与逻辑回归的 β 不能换算。α_t 是整棵树桩的话权,不是「兴趣」的斜率。
SPSS 无对等过程。和 sklearn AdaBoostClassifier(algorithm="SAMME") 对齐轮数、树深与随机种子。
常见问题
参考文献
Freund, Y., Schapire, R. E. A decision-theoretic generalization of on-line learning and an application to boosting[J]. Journal of Computer and System Sciences, 1997, 55(1): 119–139.
Zhu, J., Zou, H., Rosset, S., Hastie, T. Multi-class AdaBoost[J]. Statistics and Its Interface, 2009, 2(3): 349–360.
Schapire, R. E., Freund, Y. Boosting: Foundations and Algorithms[M]. MIT Press, 2012.