SVM 高頻面試題

SVM 高頻面試題

來自專欄領扣(LeetCode)11 人贊了文章

在數據挖掘或者機器學習演算法工程師面試中,SVM 是經常被問到的一個演算法,本文總結了面試中 SVM 相關的常考問題。

1. SVM 原理

SVM 是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。

  • 當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機;
  • 當訓練數據近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機;
  • 當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。

以上各種情況下的數學推到應當掌握,硬間隔最大化(幾何間隔)、學習的對偶問題、軟間隔最大化(引入鬆弛變數)、非線性支持向量機(核技巧)。

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

當訓練數據線性可分時,存在無窮個分離超平面可以將兩類數據正確分開。感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。線性可分支持向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知實例的泛化能力最強。可以藉此機會闡述一下幾何間隔以及函數間隔的關係。

3. 為什麼要將求解 SVM 的原始問題轉換為其對偶問題

一是對偶問題往往更易求解,當我們尋找約束存在時的最優點的時候,約束的存在雖然減小了需要搜尋的範圍,但是卻使問題變得更加複雜。為了使問題變得易於處理,我們的方法是把目標函數和約束全部融入一個新的函數,即拉格朗日函數,再通過這個函數來尋找最優點。二是可以自然引入核函數,進而推廣到非線性分類問題。

4. 為什麼 SVM 要引入核函數

當樣本在原始空間線性不可分時,可將樣本從原始空間映射到一個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。而引入這樣的映射後,所要求解的對偶問題的求解中,無需求解真正的映射函數,而只需要知道其核函數。核函數的定義:K(x,y)=<?(x),?(y)>,即在特徵空間的內積等於它們在原始樣本空間中通過核函數 K 計算的結果。一方面數據變成了高維空間中線性可分的數據,另一方面不需要求解具體的映射函數,只需要給定具體的核函數即可,這樣使得求解的難度大大降低。

5. 為什麼SVM對缺失數據敏感

這裡說的缺失數據是指缺失某些特徵數據,向量數據不完整。SVM 沒有處理缺失值的策略。而 SVM 希望樣本在特徵空間中線性可分,所以特徵空間的好壞對SVM的性能很重要。缺失特徵數據將影響訓練結果的好壞。

6. SVM 核函數之間的區別

一般選擇線性核和高斯核,也就是線性核與 RBF 核。 線性核:主要用於線性可分的情形,參數少,速度快,對於一般數據,分類效果已經很理想了。 RBF 核:主要用於線性不可分的情形,參數多,分類結果非常依賴於參數。有很多人是通過訓練數據的交叉驗證來尋找合適的參數,不過這個過程比較耗時。 如果 Feature 的數量很大,跟樣本數量差不多,這時候選用線性核的 SVM。 如果 Feature 的數量比較小,樣本數量一般,不算大也不算小,選用高斯核的 SVM。

以上是幾個問題在面試中遇到 SVM 演算法時,幾乎是必問的問題,另外,大家一定要做到自己可以推導集合間隔、函數間隔以及對偶函數,並且理解對偶函數的引入對計算帶來的優勢。

推薦閱讀:

LeetCode LRU演算法
動態連通性問題(並查集)
對《HYDRA》的復現-GA phase
POJ 2787 算24:暴力演算法破解二十四點遊戲
【轉載】納音金命自演算法

TAG:SVM | 面試問題 | 演算法 |