【菜鸟笔记|机器学习】支持向量机

理论部分:

博主前面学习了线性模型和决策树,支持向量机(SVM)是第三种机器学习模型了。对于二分类问题,可能有很多个超平面可以把样本分开,而支持向量机就是去寻找最中间的那个超平面,也就是具有最大间隔的划分超平面。我们把支持向量机的主问题转化为对偶问题来求解。为了防止过拟合,引入了软间隔支持向量机。对于分类问题用的是支持向量机,对于回归问题则可以类似地使用支持向量回归(SVR)。这部分内容如下:
【菜鸟笔记|机器学习】支持向量机_第1张图片
1.SVM主问题
SVM主问题就是求一个与已知数据集几何间隔最大的那个超平面。超平面可以用法向量表示为:
在这里插入图片描述
我们的目标就是求ω和b。样本中任一点到超平面的几何距离为:

为求得唯一解,令分子(也就是函数距离)等于1。函数距离等于一的向量被称为支持向量,支持向量是距离超平面最近的样本点。这也是支持向量机名字的由来。求一正一负两个支持向量到超平面的距离之和,这样我们得到了一个优化问题:
【菜鸟笔记|机器学习】支持向量机_第2张图片
把求倒数的最大值转化为求平方的最小值,我们得到了SVM主问题:
【菜鸟笔记|机器学习】支持向量机_第3张图片
2.SVM对偶问题
利用拉格朗日乘子法可将主问题转化为对偶问题求解。这么做的好处在于易于引入核函数,且复杂度与m成正比。核函数主要解决的是样本非线性可分的情况,详见西瓜书6.3。引入拉格朗日乘子,SVM的对偶函数为:
在这里插入图片描述
分别对ω和b求偏导,带入上式可消去参数,这样就得到了SVM对偶问题:
【菜鸟笔记|机器学习】支持向量机_第4张图片
目标是求解α,根据α可求解ω和b。求解α的算法是SMO算法,详见西瓜书6.2 。
3.软间隔SVM
在实际任务中不一定能找到一个超平面使得样本完全线性可分。为了防止过拟合,可允许支持向量机在某些样本中出错,这就是软间隔支持向量机。
若采用hinge损失函数,软间隔SVM主问题为:
【菜鸟笔记|机器学习】支持向量机_第5张图片
其中ξ是损失函数,C是个超参数,代表权重。通过拉格朗日乘子法得到软间隔SVM对偶问题:
【菜鸟笔记|机器学习】支持向量机_第6张图片
4.支持向量回归SVR
支持向量回归就是寻找一个宽度为2ε的间隔带,尽可能多的使训练样本落入其中。人为固定ε,引入松弛变量,得到SVR的主问题,再引入拉格朗日乘子,得到了SVR对偶问题:
【菜鸟笔记|机器学习】支持向量机_第7张图片

实验部分:

sklearn支持向量机实现鸢尾花分类。
相关网址:
sklearn支持向量机官方文档
svm.SVC参数说明
svm.LinearSVC参数说明
SVM实现鸢尾花分类官方代码
【菜鸟笔记|机器学习】支持向量机_第8张图片
sklearn的svm有几种kernal,这里用到的是svm.SVC中的liner, rbf和poly,还有svm.LinearSVC。

你可能感兴趣的:(机器学习,svm)