《机器学习》学习笔记(三):支持向量机(SVM)

MOOC上的《机器学习》课程已经更新完毕了,通过这一系列的课程,使我对机器学习有了一定的了解。这门课真的很精彩,在此再次感谢Andrew Ng教授的付出。

本篇博客将谈一下我对支持向量机(SVM)的理解,相比于逻辑回归,支持向量机是一种更强大的二类分类模型,并且有着广泛的应用。

本文多处公式都将借用Andrew Ng教授授课的PPT,并参考李航博士的《统计学习方法》一书。

转载请注明出处:

支持向量机(SVM)是一种二类分类模型,它能使分类间隔最大化,并且还包括核技巧,这些特点都使它成为一个强大的分类器。本文在叙述的过程中,主要给出支持向量机(SVM)的思路,并从工程的角度给出使用方法,如果你对背后的数学原理感兴趣,请自行查阅相关资料,文中如有理解不当的地方,欢迎批评指正。

支持向量机可以从逻辑回归引申得来,对于逻辑回归,有下图:

逻辑回归利用误分类最小的策略求得分离超平面,不过这时的解是有无穷多个的,而支持向量机利用间隔最大化求最优分离超平面,其解是唯一的。

支持向量机在此处的不同在于:

支持向量机的代价函数如下,在训练时,我们的目的就是要最小化该代价函数:

SVM还可以具有核函数,当我们要解决的问题具有线性的决策边界时,,我们使用线性核(即不使用核函数)就可以了,但如果我们要解决更加复杂的非线性分类问题时,就可以使用一些核函数,好比高斯核,进行分类。

在使用核函数时,我们首先选定几个标记(一般选择原始的输入特征即可),然后计算每个特征与每个标记的相似度,之后把相似度作为最后的特征,送进没有核函数的支持向量机进行训练,这就是核技巧。当我们选择使用高斯核时,相似度的计算方法如下:

其中,x为特征,l为我们选择的标记(选择输入的特征作为标记即可),我们需要遍历每一个标记l(i),计算输入特征与l(i)的相似度f(i)。其流程总结如下:

同逻辑回归一样,我们还可以引进正则化项,来避免对训练数据的过拟合,添加正则化项之后的代价函数如下:

最后给出实现SVM时的注意事项:

其中,C可以协调正则化的程度,delta可以协调计算相似度时的方差与偏差。

下面给出高斯核函数的matlab代码:

这一次是一个告别,或者一个永远的告别,

《机器学习》学习笔记(三):支持向量机(SVM)

相关文章:

你感兴趣的文章:

标签云: