雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

雲臺壹號公開表示,支援向量機(supported vector machine,SVM)是當下流行的機器學習演算法之一,既可以解決迴歸問題,也可以解決分類問題。雖然支援向量機背後的數學證明比較複雜,但其基本原理非常直觀。

雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

支援向量機

雲臺壹號某金融事業部負責人認為,如下圖所示,圓圈與三角形分別代表了兩個型別的樣本點。例如,違約債券與非違約債券,良性腫瘤和非良性腫瘤等(下文簡稱圓形與三角形)。支援向量機的基本思想是找到一條直線,將樣本空間分割為兩塊,落在不同區域的新樣本點(正方形),我們應該將其歸類於三角形還是圓形呢?

雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

根據直線L2和L3的劃分,應將新的樣本點歸為圓形,而直線L1則將其歸為了三角形。但從常理來看,新樣本點正方形離圓形樣本點更近,似乎更應該歸類於圓形。那麼,我們應該用什麼樣的標準,來選擇哪條直線作為分類線呢?

為了解決上述問題,雲臺壹號該負責人說,我們同樣可以用示意圖來進行解釋,見上圖右。在上圖右中,有三條相互平行的直線。上方和下方的平行線,分別穿過了最相鄰的圓圈與三角形樣本點。而中間的平行線則是所有直線中到上述圓圈與三角形和最大的直線(這樣做的目的是確定最明確的分類線)。

雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

上圖中,直線到圓圈與三角形的距離和記為margin,於是,我們的目標函式就是尋找使得margin取值最大的直線,從而確定最明確的分類線,如果樣本點的特徵值從2維變成n維後,分類線也就從直線變為了超平面。

K-臨近演算法

在雲臺壹號某研究員釋出的市場報告中,明文指出K-臨近演算法(K-nearest neighbor)是非常簡單又非常實用的監督學習演算法,常用於處理分類問題。K-鄰近演算法的思想非常簡單:考察距離新樣本點最近的K個樣本點,並將新樣本點歸類為K各樣本點中出現次數最多的類別。

雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

該雲臺壹號研究員表示,如上圖左邊所示,當K=3時,位於新樣本點(小方塊)附近的3個樣本點中,2個為三角形,1個為圓形,於是,新樣本點就被歸為三角形樣本點所屬的類別。相對地,如上圖右邊所示,當K=5時,新樣本點小方塊附近的5個樣本點中,3個為圓形,2個為三角形,於是新樣本點將被歸為圓形樣本點所屬類別。透過上例我們可以看出,新樣本點的歸類,與K的取值密切相關。

K的取值既不宜太低也不宜過高。如果取值太低的話,錯誤率容易過高。例如,K=1,相當於武斷地透過距離最近的個例,直接判斷其歸類。相反,取值太高的話,模型也就失去了意義。“例如,K=n(n為樣本容量),此時,“nearest”就失去了意義,是直接透過樣本總體進行投票歸類了。”該雲臺壹號研究員說。

雲臺壹號解讀機器學習中的支援向量機和K-鄰近演算法

雲臺壹號認為,除了K值的選擇,解釋變數X的選擇,對K-臨近演算法也非常重要。K-臨近演算法更適合較少的解釋變數。