正好最近自己学习机器学习,看到reddit上 Please explain Support Vector Machines (SVM) like I am a 5 year old 的帖子,一个字赞!于是整理一下和大家分享。(如有错欢迎指教!)
支持向量机/support vector machine (SVM)。
当然首先看一下wiki. Support Vector Machines are learning models used for classification: which individuals in a population belong where? So… how do SVM and the mysterious “kernel” work?
好吧,故事是这样子的:
在很久以前的情人节,大侠要去救他的爱人,但魔鬼和他玩了一个游戏。
魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。”
于是大侠这样放,干的不错?
然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营。
SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。
现在即使魔鬼放了更多的球,棍仍然是一个好的分界线。
然后,在SVM 工具箱中有另一个更加重要的 trick。 魔鬼看到大侠已经学会了一个trick,于是魔鬼给了大侠一个新的挑战。
现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间。
现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。
再之后,无聊的大人们,把这些球叫做 「data」,把棍子 叫做 「classifier」, 最大间隙trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」。
参考:
Please explain Support Vector Machines (SVM) like I am a 5 year old. : MachineLearning
Support Vector Machines explained well
SVM是什么?
SVM - support vector machine, 俗称支持向量机,为一种supervised learning算法,属于classification的范畴。 在数据挖掘的应用中,与unsupervised的Clustering相对应和区别。 广泛应用于机器学习(Machine Learning), 计算机视觉(Computer Vision) 和数据挖掘(Data Mining)当中。 SVM大致原理如图1,
假设我们要通过三八线把实心圈和空心圈分成两类。 那么有无数多条线可以完成这个任务。 在SVM中,我们寻找一条最优的分界线使得它到两边的margin都最大。 在这种情况下边缘加粗的几个数据点就叫做support vector,这也是这个分类算法名字的来源。
拓展至任意n维乃至无限维空间,如图2,
We got a bunch of data points in a n- dimensional to infinite-dimensional space, Then one can always find a optimal hyperplane which is always in the n-1 dimension.
最后, 统计方向:Support Vector Machines (SVM) wiki:Support vector machine 教程:columbia.edu 的页面 以及一个很棒的视频演示。自备梯.子。 http://youtu.be/3liCbRZPrZA
转载自 知乎