Machine Learning---SVM
来源:互联网 发布:java论坛哪个好 编辑:程序博客网 时间:2024/06/16 14:11
支持向量机是一种分类算法,在处理线性不可分数据上具有很高的性能。它通过一种映射,将原始数据映射到高维的空间,在该空间上搜索最佳分离平面,称为最大边缘超平面(Maximum Marginal Hyperplane,MMH),该平面到数据边缘两侧的距离最大且相等,在边缘样本点称为支持向量(Support Vevtor),SVM算法的目的就是求出最大边缘超平面。
要求解出MMH,有如下几个关键点:
1 如何刻画最大边缘超平面,也就是如何把一个实际的例子用数学的语言表达出来。
假设该MMH为 w.x+b=0,其边缘平面为:w.x+b=1,w.x+b=-1,找到x1,x2两个点,将这两个式子相减可以得到:w.(x1-x2)=2,由点积的几何意义做一个变换:||w|| ||x1-x2|| cosθ=2,即:||w|| d=2,d=2/||w||。这样我们就将最大边缘超平面量化,我们接下来要做的就是在某些限定条件(该条件实质就是分类的条件)下,最大化d,写成规范表达式为:
解释一下为什么是平方,因为||w||是向量w的范数/长度,它是带有根号的,与除以2一样,可以在求导数时简化算式
2 如何求解
(1)我们采用拉格朗日乘子化简,准确的说是采用KKT最优化条件,它是拉格朗日乘子的推广,能够求解非等式约束,化简可得:
其中的α称为拉格朗日乘数,上述所做的其实是拉格朗日的对偶问题,对第一个式子分别求出对w,b的偏导数,在带回原式。
(2)用SMO(Sequential Minimal Optimization)算法求解w,b。
在我们要求解的式子中,只有α是未知数,我们假设有n个,首先在约束范围类随机给n-2个α赋值,剩余的2个α为本次迭代所要求的未知数,将已知带入可以的到一个二次的方程,采用求导公式求出未知的2个α,接下来的迭代均采用这种模式,直到α稳定,这就是最终结果。
①为什么每次迭代只保留2个未知数,若只有一个未知数,可以从已知直接求出,而不必经过计算,这显然不是我们想要的,若有3个未知数,显然比2个未知数在计算上复杂,此外,在有2个未知数的情况下,还可以找到两者的关系,更有益于计算
②如何选择更新的变量,第一次是随意选择的,之后选择的变量是根据经验来的,经验说应选取非边缘的变量。
3 在没有绝对的分离平面时,我们采用松弛变量与惩罚函数(使不可分变量最少,间隔最大)有两种形式L1,L2,。再次使用拉格朗日乘子,转化为凸优化问题求解,与无惩罚函数相比,只是在约束上α增加了上限C
4 为什么SVM在处理线性不可分数据有很大优势
SVM相对于其他分类算法,其独特之处在于核函数的使用。之前提到的该算法通过一种映射φ(x),将原始数据映射到高维的空间,使在低维空间线性不可分的数据在高维空间内可分,但这样却造成了维度灾难,加大了计算的难度,这时引入核函数κ(x,z),我们可以在低纬度求出核函数的值,该值就相当于在高纬度计算的φ(x),φ(z)的内积,从而解决计算上的问题.
怎样才是有效的核函数,这里有一个Mercer定理: 如果κ是一个有效的核函数,当且仅当对于训练样本其对应的核函数矩阵是对称半正定的。
而核函数又如何选取呢,这没有一个统一的标准,只能每一个都试一下,从中选取最优。常见的核函数:
5 如何预测
- Machine Learning SVM
- Machine Learning (2) SVM
- Machine Learning---SVM
- 【Machine Learning】笔记:SVM
- Machine Learning---5--SVM
- [Machine learning]SVM实验续
- 【Machine Learning】SVM学习笔记
- [Machine Learning] SVM--support vector machine
- 【Machine Learning实验5】SVM实验
- Stanford Machine Learning -- 第六讲 SVM
- Machine learning-------------SVM(support vector machines)
- machine learning(3)---SVM算法原理
- 【Machine Learning实验5】SVM实验
- Machine learning-------------SVM(support vector machines)
- [Machine Learning] SVM系列转载文章
- Kernels in Machine Learning and SVM
- svm之使用SVM(斯坦福machine learning week 7)
- Machine Learning机器学习 - Supervised Learning监督学习 - SVM(Support Vector Machine)
- 连续子数组的最大和
- 路由及交换机设置上网的几种方式
- angularJS搭建环境
- 6月29
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- Machine Learning---SVM
- UVA 10935
- Hash length extension attacks 分析
- Android adb shell dumpsys activity broadcasts分析
- 计算机网络基础知识
- servlet的url-pattern匹配规则
- sql语句学习记录(一)
- 今天天气不错
- Elasticsearch5.3 JAVA代码添加数据 Demo