- 想象一下,在一张桌子上,摆放着两种不同颜色的小球。
- 在桌子上还放着一根棍子,我们用它把不同颜色的小球分隔开来。
- 这个时候,旁边突然来了一个坏家伙,往桌子上又放了一些小球,结果呢,我们原来的棍子,现在已经不能完全的分隔开两种不同颜色的小球了。
- 你有点沮丧,心里想着,“我一定要把棍子放在一个最好的位置,这样就不怕坏蛋放小球来干扰我的分类结果了”,那么问题来了,什么叫做“最好的位置”呢?其实啊,SVM就是帮我们干这活儿的,它的作用是让棍子和两边小球的距离尽可能的远。
- 现在坏蛋再回来,往桌子上放小球,你也不用担心啦。看!它还是可以完全分隔开两种小球呢!
- 这个坏蛋啊,快要被你气疯了,一怒之下打乱了桌上的小球,对你说,“你再给我分开这两种小球,否则我就把你抓走!”
- 显然,这个世界上没有哪一根棍子,可以帮你分隔开这样子摆放的小球。你一把掀翻了桌子,于是所有的小球都飞到了空中,你再迅速的用一张纸,把它放在小球中间。
- 现在,站在坏蛋的视角来看小球,它们像是被一条曲线给完全分割开了。
- 后来呢,无聊的大人们,把这些小球呢,称作数据;把那根棍子呢,称作分类器;把那个最大的间距呢,称作优化方法;把掀翻桌子让小球飞到空中去呢,称作核(kernel)函数;把那张分开小球的纸呢,称作超平面(hyperplane)
原文来自reddit,Please explain Support Vector Machines (SVM) like I am a 5 year old.
如果想对SVM算法有更加深入的理解的话,这里有我详细的学习笔记,包括学习心得与代码复现。