svm算法是有监督还是无监督(svm算法的性能取决于)
摘要:随着机器学习的不断扩展,支持向量机(SVM)已经成为很多AI工程师用得到却又不知道的算法,通过这篇文章大家可以对SVM算法有个常识性的认知。
SVM是机器学习中经经常使用到的算法,很多分类和回归问题都会涉及到SVM算法。此外,还可以将SVM算法和kernel trick技术结合使用,利用kernel trick技术进行数据的转换,再根据转换信息在可能的输出之中找到一个最优的边界。一句话概述SVM就是做很多异常复杂的数据转换工作,接着根据预定义的标签或者输出,进一步计算出如何分离用户需要的数据。
SVM的核心思想可以概括为两点:
一、它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
二、它基于结构风险最小化理论之上再特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。
接下来通过图解向大家演示support vector machine是怎么应用的:
想要将给定数据分为两类,进而得到一个超平面,最优的超平面是到两类的 margin 达到最大,margin就是超平面与离它最近一点的距离,如下图所示,Z2>Z1,所以绿色的超平面比较好
把此超平面用一个线性方程表示出来,位于线上方的一类,数值必将都大于或者等于1,而以线为界限的另一类数值必将小于或者等于-1
点到面的距离可由下图中的公式通过计算得出
由上图的公式计算可以得到 total margin 的表达式如下,目标是最大化这个 margin,就需要最小化分母,进而,演变为了一个数据优化问题
随便举个简单的例子:任意给出三个点,找到最优的超平面,定义了 weight vector=(2,3)-(1,1)
得到 weight vector 为(a,2a),将两个点代入方程,代入(2,3)另其值=1,代入(1,1)另其值=-1,求解出 a 和 截矩 w0 的值,进而得到超平面的表达式。
a 求出来后,代入(a,2a)得到的就是 support vector。
a 和 w0 代入超平面的方程就是 support vector machine。
通过以上的介绍和图解,相信读者已经对SVM有了初步的认识,或许不少读者都已对SVM清晰明了。有些人会有一些小小的疑惑,假如SVM真如所说的这么强大,为什么不能用SVM来解决一切问题呢?巧合的是,SVM最厉害的地方也是最薄弱的地方,以当下的科学水平而言,复杂的数据信息转换和边界的产生结果都很难进行阐述。
SVM还有诸多难点亟待解决,让我们保持对科学技术的谦逊与耐心,继续深入学习,横向拓展SVM算法。
AI交流群
目前Terminai建立了专门为人工智能爱好者和从业者服务的核心群,群内有大量来自百度、阿里巴巴、腾讯、科大讯飞、图谱科技等公司的朋友,以及中科院、清华、纽约大学、ENSEA等高校的同学。
欢迎大家进群交流AI相关,有意向者添加terminai小助手wx【terminai1】,备注【公司/学校+研究方向+姓名】,审核后即可入群。