1. 程式人生 > >【深度學習基礎-05】支援向量機SVM(上)-線性可分

【深度學習基礎-05】支援向量機SVM(上)-線性可分

Support Vector Machine

目錄

1背景

2 機器學習的一般框架

3 什麼是超平面

4 線性可區分(linear separatable)和線性不可區分(linear inseparatable)

5 如何計算超平面以及舉例


1背景

Vladimir N. Vapnik和Alexey 在1963年提出

目前的版本是由Corinna Cortes和Vapnik在1993年提出,1995年發表

深度學習2012年出現以前,SVM被認為是機器學習中近十幾年最為成功的演算法

2 機器學習的一般框架

訓練集->提取特徵向量->結合一定演算法(決策樹,KNN)->得到結果

3 什麼是超平面

觀察這3條線,哪個超平面更棒?

SVM選擇區分兩類的超平面(hyper plane),使得邊際(margin)最大,margin越大,這個未來犯錯概率跟小

那什麼是margin?看下圖

                                                        

總共有多少可能的超平面?其實可以有無數條劃分!

超平面到一側最近點的距離等於到另一側最近點的距離,兩側兩個超平面平行

4 線性可區分(linear separatable)和線性不可區分(linear inseparatable)

  以下3幅圖都線性不可區分  

5 如何計算超平面以及舉例



程式碼學習

from sklearn import svm

#框架
from sklearn import svm

x=[]
y=[]
clf = svm.SVC(kernel = 'linear')
clf.fit(x,y)

print  clf

#支援向量,就是在那兩條線上的點
print clf.support_vectors_

#支援向量是哪幾個,索引值
print clf.support_

#每個類裡找到了幾個支援向量
print clf.n_support_

未完繼續