跳转至

20 支持向量机

约 497 个字 3 张图片 预计阅读时间 2 分钟

问题背景

将一数据集 S 分为 C1,C2 两类,每个数据有 n 个特征。我们应该如何通过训练集来找出一个超平面,使得它判别效果最好?

问题描述

我们拟将一数据集 S 分为 C1,C2 两类。每个数据有 n 个特征,用 n 维实向量表示,我们有训练集 S={x1,,xm},其中 xiRn,记 yi={1,xiC11,xiC2

假设训练集可线性分离,即存在超平面 wx+b=0,使得对于所有 i,有 yi(wxi+b)>0

超平面

wn 维实向量,b 为实数,wx+b=0 称为 Rn 中的超平面。

  • Rn 中的点 x 到超平面 wx+b=0 的距离为 |wx+b|w
  • ww=1,则距离为 |wx+b|

我们现在要做的是找到一个超平面,使得它到两类数据的距离最大(判别效果最好)。

Alt text

数学规划

根据上面的描述,我们可以得到如下的数学规划问题:

maxmini=1,,m|wxi+b|s.t.yi(wxi+b)0,i=1,,mw=1

本目标含绝对值与极小值,约束含二次函数,极难计算。我们将绝对值去掉,得到如下的数学规划问题:

maxmini=1,,myi(wxi+b)s.t.w=1

证明可以转换

Alt text

但此时目标含极小值,约束含二次函数,依旧难以计算。我们将极小值去掉,得到如下的数学规划问题:

minws.t.yi(wxi+b)1

证明可以转换

Alt text