原文:機器學習面試題彙總(支持向量機相關),做了一些筆記。
1.SVM的原理是什麼?
2.SVM推導
3.簡述SVM軟間隔
4.如何使用SMO最優化方法求解SVM模型?
5.SMO算法中對於每次選中的α如何進行優化?
6.SMO算法中如何選擇每次優化的兩個α?
7.SMO算法優化的終止條件是什麼?
8.什麼是核函數,爲什麼SVM要引入核函數?
9.SVM常用的核函數有哪些,如何選擇核函數?
10.爲什麼要將求解SVM的原始問題轉換爲其對偶問題?
11.SVM爲什麼採用間隔最大化?
12.SVM對噪聲敏感的原因
13.爲什麼SVM對缺失某些特徵數據敏感?
14.SVM的優缺點
15.SVM爲什麼用在大數據有哪些缺陷?
16.如何防止SVM過擬合(提高泛化能力)?
17.SVM如何調節懲罰因子C?
18.如何處理SVM中樣本不平衡的問題?
19.支持向量機(SVM)中的支持向量是什麼意思?
20.SVM如何處理多分類問題?
1.原理
定義:二分類模型,在特徵空間中尋找間隔最大化的分離超平面的線性分類器。
1)當訓練樣本線性可分時,使用硬間隔最大化;
2)近似線性可分,使用軟間隔最大化(引入鬆弛變量);
3)線性不可分,使用核函數和軟間隔最大化。
2.推導
min xi只考慮與分類最相關的少數點(粗暴地分類),即支持向量;
在這個基礎上通過參數W、b儘量地把樣本分得更開(精細地分類),即max W,b。
3.軟間隔
近似線性可分(存在離羣點的情況),引入鬆弛變量。
4.如何使用SMO最優化方法求解SVM模型?
2.推導中提到用SMO方法求解α,每次選取兩個α,對其範圍進行約束。
5.SMO算法中對於每次選中的α如何進行優化?
6.SMO算法中如何選擇每次優化的兩個α?
7.SMO算法優化的終止條件是什麼?
不滿足kkt條件的時候
8.什麼是核函數,爲什麼SVM要引入核函數?
將樣本空間映射到高維,從而解決線性不可分的問題。
9.SVM常用核函數有哪些?
線性、多項式、高斯、sigmoid。
如何選擇:
- 利用經驗、交叉驗證、混合核函數等方法。
- 如果特徵數量大到和樣本差不多,則選用
線性核
; - 如果特徵數量小,樣本數量正常,則選用
高斯核
;
#?????重新查一下,SVM對核函數選擇敏感嗎,補充14
10. 爲什麼要將求解SVM的原始問題轉換爲其對偶問題?
原始問題是一個最優化問題,根據其約束條件難以求解,但是SVM滿足KKT條件,局部最優解就是全局最優解,因此可以轉換爲拉格朗日對偶問題,把目標函數和約束條件合成一個式子,方便求導求最優解。
11.爲什麼SVM採用函數間隔最大化?
- 感知機採用誤分類最小策略,求得解不唯一,而SVM採用函數間隔最大化,這是一種最優化求解方法,加入約束條件,求得解唯一;
- 分離超平面只考慮對分類最有幫助的少數點,泛化能力強。
12.SVM對噪聲敏感的原因?
SVM的目的是求出與支持向量(即距離分離超平面最近且滿足一定條件的幾個訓練樣本點)最大化距離的直線(從高維上來看是直線),以每個樣本爲圓心,到超平面的距離爲半徑做圓,可以近似地認爲圓內的點與該樣本屬於相同分類,如果支持向量中出現了噪聲,那麼這個噪聲所帶來的錯誤分類也將最大化。
13.爲什麼SVM對缺失數據敏感?
這裏的缺失指的是訓練樣本的某個屬性值未知。
- 貝葉斯如果存在缺失數據,直接在訓練和預測同時省略這一項就行了,因爲是做加法。
- 決策樹如果存在缺失數據,可以採用
拋棄
、概率化缺失數據
(根據該屬性所在的分佈去估計)、缺失數據單獨分支
等方法。 - SVM是線性模型,要與W點乘,如果缺失就沒辦法乘了,也沒有好的缺失值處理策略。
14.優點和缺點
優點:
- 間隔最大化,通過最優化求解,結果唯一;
- 只考慮支持向量(與分離超平面最近,也是對分類最有幫助的點),泛化性好;
- 引入核函數將樣本空間映射到高維,解決線性不可分的情況。
缺點:
- 大數據訓練困難,因爲是二次規劃問題(目標函數是變量的二次函數,約束條件是變量的線性不等式),涉及到m階矩陣的計算(樣本數目爲m),空間消耗巨大;
- 本身不支持多分類;
- 對缺失值、異常值敏感
15.SVM爲什麼不適合大數據?
二次規劃問題:目標函數是變量的二次函數,約束條件是變量的線性不等式。
涉及到m階矩陣的計算(樣本數目爲m),空間消耗巨大。
16.如何防止SVM過擬合?
決定SVM最優分離超平面的是支持向量,如果支持向量中剛好存在異常點,就容易過擬合。
解決辦法:軟間隔,引入鬆弛變量。
17.SVM如何調節懲罰因子C?
交叉驗證法。
對懲罰因子C的理解:C越大,鬆弛變量越接近於0,對於樣本的擬合能力更強。從風險的角度來看,C權衡了經驗風險(對樣本的擬合能力)和結構風險(對測試樣本的預測能力):爲使目標函數越小,C越大時,正則化項(ξ(i) )越小,說明結構風險越大,經驗風險越小,容易出現過擬合;反之,C越小,模型的複雜度越低,結構風險越小。
18.如何處理SVM中樣本不平衡的問題?
- 控制懲罰因子C,給數量少的類更大的懲罰因子,表明更重視這部分數據,增強擬合能力;
- 控制樣本:欠採樣(減少數量多的類)和過採樣(增加數量少的類)。
19.支持向量機(SVM)中的支持向量是什麼意思?
距離分類超平面最近的幾個訓練樣本點,SVM只考慮支持向量。
20.SVM如何處理多分類問題?
- 直接法:直接在目標函數上進行修改,將多個分類面的參數求解合併到一個最優化問題中,一次性實現多分類,計算複雜度較高,實現困難,只適合小型問題;
- 間接法一對多:類似於交叉驗證法,每次挑出一個類,剩下n-1個類合併爲一個類,重複n次,共n個分類器,取最好結果。
- 間接法一對一:枚舉的做法,每次挑2個類出來,一共是n*(n-1)/2個分類器,使用投票法取最終結果,代價太大。
- 層次法:首先將所有類別分成兩個子類,再將子類進一步劃分成兩個次級子類,循環, 直到不能劃分爲止。