SVM 中 C 参数有什么作用?
简化版
SVM 的 C 是违反间隔惩罚强度:C 大时更重视训练误差、边界更贴数据;C 小时允许更多松弛、间隔更宽、正则更强。它与特征尺度、类别权重和核参数耦合,必须在折内标准化后交叉验证。
详细版
-
软间隔目标由权重范数和 hinge 违约共同组成。
-
C 不是核宽度,也不是直接的间隔长度。
-
样本数变化会影响损失总和口径与合适 C。
-
不均衡任务可使用每类不同 C。
-
极大 C 可能放大异常点并恶化数值条件。
完整版教学
一、C 在模型平滑与违约成本间定价
权重范数小对应更宽、更平滑的边界;松弛损失允许点落入间隔甚至分错。
C 决定一次违约相对缩小权重范数有多贵。
有限 C 允许通过松弛变量获得可行折中。只有数据在当前特征空间可分时,令违约代价很大才可趋近硬间隔解;不可分数据上“无限惩罚”也不能使硬约束突然可行。
二、底层机制与公式
min 0.5||w||^2+C*sum_i xi_i
y_i(w^T x_i+b)>=1-xi_i, xi_i>=0
三、带数字的推演
两个候选边界的 0.5||w||² 分别为 2 和 4,hinge 总和为 3 和 0.5。
C=0.1 时目标 2.3 对 4.05,偏向宽间隔;C=10 时为 32 对 9,偏向少违约。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| 小 C | 正则强、间隔宽 | 可能欠拟合 |
| 大 C | 更贴训练集 | 异常点敏感 |
| class_weight | 按类别调整违约成本 | 会改变分数与校准 |
五、执行流程
Pipeline 内标准化 -> 对数网格搜索 C -> 分组/时间 CV
-> 看支持向量比例与训练验证差距 -> 独立测试 -> 固化 scaler
六、边界条件与工程代价
不同库目标可能使用损失平均或求和,C 不宜跨实现机械复制。
RBF SVM 中 C 与 gamma 必须联合搜索:高 gamma 加高 C 最容易形成碎片化边界。
记忆钩子:把 C 记成“违约罚款”:罚款高,模型努力照顾每个训练点;罚款低,允许少数点越界来换更宽边界。
七、常见误区与追问
-
误区:C 越大间隔越大。 大 C 更少容忍违约,几何间隔常更窄。
-
追问:C=0 可以吗? 会只剩权重正则,失去分类学习意义。
-
误区:C 只影响训练速度。 它直接改变偏差—方差权衡。
-
追问:为何先缩放? 尺度会改变距离、范数和有效惩罚。
-
追问:如何调参? 以 10 的幂次网格起步,并与 gamma 联合交叉验证。
八、加强记忆
加强记忆时把 C 当成松弛变量的单位代价:C 大会强烈惩罚训练违约,边界可能变窄并追随异常点;C 小则接受更多违约以换取更平滑的间隔。它必须与特征尺度、核参数一起在验证集调节。
答题时再补一句:先在训练折内统一特征尺度,再把 C 与核参数联合验证,不能脱离数据尺度孤立解释数值大小。