支持向量机(Support Vector Machine, SVM)是众多监督学习方法中十分出彩的一种,支持向量机并非真正意义上的机器,而是一种算法,确切地说,是一类算法。关于SVM,流传着一个英雄救美的故事。(文章来源:如何向吃瓜群众解释SVM 微信公众号:DataCastle数据城堡)。
在很久很久以前,在一个村庄里住着一位退隐江湖的大侠,相传这位大侠剑法非常高明。
在一个月黑风高的夜晚,魔鬼抓走了大侠的妻子,大侠取出尘封多年的剑,决定去救他的妻子,但魔鬼和他玩了一个游戏。
魔鬼在桌子上似乎有规律放了两种颜色的球,说:“用你手中的剑分开它们?要求:尽量在放更多球之后,仍然适用。”
大侠拔出利剑随手一挥,桌上出现一道裂痕,准确地分开了两种不同颜色的球。
然后魔鬼,又在桌上放了更多的球,大侠如法炮制,手起刀落,虽然有一个球没有准确划分,但依然干得漂亮。
大侠发现,剑痕的最佳位置,就是让剑痕离两边的球都有尽可能大的间隙。
有了这样的思想,现在即使魔鬼放了更多的球,大侠仍然能够很好地划出分界线。
当然魔鬼不会善罢甘休,于是把一堆球随手一扔:把它们分开。
大侠看到这样摆放的球,也是有点懵逼的。就在魔鬼开启嘲讽模式在一旁装逼时,大侠准备尝试新的办法。
大侠左手在桌上一拍,球飞到空中。然后,凭借大侠的轻功,大侠用手中的剑划出一道光波,恰好穿过两种球的中间。
从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。
大侠救回了妻子,然后故事在村里传开了,并被杜撰成了美丽的传说。无聊的大人们,把这些球叫做 「data」,把空中划过的剑痕叫做 「classifier」, 最大间隙 trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」。
看了这个故事,我第一感觉就是真形象啊。这只是一个开始,一个让人觉得轻松美好的开始,哈哈哈哈哈。