1. 程式人生 > >機器學習(7)-SVM與核函式

機器學習(7)-SVM與核函式

1.SVM介紹

是一個類似於邏輯迴歸的方法,用於對不同因素影響的某個結果的分類。
但邏輯迴歸主要採用的是sigmoid函式,SVM有自己常用的核函式:linear線性核、rbf徑向基、poly多項式

比方說,要對一堆香蕉和黃瓜進行分類~~~
首先要明確的是,我們常見的香蕉為黃色,黃瓜為綠色(為什麼不叫綠瓜??)。但是香蕉有綠色的,黃瓜也有黃色的???
這裡寫圖片描述
好吧。這是我搜的,真的是巨醜!!!
我們採集香蕉和黃瓜的各項特徵資訊:氣味,顏色,重量,長度………彙集成特徵點,利用linear線性的分類器進行分類。如下圖

這裡寫圖片描述
紅色的是香蕉,綠色的黃瓜,能夠看出來,分類的依據是兩類圖中的兩個點決定的,也就是兩點連線的中垂線!
而且將這條線沿著垂直兩點之間的連線移動,會發現,分類的結果並不會改變。這就是SVM的特點:是依賴於特徵點當中的最特殊的點進行分類的。
這一部分的python實現與邏輯迴歸非常相似,原始碼與資料集

可參考

2.kernel核函式

  1. linear
    簡單的線性核函式,上文提到的香蕉和黃瓜的分類就是線性核函式的應用
    主要應用於線性可分的情況
  2. rbf
    高斯核函式,可以實現高維投射
    這裡寫圖片描述
    就好比這樣的分類特徵點,用線性的不管怎麼分,結果都是很不理想的,這時候用rbf從圖中的二維空間投射到三維的。(這裡在投射的時候,經過了一系列的公式上的轉換,不在此贅述)
    經過投射之後呢,就變成了下面的這個樣子
    這裡寫圖片描述
    看上去像是被一個超平面分割了,其實應該把這些點看成一個圓錐的大體樣子,兩類之間的分割變成了一個曲面,這個曲面就是rbf擬合的結果了。
  3. poly
    多項式核函式也是可以實現低維到高維的對映,採用的頻率並不是很高

前一個文章:邏輯迴歸 中提到的案例的實現,邏輯迴歸的結果是:
這裡寫圖片描述
用rbf核函式重新擬合之後結果更加的準確,誤差也更加的小了
上圖:
這裡寫圖片描述

from sklearn.svm import SVC
classifier = SVC(kernel = 'rbf', random_state = 0)
classifier.fit(X_train, y_train)

分類器擬合的過程與邏輯迴歸極其相似,原始碼與資料集請去邏輯迴歸地方下載(點我去下載),只不過是在23~24行換成上面的程式碼就可以了

沒有積分的也可以免費向我索要哈,評論區留下郵箱地址。我看見的時候就打包傳送嘍~