SVM演算法原理詳解及python實現

2021-10-06 12:04:21 字數 2381 閱讀 7298

w^tx+b>0 \quad y_i=1 \longleftrightarrow y(x_i)>0\\ w^tx+b<0 \quad y_i=-1 \longleftrightarrow y(x_i)<0\\ \end

(幾何間距)\longleftrightarrow\frac(函式間隔)

∣∣w∣∣∣

wtx+

b∣​(

幾何間距

)⟺∣∣

w∣∣y

i​∣w

tx+b

∣⩾0​

(函式間

隔)進行縮放變換:使∣y∣

⩾1⇒y

i∣wt

x+b∣

⩾1

|y|\geqslant1\rightarrow y_i|w^tx+b|\geqslant1

∣y∣⩾1⇒

yi​∣

wtx+

b∣⩾1

(之前我們認為恆大於0,現在嚴格了些)

優化目標:arg

max(

w,b)

argmax(w,b)\min(i)[y_i(w^tx+b)]\}

argmax

(w,b

) 優化目標:arg

max(

w,b)

st.y

i∣wt

x+b∣

⩾1

argmax(w,b)\\} \quad st. y_i|w^tx+b|\geqslant1

argmax

(w,b

)st.

yi​∣

wtx+

b∣⩾1

優化目標:min

(w,b

)st.

yi∣w

tx+b

∣⩾

1min(w,b)\\} \quad st. y_i|w^tx+b|\geqslant1

min(w,

b)st

.yi​

∣wtx

+b∣⩾

1 拉格朗日乘子法求解:l(ω

,b,α

)=12

∣∣w∣

∣2−∑

i=1n

αi(y

i(wt

xi+b

)−1)

st.y

i∣wt

x+b∣

⩾1

l(\omega,b,\alpha)=\frac-\sum_^n\alpha_i(y_i(w^tx_i+b)-1) \quad st. y_i|w^tx+b|\geqslant1

l(ω,b,

α)=2

1​∣∣

w∣∣2

−∑i=

1n​α

i​(y

i​(w

txi​

+b)−

1)st

.yi​

∣wtx

+b∣⩾

1 求導可得:

\frac=\omega-\sum_^n\alpha_iy_ix_i=0\\ \frac=\sum_^n\alpha_iy_i=0\\ \end

^n\alpha_i-\frac\sum_^n\sum_^n\alpha_i\alpha_jy_iy_jx_ix_j \quad st. \sum_^n\alpha_iy_i\geqslant0且\alpha_i\geqslant0

l(ω,b,

α)=∑

i=1n

​αi​

−21​

∑i=1

n​∑j

=1n​

αi​α

j​yi

​yj​

xi​x

j​st

.∑i=

1n​α

i​yi

​⩾0且

αi​⩾

0 求解得:

\alpha_i=0\quad不是支援向量\\ \alpha_i\ne0\quad是支援向量 \end

)(\sigma小會帶來過擬合)

k(x,xi

​)=e

xp(−

σ2∣∣

x−xi

​∣∣2

​)(σ

小會帶來

過擬合)

2. svm為什麼採用間隔最大化?

獲得最優解,泛化能力最強(因為解有無窮多個)

3. svm處理多分類問題?

1、一對多:將某一類歸一類,其餘類歸一類共訓練k個類k個分類器,用k個分類器來測試新樣本,哪個分類器概率(p)高就**為哪一類(bias較高)

2、一對一:任意兩個類訓練乙個分類器,一共訓練ck2

c_k^2

ck2​

個分類器,最後投票判別

SVM演算法原理

支援向量機 support vector machines 是乙個二分類的分類模型 或者叫做分類器 如圖 它分類的思想是,給定給乙個包含正例和反例的樣本集合,svm的目的是尋找乙個超平面來對樣本根據正例和反例進行分割。各種資料對它評價甚高,說 它在解決小樣本 非線性及高維模式識別中表現出許多特有的優...

機器學習演算法 SVM 詳解

支援向量機 support vector machines 是一種二分類模型,它的目的是尋找乙個超平面來對樣本進行分割,分割的原則是間隔最大化,最終轉化為乙個凸二次規劃問題來求解。由簡至繁的模型包括 1 間隔最大化和支援向量 如果乙個線性函式能夠將樣本分開,稱這些資料樣本是線性可分的。那麼什麼是線性...

libsvm安裝及SVM原理推導

如果你的python是64位的 這時你需要自己編譯64位的動態鏈結庫libsvm.dll。方法如下 在目錄下microsoft visual studio 2013 visual studio tools下找到visual studio x64 win64 command prompt 2013 注...