SVM作為最為經(jīng)典的機(jī)器學(xué)習(xí)算法之一,面試中會(huì)經(jīng)常被面試官問(wèn)道,最近想要細(xì)心鉆研機(jī)器學(xué)習(xí)算法,不如就先從這一經(jīng)典的機(jī)器學(xué)習(xí)算法寫(xiě)起吧,我本人的數(shù)學(xué)基礎(chǔ)也不是很好,所以我會(huì)盡量用簡(jiǎn)單易懂的語(yǔ)言來(lái)解釋這一算法。想要對(duì)SVM算法有一個(gè)直觀的認(rèn)識(shí),我們先從一個(gè)故事講起(文章來(lái)源:如何向吃瓜群眾解釋SVM 微信公眾號(hào):DataCastle數(shù)據(jù)城堡)。
支持向量機(jī)英文全稱:Support Vector Machine,數(shù)據(jù)極客們親切地稱之為SVM。這個(gè)抽象的概念用一個(gè)機(jī)器的名號(hào)作為大家的認(rèn)知,給人一種莫名的神秘感。但我們都知道,支持向量機(jī)并非是真正意義上的機(jī)器,而是一種算法,確切地說(shuō),是一類算法,雖說(shuō)SVM實(shí)際上是一種分類器,但也被用來(lái)做回歸。
如何將SVM用最通俗的語(yǔ)言來(lái)描述,reddit上的故事是這樣的:
在很久很久以前,在一個(gè)村莊里住著一位退隱江湖的大俠,相傳這位大俠劍法非常高明。
在一個(gè)月黑風(fēng)高的夜晚,魔鬼抓走了大俠的妻子,大俠取出塵封多年的劍,決定去救他的妻子,但魔鬼和他玩了一個(gè)游戲。
魔鬼在桌子上似乎有規(guī)律放了兩種顏色的球,說(shuō):“用你手中的劍分開(kāi)它們?要求:盡量在放更多球之后,仍然適用?!?/p>

大俠拔出利劍隨手一揮,桌上出現(xiàn)一道裂痕,準(zhǔn)確地分開(kāi)了兩種不同顏色的球。

然后魔鬼,又在桌上放了更多的球,大俠如法炮制,手起刀落,雖然有一個(gè)球沒(méi)有準(zhǔn)確劃分,但依然干得漂亮。

大俠發(fā)現(xiàn),劍痕的最佳位置,就是讓劍痕離兩邊的球都有盡可能大的間隙。

有了這樣的思想,現(xiàn)在即使魔鬼放了更多的球,大俠仍然能夠很好地劃出分界線。

當(dāng)然魔鬼不會(huì)善罷甘休,于是把一堆球隨手一扔:把它們分開(kāi)。

大俠看到這樣擺放的球,也是有點(diǎn)懵逼的。就在魔鬼開(kāi)啟嘲諷模式在一旁裝逼時(shí),大俠準(zhǔn)備嘗試新的辦法。
大俠左手在桌上一拍,球飛到空中。然后,憑借大俠的輕功,大俠用手中的劍劃出一道光波,恰好穿過(guò)兩種球的中間。

從魔鬼的角度看這些球,這些球看起來(lái)像是被一條曲線分開(kāi)了。

大俠救回了妻子,然后故事在村里傳開(kāi)了,并被杜撰成了美麗的傳說(shuō)。無(wú)聊的大人們,把這些球叫做 「data」,把棍子叫做 「classifier」, 最大間隙 trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那張紙叫做「hyperplane」。
哈哈,看完了這個(gè)故事,是不是對(duì)SVM有了一個(gè)感性的認(rèn)識(shí),同時(shí)是不是覺(jué)得SVM并沒(méi)有想象重的那么難?不過(guò),這只是漫漫長(zhǎng)征路的開(kāi)始,我們需要一步一個(gè)腳印的弄懂SVM,加油,老鐵們!