参考教程:点击打开链接
参考教程使用的是OpenCV 2.0 版本,这里将其修改为3.0版本。
1.SVM(支持向量机)
SVM是一种训练机器学习的算法,可以用于解决分类和回归问题。
正式定义:是一个能将不同类样本在样本空间分割的超平面,给定一些标记好的训练样本,SVM算法输出一个最优化的分隔超平面。
判定是否为最优平面的依据:
如上图所示,给定一些分属两类的特征点,这些点可以通过直线分割,我们要找到一个最优的直线。满足的直线很多,该怎么定义最优?有个评价标准是直线到所有点的距离最远。距离样本点太近的话,直线对噪声敏感度高,泛化性比较差。
SVM算法就是找到能将某个值最大化的超平面,这个值是超平面离所有样本点的最小距离。这个距离叫间隔。
相比较其他机器学习算法,它的优点有样本小 、结构风险小、非线性等。