本章開始進(jìn)入SVM的講解沦泌。SVM(Support Vector Machine)指的是支持向量機,是常見的一種判別方法辛掠。在機器學(xué)習(xí)領(lǐng)域谢谦,是一個有監(jiān)督的學(xué)習(xí)模型,通常用來進(jìn)行模式識別萝衩、分類以及回歸分析回挽。
在進(jìn)入SVM學(xué)習(xí)之前,需要對以下知識點進(jìn)行說明猩谊,大綱如下:
● 梯度下降法千劈、拉格朗日乘子法、KKT條件回顧
● 感知器模型回顧
● SVM線性可分 (重點)
● SVM線性不可分 (重點)
● 核函數(shù) (重點)
● SMO
1牌捷、梯度下降法墙牌、拉格朗日乘子法袁梗、KKT條件回顧
梯度下降法是一種求極值的算法,在對自變量沒有限制條件的時候使用憔古。當(dāng)函數(shù)自變量存在取值范圍的時候,就無法使用梯度下降法進(jìn)行求解了淋袖。
10 回歸算法 - 梯度下降在線性回歸中的應(yīng)用
11 回歸算法 - BGD鸿市、SGD、MBGD梯度下降
12 回歸算法 - 手寫梯度下降代碼
對自變量有取值范圍的函數(shù)即碗,如果要求極值焰情,可以使用拉格朗日乘子法。即在有限制的情況下剥懒,對有限制條件的函數(shù)進(jìn)行轉(zhuǎn)化内舟,轉(zhuǎn)化成無限制條件的函數(shù),使轉(zhuǎn)化完的函數(shù)和原函數(shù)等價初橘,這時取得極值點的時候和原函數(shù)相同验游。這就是拉格朗日乘子法的思想和存在的意義。
02 SVM - 拉格朗日乘子法
當(dāng)有限制的函數(shù)轉(zhuǎn)化成無限制的函數(shù)后保檐,就可以通過求偏導(dǎo)的方法(梯度下降法)進(jìn)行求極值。
KKT條件 是指,滿足什么樣的條件下镰惦,可以讓原函數(shù)轉(zhuǎn)化成拉格朗日乘子法闸天。
03 SVM - KKT條件
2、感知器模型
直觀理解:找到一些直線劃分兩個不同的分類扔亥,使得誤分的點越少越好场躯。
04 SVM - 感知器模型
3、SVM線性可分旅挤、不可分 (重點)
用感知器找到的直線不止一條踢关,可以找到一條感知器模型的最優(yōu)解。最后找到的直線稱為SVM支持向量機谦铃。
SVM支持向量機可以處理兩類問題:
SVM線性可分模型 耘成,即一條直線可以分割兩種分類。
05 SVM - 支持向量機 - 概念驹闰、線性可分
06 SVM - 線性可分SVM算法和案例
07 SVM - 軟間隔模型
08 SVM - 軟間隔模型算法流程
SVM線性不可分模型瘪菌,兩種分類比較緊密,用一條直線無法輕易分割嘹朗。這種問題的處理方式可以將數(shù)據(jù)映射到高維师妙,通過一個面來分割兩類數(shù)據(jù),最后求高維面在低維上的映射屹培。
4默穴、核函數(shù) (重點)
解決數(shù)據(jù)映射到高維時怔檩,計算量復(fù)雜的問題。
10 SVM - 核函數(shù)
5蓄诽、SMO
SVM通常用對偶問題來求解薛训,這樣的好處有兩個:1、變量只有N個(N為訓(xùn)練集中的樣本個數(shù))仑氛,原始問題中的變量數(shù)量與樣本點的特征個數(shù)相同乙埃,當(dāng)樣本特征非常多時,求解難度較大锯岖。2介袜、可以方便地引入核函數(shù),求解非線性SVM出吹。求解對偶問題遇伞,常用的算法是SMO,徹底地理解這個算法對初學(xué)者有一定難度捶牢,本文嘗試模擬算法作者發(fā)明該算法的思考過程鸠珠,讓大家輕輕松松理解SMO算法。
理解原理即可叫确。
參考: 《用講故事的辦法幫你理解SMO算法》
11 SVM - SMO - 序列最小優(yōu)化算法
12 SVM - SMO - 初始β變量的選擇跳芳、總結(jié)
13 SVM - SVR(回歸問題的SVM)
6、scikit-learn SVM算法庫
scikit-learn中SVM的算法庫主要分為兩類竹勉,一類是分類算法飞盆,包括:SVC、NuSVC和LinearSVC這三個類次乓,另外一類是回歸算法吓歇,包括:SVR、NuSVR和LinearSVR這三個類票腰;除此之外城看,用的比較多的SVM模型還有OneClassSVM類(主要功能是:異常點檢測)
詳見:http://scikit-learn.org/dev/modules/svm.html
scikit-learn SVM算法庫概述分類算法
scikit-learn SVM算法庫概述回歸算法
一些代碼案例:
《14 SVM - 代碼案例一 - 鳶尾花數(shù)據(jù)SVM分類》
《15 SVM - 代碼案例二 - 鳶尾花數(shù)據(jù)不同分類器效果比較》
《16 SVM - 代碼案例三 - 不同SVM核函數(shù)效果比較》
《17 SVM - 代碼案例四 - 不同SVM懲罰參數(shù)C值不同效果比較》