主要来自OpenCV教程
1、什么是支持向量机SVM
支持向量机是一个分类器,正式的定义是一个能够将不同类样本在样本空间分隔的超平面,换句话说,给定一些标记(label)好的训练样本,SVM算法输出一个最优化的分隔超平面。
如何来界定一个超平面是不是最优的:
假设给定一些分别属于两类的2维点,这些点可以通过直线分隔,我们要找到一条最优的分割线。
在上面的图中,你可以直觉的观察到有多重可能的直线可以将样本分开,也可以凭直觉来定义一条评价直线好坏的标准:
距离样本太近的直线不是最优的,因为这样的直线对噪声敏感度高,泛化性差。因此要找到一条直线,离所有的点的距离最远。由此,SVM算法的实质是找出一个能够将某个值最大化的超平面,这个值就是超平面离所有训练样本的最小距离。这个最小距离用SVM术语来说叫做间隔。概括说就是最优分割超平面,最大化训练数据的间隔。
2、如何计算最优超平面
公式一定义了超平面的表达式: