摘要:分類問題是商業業務中遇到的主要問題之一。本文對三種主要技術展開討論,邏輯迴歸(Logistic Regression)、決策樹(Decision Trees)和支持向量機(Support Vector Machine,SVM)。算法
分類問題是咱們在各個行業的商業業務中遇到的主要問題之一。在本文中,咱們將從衆多技術中挑選出三種主要技術展開討論,邏輯迴歸(Logistic Regression)、決策樹(Decision Trees)和支持向量機(Support Vector Machine,SVM)。ci
上面列出的算法都是用來解決分類問題(SVM和DT也被用於迴歸,但這不在咱們的討論範圍以內)。我屢次看到有人提問,對於他的問題應該選擇哪種方法。經典的也是最正確的回答是「看狀況而定!」,這樣的回答卻不能讓提問者滿意。確實讓人很費神。所以,我決定談一談到底是看什麼狀況而定。get
這個解釋是基於很是簡化的二維問題,但足以藉此來理解讀者棘手的更高維度數據。io
我將從最重要的問題開始討論:在分類問題中咱們究竟要作什麼?顯然,咱們是要作分類。(這是個嚴肅的問題?真的嗎?)我再來複述一遍吧。爲了作分類,咱們試圖尋找決策邊界線或是一條曲線(沒必要是直線),在特徵空間裏區分兩個類別。dva
特徵空間這個詞聽起來很是高大上,容易讓不少新人犯迷糊。我給你展現一個例子來解釋吧。我有一個樣本,它包含三個變量:x1, x2和target。target有0和1兩種值,取決於預測變量x1和x2的值。我將數據繪製在座標軸上。變量
這就是特徵空間,觀測值分佈於其中。這裏由於咱們只有兩個預測變量/特徵,全部特徵空間是二維的。你會發現兩個類別的樣本用不一樣顏色的點作了標記。我但願咱們的算法能計算出一條直線/曲線來分離這個類別。可視化
經過目測可知,理想的決策邊界(分割曲線)是一個圓。實際決策邊界形狀的差別則是因爲邏輯迴歸、決策樹和支持向量機算法的差別引發的。方法
先說邏輯迴歸。不少人對邏輯迴歸的決策邊界都有誤解。這種誤解是因爲大多數時候提到邏輯迴歸,人們就見到那條著名的S型曲線。im
上圖所示的藍色曲線並非決策邊界。它是邏輯迴歸模型的二元響應的一種變形。邏輯迴歸的決策邊界老是一條直線(或者一個平面,在更高維度上是超平面)。讓你信服的最好方法,就是展現出你們都熟知的邏輯迴歸方程式。技術
咱們作一個簡單的假設,F是全部預測變量的線性組合。
上面的等式也能夠寫做:
當你進行預測的時候,對機率值作一個分數截斷,高於截斷值的機率爲1,不然爲0。假設截斷值用c表示,那麼決策過程就變成了這樣:
Y=1 if p>c, 不然0。最後給出的決策邊界是F>常數。
F>常數,無非就是一個線性決策邊界。咱們樣本數據用邏輯迴歸獲得的結果將會是這樣。
你會發現效果並很差。由於不管你怎麼作,邏輯迴歸方法獲得的決策邊界老是線性的,並不能獲得這裏須要的環狀邊界。所以,邏輯迴歸適用於處理接近線性可分的分類問題。(雖然能夠對變量作變換獲得線性可分的結果,但咱們在此不討論這類狀況。)
接着咱們來看決策樹如何處理這類問題。咱們都知道決策樹是按照層次結構的規則生成的。以咱們的數據爲例。
若是你仔細思考,這些決策規則x2 |</>| const OR x1 |</>| const 只是用平行於軸線的直線將特徵空間切分,以下圖所示。
咱們能夠經過增長樹的大小使它生長得更復雜,用愈來愈多的分區來模擬環狀邊界。
哈哈!趨向於環狀了,很不錯。若是你繼續增長樹的尺寸,你會注意到決策邊界會不斷地用平行線圍成一個環狀區域。所以,若是邊界是非線性的,而且能經過不斷將特徵空間切分爲矩形來模擬,那麼決策樹是比邏輯迴歸更好的選擇。
而後咱們再來看看SVM的結果。SVM經過把你的特徵空間映射到核空間,使得各個類別線性可分。這個過程更簡單的解釋就是SVM給特徵空間又額外增長了一個維度,使得類別線性可分。這個決策邊界映射回原特徵空間後獲得的是非線性決策邊界。下圖比個人解釋更清楚。
你能夠看到,一旦樣本數據以某種方式增長了一個維度,咱們就能用一個平面來分割數據(線性分類器),這個平面映射回原來的二維特徵空間,就能獲得一個環狀的決策邊界。
SVM在咱們數據集上的效果多棒啊:
注:決策邊界並非這麼標準的圓形,可是很是接近了(多是多邊形)。咱們爲了操做簡便,就用圓環代替了。
如今清楚各類區別了吧,可是還有一個問題。也就是說,在處理多維數據時,何時該選擇何種算法?這個問題很重要,由於如果數據維度大於三,你就找不到簡單的方法來可視化地呈現數據。咱們將在第二部分討論這麼問題,敬請關注。