在數(shù)據(jù)挖掘或者機(jī)器學(xué)習(xí)算法工程師面試中,SVM 是經(jīng)常被問到的一個算法,本文總結(jié)了面試中 SVM 相關(guān)的??紗栴}。 1. SVM 原理 SVM 是一種二類分類模型。它的基本模型是在特征空間中尋找間隔最大化的分離超平面的線性分類器。
以上各種情況下的數(shù)學(xué)推到應(yīng)當(dāng)掌握,硬間隔最大化(幾何間隔)、學(xué)習(xí)的對偶問題、軟間隔最大化(引入松弛變量)、非線性支持向量機(jī)(核技巧)。 2. SVM 為什么采用間隔最大化 當(dāng)訓(xùn)練數(shù)據(jù)線性可分時,存在無窮個分離超平面可以將兩類數(shù)據(jù)正確分開。感知機(jī)利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。線性可分支持向量機(jī)利用間隔最大化求得最優(yōu)分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產(chǎn)生的分類結(jié)果是最魯棒的,對未知實(shí)例的泛化能力最強(qiáng)??梢越璐藱C(jī)會闡述一下幾何間隔以及函數(shù)間隔的關(guān)系。 3. 為什么要將求解 SVM 的原始問題轉(zhuǎn)換為其對偶問題 一是對偶問題往往更易求解,當(dāng)我們尋找約束存在時的最優(yōu)點(diǎn)的時候,約束的存在雖然減小了需要搜尋的范圍,但是卻使問題變得更加復(fù)雜。為了使問題變得易于處理,我們的方法是把目標(biāo)函數(shù)和約束全部融入一個新的函數(shù),即拉格朗日函數(shù),再通過這個函數(shù)來尋找最優(yōu)點(diǎn)。二是可以自然引入核函數(shù),進(jìn)而推廣到非線性分類問題。 4. 為什么 SVM 要引入核函數(shù) 當(dāng)樣本在原始空間線性不可分時,可將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內(nèi)線性可分。而引入這樣的映射后,所要求解的對偶問題的求解中,無需求解真正的映射函數(shù),而只需要知道其核函數(shù)。核函數(shù)的定義:K(x,y)=(x),?(y)>,即在特征空間的內(nèi)積等于它們在原始樣本空間中通過核函數(shù) K 計(jì)算的結(jié)果。一方面數(shù)據(jù)變成了高維空間中線性可分的數(shù)據(jù),另一方面不需要求解具體的映射函數(shù),只需要給定具體的核函數(shù)即可,這樣使得求解的難度大大降低。?(x),?(y)> 5. 為什么SVM對缺失數(shù)據(jù)敏感 這里說的缺失數(shù)據(jù)是指缺失某些特征數(shù)據(jù),向量數(shù)據(jù)不完整。SVM 沒有處理缺失值的策略。而 SVM 希望樣本在特征空間中線性可分,所以特征空間的好壞對SVM的性能很重要。缺失特征數(shù)據(jù)將影響訓(xùn)練結(jié)果的好壞。 6. SVM 核函數(shù)之間的區(qū)別 一般選擇線性核和高斯核,也就是線性核與 RBF 核。 線性核:主要用于線性可分的情形,參數(shù)少,速度快,對于一般數(shù)據(jù),分類效果已經(jīng)很理想了。 RBF 核:主要用于線性不可分的情形,參數(shù)多,分類結(jié)果非常依賴于參數(shù)。有很多人是通過訓(xùn)練數(shù)據(jù)的交叉驗(yàn)證來尋找合適的參數(shù),不過這個過程比較耗時。 如果 Feature 的數(shù)量很大,跟樣本數(shù)量差不多,這時候選用線性核的 SVM。 如果 Feature 的數(shù)量比較小,樣本數(shù)量一般,不算大也不算小,選用高斯核的 SVM。 以上是幾個問題在面試中遇到 SVM 算法時,幾乎是必問的問題,另外,大家一定要做到自己可以推導(dǎo)集合間隔、函數(shù)間隔以及對偶函數(shù),并且理解對偶函數(shù)的引入對計(jì)算帶來的優(yōu)勢。 |
|