文章目錄
概述
基本推導和理論還是以看李航老師的《統計學習方法》為主。
各種算法的原理,推薦理解到可以手撕的程度。
以下為通過網絡資源搜集整理的一些問題及答案,准備的有些倉促,沒能記錄所有資料的來源(侵刪)
SVM原理及推導
https://download.csdn.net/download/yolohohohoho/10966848
SVM與隨機森林比較
隨機森林優點
1、在當前的很多數據集上,相對其他算法有着很大的優勢,表現良好
2、它能夠處理很高維度(feature很多)的數據,並且不用做特征選擇
3、在訓練完后,它能夠給出哪些feature比較重要
4、 在創建隨機森林的時候,對generlization error使用的是無偏估計,模型泛化能力強
5、訓練速度快,容易做成並行化方法,訓練時樹與樹之間是相互獨立的
6、 在訓練過程中,能夠檢測到feature間的互相影響
7、 實現比較簡單
8、 對於不平衡的數據集來說,它可以平衡誤差。
1)每棵樹都選擇部分樣本及部分特征,一定程度避免過擬合;
2)每棵樹隨機選擇樣本並隨機選擇特征,使得具有很好的抗噪能力,性能穩定;
對缺失值不敏感,如果有很大一部分的特征遺失,仍可以維持准確度
隨機森林有out of bag,不需要單獨換分交叉驗證集
。
隨機森林缺點:
1) 參數較復雜;
2) 模型訓練和預測都比較慢。
SVM的優點:
• 能夠處理大型特征空間
• 能夠處理非線性特征之間的相互作用
• 無需依賴整個數據
SVM的缺點:
• 當觀測樣本很多時,效率並不是很高
• 有時候很難找到一個合適的核函數
為此,我試着編寫一個簡單的工作流,決定應該何時選擇這三種算法,流程如下:
• 首當其沖應該選擇的就是邏輯回歸,如果它的效果不怎么樣,那么可以將它的結果作為基准來參考;
• 然后試試決策樹(隨機森林)是否可以大幅度提升模型性能。即使你並沒有把它當做最終模型,你也可以使用隨機森林來移除噪聲變量;
• 如果特征的數量和觀測樣本特別多,那么當資源和時間充足時,使用SVM不失為一種選擇。
SVM為什么要引入拉格朗日的優化方法。
化為對偶問題
對於SVM而言,原問題minwθp(w)=minwmaxα,β,αi≥0L(w,α,β)minwθp(w)=minwmaxα,β,αi≥0L(w,α,β)
不易求解,但由於原問題為二次規划問題,滿足“strong duality”關系,故可解其對偶問題
SVM原問題和對偶問題關系?
- 目標函數對原始問題是極大化,對對偶問題則是極小化
- 原始問題目標函數中的收益系數(優化函數中變量前面的系數)是對偶問題約束不等式中的右端常數,而原始問題約束不等式中的右端常數則是對偶問題中目標函數的收益系數
- 原始問題和對偶問題的約束不等式的符號方向相反
- 原始問題約束不等式系數矩陣轉置后即為對偶問題的約束不等式的系數矩陣
- 原始問題的約束方程數對應於對偶問題的變量數,而原始問題的變量數對應於對偶問題的約束方程數
- 對偶問題的對偶問題是原始問題
SVM從原始問題變為對偶問題來求解 的原因
1. 對偶問題將原始問題中的約束轉為了對偶問題中的等式約束
2. 方便核函數的引入
3. 改變了問題的復雜度。由求特征向量w轉化為求比例系數a,在原始問題下,求解的復雜度與樣本的維度有關,即w的維度。在對偶問題下,只與樣本數量有關。
SVM在哪個地方引入的核函數, 如果用高斯核可以升到多少維?
線性不可分時可以引入核函數
“如果映射后空間是k維的話,那內積矩陣的秩最大是k。而任給n個互不重合的樣本,
Gaussian kernel的內積矩陣都是滿秩的。所以你無論假設k是多少,都能找到n>k,矛
盾,所以必須是無限維的。 ”
SVM怎么防止過擬合 ?
如果支持向量中碰巧存在異常點,那么我們傻傻地讓SVM去擬合這樣的數據,最后的超平面就不是最優。
解決過擬合的辦法是為SVM引入了松弛變量ξ(slack variable)。
因此SVM公示中的目標函數也需要相應修改,我們加上松弛變量的平方和,並求最小值。這樣就達到一個平衡:既希望松弛變量存在以解決異常點問題,又不希望松弛變量太大導致分類解決太差。
SVM的目標函數。
[TO-DO]
常用的核函數。
(1) 線性核函數
(2) 多項式核
(3) 徑向基核(RBF)Gauss徑向基函數則是局部性強的核函數,其外推能力隨着參數的增大而減弱。多項式形式的核函數具有良好的全局性質。局部性較差。
(4) 傅里葉核
(5) 樣條核
(6) Sigmoid核函數
核函數的選取標准:
• 如果如果特征數遠遠大於樣本數的情況下,使用線性核就可以了.
• 如果特征數和樣本數都很大,例如文檔分類,一般使用線性核, LIBLINEAR比LIBSVM速度要快很多.
• 如果特征數遠小於樣本數,這種情況一般使用RBF.但是如果一定要用線性核,則選擇LIBLINEAR較好,而且使用-s 2選項。
SVM硬軟間隔對偶的推導
[TO-DO]