【深度學習基礎-05】支援向量機SVM(上)-線性可分
阿新 • • 發佈:2019-01-11
Support Vector Machine
目錄
4 線性可區分(linear separatable)和線性不可區分(linear inseparatable)
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_
未完繼續