跳到主要内容

核技巧与最大间隔

支持向量机(SVM)分类

在核映射后的空间里寻找把档位隔得最开的超平面,决策只依赖落在间隔边缘上的支持向量,而不是全部邻居。

更新日期 2026-08-29 机器学习

这篇能回答什么

支持向量机分类回答的是:「在标准化后的面积、单价等坐标里,能不能找到一块(或经核映射后的一块)间隔,把三档住房分开,并且让间隔尽量宽」。宽间隔意味着边界附近的扰动不轻易改判。真正起作用的是支持向量——那些贴在间隔边缘或跑进间隔内侧的点;其余点即使删掉,超平面也可以不变。

适合:有效行是中小规模(本教学为 236 套),特征是定量且已标准化,关心的是边界而不是「最近五套谁多」。三类问题在产品里拆成三套一对多(one-vs-rest)软间隔,再按决策函数最大的一侧给标签。教学占用里 B 只有 35 套,正好用来讨论少数类在间隔几何里的位置。

什么时候不该用

特征以城市、区域为主、没有可靠的内积时,核距离也编不出来,应改CatBoost分类。行数上万且只要一条便宜基线时,ExtraTrees分类更合适——核矩阵随 N² 涨。只要邻居票、不要间隔,用K近邻(KNN)分类。二分类金标准加连续得分、要画灵敏度曲线时,主文应是ROC 曲线诊断分析,SVM 只负责产出得分。

如何选择方法

间隔、邻居、乱切树是三条不同的决策几何。SVM 最小化 \|w\| 同时惩罚闯间隔的松弛变量;KNN 不估计 w;ExtraTrees 连切点都随机。线性核等于在原空间画一张平的缝,RBF 核把点抬到无限维再隔。默认 RBF 适合「单价与面积交织、三类不是一层纸能切开」的住房表;若你坚信只有一条线性规则,应显式改线性核,而不是看完 RBF 占用再声称「模型是线性的」。

  • 支持向量机(SVM)分类:定量特征 + 定类 Y;RBF 核、C=1;输出各类占用(硬标签)。

  • K近邻(KNN)分类:同样标准化,但判决是 K 票,没有间隔宽度。

  • 二元逻辑回归:要的是 OR 与推断,不是最大间隔;Y 必须恰两类。

  • 线性判别:共用协方差的线性轴,无核、无松弛 C。

输入、输出与限制

输入

特征为定量列。目标为定类。三类及以上自动走一对多:每一类对「其余类」各拟合一台软间隔机,预测时取决策函数最大的类。

  • 特征变量:最少 2 个,最多 40 个定量。

  • 目标变量:正好 1 个定类,2–10 个水平。

输出

占用表给出硬标签落入 A/B/C 的频数与占比。本例 B=35(14.83%)是三档里最瘦的占用。产品不输出 Platt 概率,也不把支持向量的行号印在占用表里;图为占用柱。要写「有多少个支持向量」,需看工作台附加摘要,不能从 35 反推。

产品限制

  • 有效行至少 20;超过 3500 行拒绝(核矩阵内存),请先抽样。

  • 默认核为 RBF,C=1,γ=1/p(p 为特征数);线性核需在参数里显式改。

  • 每列 Z-score;未标准化时间隔会被单价轴拉歪。

  • 多类固定 一对多,不是一对一、也不是 Crammer-Singer 多类间隔。

  • 不做概率标定:没有「预测为 B 的概率 0.62」这种列。

  • SPSS 的 SVM 过程常带不同的核默认与概率输出;不要用它的后验去对 14.83% 占用。

案例

研究问题。 用面积、楼层、总楼层、建筑年份、单价五列,在 RBF 核下看三档标签能否被最大间隔分开,并检查少数档会不会被间隔推到很瘦的占用。

有效样本 236。占用 A 86、B 35、C 115。B 不足一成五,和 KNN 那次 B 仍有 64 套形成对照:间隔几何与邻居投票不是同一张地图。下载评价表,只使用上述五列定量,目标为三档标签。

下载教学示例表(综合评价)

在 StatsX 中操作

  1. 步骤 1 · 打开评价表

    确认 Sheet1。行数 600 低于 3500 上限,整表可进核矩阵;本教学有效 236 行来自列删除。

  2. 步骤 2 · 检查量纲

    单价与面积必须作为定量进入,好让 Z-score 把间隔从「元」里救出来。不要勾城市。

  3. 步骤 3 · 点选支持向量机分类

    目录搜「SVM」或「间隔」。核保持 RBF,除非方案预先写了线性。

  4. 步骤 4 · 五列坐标 + 三档 Y

    特征同 KNN 骨干;目标为三档标签。一对多由产品自动拆,不必自己复制三份表。

  5. 步骤 5 · 盯住最瘦的一档

    B 若只有三十多套,先问该类在一对多里是否总被「其余类」的厚间隔吃掉。

打开住房表准备 SVM
评价表示例上传到工作台。
定量特征画像
五列定量具备内积结构,城市不进入核。
选择支持向量机分类
选定「支持向量机(SVM)分类」。
为 SVM 指定核与特征
定量特征进 X,三档标签进 Y,核默认 RBF。

如何阅读输出

占用表把 236 套硬标签分成 A 86、B 35、C 115。C 接近一半,B 掉到 14.83%。这是一对多三台机投票后的份额。B 瘦,可能是:(1) 金标准里 B 本来就少;(2) B 对「非 B」的间隔里,松弛把 B 侧推窄了。占用不能单独指认是哪一种。

支持向量机(SVM)分类结果表
项目类别统计量取值
支持向量机(SVM)分类类别 A频数86
支持向量机(SVM)分类类别 B频数35
支持向量机(SVM)分类类别 C频数115
支持向量机(SVM)分类合计有效样本 N236
支持向量机(SVM)分类类别 A占比(%)36.44
支持向量机(SVM)分类类别 B占比(%)14.83
支持向量机(SVM)分类类别 C占比(%)48.73

左右滑动可查看完整表格

教学示例表在 StatsX 工作台中的计算结果口径。

SVM 三类占用表
B 档 35 套应与工作台一致。
SVM 各类占用图
B 柱明显短于 A、C,对应 14.83% 间隔侧占用。

RBF 核软间隔在 236 套上给出的占用极不对称:C 115 套(48.73%),A 86 套(36.44%),B 只有 35 套(14.83%)。间隔分类器会把难以隔开的少数档往支撑更厚的一侧推;B 的占用稀,首先应检查该类支持向量够不够,而不是把 14.83% 写成「B 档市场份额」。

阅读顺序:N 是否低于核矩阵上限 → 最瘦档是否低于约 20 套(本例 B=35,勉强可谈间隔)→ 不要把占用写成概率。若方案要求灵敏度/特异度,把同一套硬标签或决策函数送进 ROC 页,而不是在占用柱上画截断。

理论与公式

二类软间隔在特征映射 \phi 下求解

对偶只出现内积。RBF 核把它换成

C 变大则少容忍闯界,间隔变窄,少数类 B 有时能争回一些占用,同时更易过拟合噪声点。γ=1/p 控制「一只支持向量能管多远」。三类时训练三台机 f_A,f_B,f_C,预测 \hat y=\mathrm{arg\,max}_c f_c(x)。占用 n_c 清点 \hat y=c 的次数,与 \sum_i \alpha_i 的支持向量个数不是同一列。

注意事项

  • 硬标签占用 ≠ 后验概率。14.83% 不是「模型认为 B 的概率」。

  • 一对多会让「其余类」在 B 那一台里天然占优,瘦类更容易被推窄。

  • C 与 γ 是产品默认,看完占用再调属于窥探。

  • 核矩阵限制 3500 行,不是「SVM 不能用于大样本」的理论结论,是本实现的内存闸。

  • 线性核与 RBF 的占用可以差出一整档,方法节必须写核名。

  • 间隔最大化不是因果,也不能代替二元逻辑回归的 OR。

常见问题

参考文献

  • Cortes, C., Vapnik, V. Support-vector networks[J]. Machine Learning, 1995, 20(3): 273–297.

  • Schölkopf, B., Smola, A. J. Learning with Kernels[M]. MIT Press, 2002.

  • 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016.