SVM作为最为经典的机器学习算法之一,面试中会经常被面试官问道,最近想要细心钻研机器学习算法,不如就先从这一经典的机器学习算法写起吧,我本人的数学基础也不是很好,所以我会尽量用简单易懂的语言来解释这一算法。想要对SVM算法有一个直观的认识,我们先从一个故事讲起(文章来源:如何向吃瓜群众解释SVM 微信公众号:DataCastle数据城堡)。
支持向量机英文全称:Support Vector Machine,数据极客们亲切地称之为SVM。这个抽象的概念用一个机器的名号作为大家的认知,给人一种莫名的神秘感。但我们都知道,支持向量机并非是真正意义上的机器,而是一种算法,确切地说,是一类算法,虽说SVM实际上是一种分类器,但也被用来做回归。
如何将SVM用最通俗的语言来描述,reddit上的故事是这样的:
在很久很久以前,在一个村庄里住着一位退隐江湖的大侠,相传这位大侠剑法非常高明。
在一个月黑风高的夜晚,魔鬼抓走了大侠的妻子,大侠取出尘封多年的剑,决定去救他的妻子,但魔鬼和他玩了一个游戏。
魔鬼在桌子上似乎有规律放了两种颜色的球,说:“用你手中的剑分开它们?要求:尽量在放更多球之后,仍然适用。”
大侠拔出利剑随手一挥,桌上出现一道裂痕,准确地分开了两种不同颜色的球。
然后魔鬼,又在桌上放了更多的球,大侠如法炮制,手起刀落,虽然有一个球没有准确划分,但依然干得漂亮。
大侠发现,剑痕的最佳位置,就是让剑痕离两边的球都有尽可能大的间隙。
有了这样的思想,现在即使魔鬼放了更多的球,大侠仍然能够很好地划出分界线。
当然魔鬼不会善罢甘休,于是把一堆球随手一扔:把它们分开。
大侠看到这样摆放的球,也是有点懵逼的。就在魔鬼开启嘲讽模式在一旁装逼时,大侠准备尝试新的办法。
大侠左手在桌上一拍,球飞到空中。然后,凭借大侠的轻功,大侠用手中的剑划出一道光波,恰好穿过两种球的中间。
从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。
大侠救回了妻子,然后故事在村里传开了,并被杜撰成了美丽的传说。无聊的大人们,把这些球叫做 「data」,把棍子叫做 「classifier」, 最大间隙 trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」。
哈哈,看完了这个故事,是不是对SVM有了一个感性的认识,同时是不是觉得SVM并没有想象重的那么难?不过,这只是漫漫长征路的开始,我们需要一步一个脚印的弄懂SVM,加油,老铁们!