面試總結——SVM

1、**簡單介紹SVM(詳細原理)

:從分類平面,到求兩類間的最大間隔,到轉化爲求間隔分之一,等優化問題,然後就是優化問題的解決辦法,首先是用拉格拉日乘子把約束優化轉化爲無約束優化,對各個變量求導令其爲零,得到的式子帶入拉格朗日式子從而轉化爲對偶問題 , 最後再利用SMO(序列最小優化)來解決這個對偶問題。
 
在這裏插入圖片描述

svm裏面的c有啥用**

C>0稱爲懲罰參數,一般事先由應用問題決定, 控制目標函數中兩項 (“尋找 margin最大的超平面”和“保證數據點偏差量最小”)之間的權重,C越大時對誤分類的懲罰增大,C值小時對誤分類的懲罰減小。最小化目標函數包含兩層含義:使在這裏插入圖片描述儘量小即間隔儘量大,同時使誤分類點的個數儘量小,C是調和二者的係數。

2、SVM的推導,解釋原問題和對偶問題,SVM原問題和對偶問題的關係,KKT限制條件,KKT條件用哪些,完整描述;軟間隔問題,解釋支持向量、核函數(哪個地方引入、畫圖解釋高維映射,高斯核可以升到多少維,如何選擇核函數),引入拉格朗日的優化方法的原因,最大的特點,損失函數解釋

原始問題與對偶問題的對應關係:

  1. 目標函數對原始問題是極大化,對偶問題則是極小化

  2. 原始問題目標函數中的收益係數(優化函數中變量前面的係數)是對偶問題約束不等式中的右端常數,而原始問題約束不等式中的右端常數則是對偶問題中目標函數的收益係數

  3. 原始問題和對偶問題的約束不等式的符號方向相反

  4. 原始問題約束不等式係數矩陣轉置後即爲對偶問題的約束不等式的係數矩陣

  5. 原始問題的約束方程數對應於對偶問題的變量數,而原始問題的變量數對應於對偶問題的約束方程數

  6. 對偶問題的對偶問題是原始問題

SVM 爲什麼要從原始問題變爲對偶問題來求解?

  1. 對偶問題將原始問題中的約束轉爲了對偶問題中的等式約束
  2. 方便核函數的引入
  3. 改變了問題的複雜度。由求特徵向量w轉化爲求比例係數a,在原始問題下,求解的複雜度與樣本的維度有關,即w的維度。在對偶問題下,只與樣本數量有關。
  4. 求解更高效,因爲只用求解比例係數a,而比例係數a只有支持向量才爲非0,其他全爲0.

KKT條件的作用:KKT條件是確保鞍點是原函數最優解的充分條件。

在這裏插入圖片描述

KKT條件的幾何解釋

在這裏插入圖片描述

核函數的作用:

1、當我們在解決線性不可分的問題時,我們需要通過一個映射函數,把樣本值映射到更高維的空間或者無窮維 。在特徵空間中,我們對線性可分的新樣本使用前面提到過的求解線性可分的情況下的分類問題的方法時,需要計算樣本內積,但是因爲樣本維數很高,容易造成“維數災難”,所以這裏我們就引入了核函數,把高維向量的內積轉變成了求低維向量的內積問題。
2、內積的作用,內積也是可以衡量相似度的!分類問題就是一個找相似樣本的過程,你跟我相似,你就屬於我這個類,所以在求出的目標函數中會出現內積,可以用這個原理來理解 。內積是可以衡量兩個向量的相似度的,例如,我們常常可以通過兩個相量的距離和夾角來表示相似度,這些屬性都可以通過兩個向量的內積值來獲得。

在這裏插入圖片描述

高斯核可以升到多少維?

高斯核就是把每個數據都看做是一個基準然後分別計算所有數據與這個基準之間的高斯函數。這樣如果原始數據維度是2,有n條數據,就成功的把一個2維的向量升到了n維。

那麼爲什麼說高斯核函數能將數據映射到無窮維度空間呢?

“如果映射後空間是k維的話,那內積矩陣的秩最大是k。而任給n個互不重合的樣本, Gaussian kernel的內積矩陣都是滿秩的。所以你無論假設k是多少,都能找到n>k,矛 盾,所以必須是無限維的。 ”

意思是說,我現在有n條數據,那麼我把k維成功升到了n維,你告訴我說高斯核函數能把數據集升到n維。這個時候我再給你加一條新的與原始數據不重合的樣本,那麼數據就可以映射到n+1維空間,與之前結論矛盾,因此,高斯核函數能將數據升到無窮維。

那麼升到無限維有什麼好處呢?

好處是:vc維提升(線性分類器的vc維是n+1,如果升到無窮維,則是vc維也是無窮的),即總能找到一個分類面將數據集很好的分開。vc維代表了分類能力。即在使用SVM的時候,只要C選的足夠大,就可以保證擬合的很好,甚至是過擬合。

如何選擇核函數

最常用的是Linear核與RBF核。

  1. Linear核:主要用於線性可分的情形。參數少,速度快,對於一般數據,分類效果已經很理想了。
  2. RBF核:主要用於線性不可分的情形。參數多,分類結果非常依賴於參數。有很多人是通過訓練數據的交叉驗證來尋找合適的參數,不過這個過程比較耗時。
    個人體會:使用libsvm,默認參數,RBF核比Linear核效果稍差。通過進行大量參數的嘗試,一般能找到比linear核更好的效果。

至於到底該採用哪種核,要根據具體問題,有的數據是線性可分的,有的不可分,需要多嘗試不同核不同參數。如果特徵的提取的好,包含的信息量足夠大,很多問題都是線性可分的。當然,如果有足夠的時間去尋找RBF核參數,應該能達到更好的效果。

SVM的優缺點

優點:

(1)非線性映射是SVM方法的理論基礎,SVM利用內積核函數代替向高維空間的非線性映射;

(2)對特徵空間劃分的最優超平面是SVM的目標,最大化分類邊際的思想是SVM方法的核心;

(3)支持向量是SVM的訓練結果,在SVM分類決策中起決定作用的是支持向量。

(4)SVM 是一種有堅實理論基礎的新穎的小樣本學習方法。它基本上不涉及概率測度及大數定律等,因此不同於現有的統計方法。從本質上看,它避開了從歸納到演繹的傳統過程,實現了高效的從訓練樣本到預報樣本的“轉導推理”,大大簡化了通常的分類和迴歸等問題。

(5)SVM 的最終決策函數只由少數的支持向量所確定,計算的複雜性取決於支持向量的數目,而不是樣本空間的維數,這在某種意義上避免了“維數災難”。

(6)少數支持向量決定了最終結果,這不但可以幫助我們抓住關鍵樣本、“剔除”大量冗餘樣本,而且註定了該方法不但算法簡單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現在:

         ①增、刪非支持向量樣本對模型沒有影響;

         ②支持向量樣本集具有一定的魯棒性;

         ③有些成功的應用中,SVM 方法對核的選取不敏感

缺點:

(1) SVM算法對大規模訓練樣本難以實施

由於SVM是藉助二次規劃來求解支持向量,而求解二次規劃將涉及m階矩陣的計算(m爲樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間。針對以上問題的主要改進有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學工的CSVM以及O.L.Mangasarian等的SOR算法

(2) 用SVM解決多分類問題存在困難

經典的支持向量機算法只給出了二類分類的算法,而在數據挖掘的實際應用中,一般要解決多類的分類問題。可以通過多個二類支持向量機的組合來解決。主要有一對多組合模式、一對一組合模式和SVM決策樹;再就是通過構造多個分類器的組合來解決。主要原理是克服SVM固有的缺點,結合其他算法的優勢,解決多類問題的分類精度。如:與粗集理論結合,形成一種優勢互補的多類問題的組合分類器。

(3)對缺失數據敏感,對參數和核函數的選擇敏感
支持向量機性能的優劣主要取決於核函數的選取,所以對於一個實際問題而言,如何根據實際的數據模型選擇合適的核函數從而構造SVM算法.目前比較成熟的核函數及其參數的選擇都是人爲的,根據經驗來選取的,帶有一定的隨意性.在不同的問題領域,核函數應當具有不同的形式和參數,所以在選取時候應該將領域知識引入進來,但是目前還沒有好的方法來解決核函數的選取問題.

3、SVM與LR最大區別,LR和SVM對於outlier的敏感程度分析,邏輯迴歸與SVM的區別

兩種方法線性劃分兩類事物時得到的線性分類器效果差不多。那具體的差別在哪呢?

SVM更關心的是靠近中間分割線的點,讓他們儘可能地遠離中間線,而不是在所有點上達到最優,因爲那樣的話,要使得一部分點靠近中間線來換取另外一部分點更加遠離中間線。因此支持向量機和和邏輯斯蒂迴歸的不同點,一個是考慮局部(不關心已經確定遠離的點,更考慮靠近中間分割線的點),一個是考慮全局(已經遠離的點可能通過調整中間線使其能夠更加遠離)

在這裏插入圖片描述

這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重。SVM的處理方法是隻考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重,兩者的根本目的都是一樣的。

邏輯迴歸與SVM的區別總結:

LR採用log損失,SVM採用合頁損失。
LR對異常值敏感,SVM對異常值不敏感。
在訓練集較小時,SVM較適用,而LR需要較多的樣本。
LR模型找到的那個超平面,是儘量讓所有點都遠離他,而SVM尋找的那個超平面,是隻讓最靠近中間分割線的那些點儘量遠離,即只用到那些支持向量的樣本。
對非線性問題的處理方式不同,LR主要靠特徵構造,必須組合交叉特徵,特徵離散化。SVM也可以這樣,還可以通過kernel。
svm 更多的屬於非參數模型,而logistic regression 是參數模型,本質不同。其區別就可以參考參數模型和非參模型的區別
怎麼根據特徵數量和樣本量來選擇SVM和LR模型呢:

如果Feature的數量很大,跟樣本數量差不多,這時候選用LR或者是Linear Kernel的SVM
如果Feature的數量比較小,樣本數量一般,不算大也不算小,選用SVM+Gaussian Kernel
如果Feature的數量比較小,而樣本數量很多,需要手工添加一些feature變成第一種情況。(LR和不帶核函數的SVM比較類似。)

4、爲什麼要把原問題轉換爲對偶問題?

因爲原問題是凸二次規劃問題,轉換爲對偶問題更加高效。爲什麼求解對偶問題更加高效?因爲只用求解alpha係數,而alpha係數只有支持向量才非0,其他全部爲0. alpha係數有多少個?樣本點的個數

SVM 爲什麼要從原始問題變爲對偶問題來求解?

對偶問題將原始問題中的約束轉爲了對偶問題中的等式約束
方便核函數的引入
改變了問題的複雜度。由求特徵向量w轉化爲求比例係數a,在原始問題下,求解的複雜度與樣本的維度有關,即w的維度。在對偶問題下,只與樣本數量有關。
求解更高效,因爲只用求解比例係數a,而比例係數a只有支持向量才爲非0,其他全爲0.

5、加大訓練數據量一定能提高SVM準確率嗎?

SVM本質上是凸優化問題,如果增加的樣本點只是無效約束,並不會影響其最後的結果。這也就是爲什麼SVM適合於小樣本量數據集的原因。

隨樣本量而使模型自身發生改變的,是統計推斷。最大似然,MAP,再到貝葉斯,每個都涉及到樣本數prod的一項,這些方法建立的模才真正和樣本數量有最直接的聯繫。

6、與感知器的聯繫和優缺點比較

在這裏插入圖片描述

7、如何解決多分類問題、可以做迴歸嗎,怎麼做

SVM如何解決多分類問題:

一對多法。訓練時依次把某個類別的樣本歸爲一類,其他剩餘的樣本歸爲另一類,這樣k個類別的樣本就構造出了k個SVM。分類時將未知樣本分類爲具有最大分類函數值的那類。

一對一法。其做法是在任意兩類樣本之間設計一個SVM,因此k個類別的樣本就需要設計k(k-1)/2個SVM。當對一個未知樣本進行分類時,最後得票最多的類別即爲該未知樣本的類別。Libsvm中的多類分類就是根據這個方法實現的。

層次支持向量機(H-SVMs)。層次分類法首先將所有類別分成兩個子類,再將子類進一步劃分成兩個次級子類,如此循環,直到得到一個單獨的類別爲止。

支持向量迴歸 SVR:

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

8、它與其他分類器對比的優缺點,它的速度

1、貝葉斯分類器

優點:

同時具備接收大數據量訓練和查詢時具備高速度的特點
具有支持增量式訓練的能力(不藉助於舊有訓練數據,每一組新的訓練數據都有可能引起概率值的變化,而如決策樹和支持向量機,則需要我們一次性將整個數據集都傳給它們。)
對貝葉斯分類器實際學習狀況的解釋相對簡單。
缺點:

無法處理基於特徵值組合所產生的變化結果。例如:“在線”和“藥店”分開出現時一般出現在正常郵件中,但當組合起來時“在線藥店”卻一般出現在垃圾郵件中,貝葉斯分類器無法理解這種特徵組合。

2、決策樹分類器

優點:

利用決策樹可以很容易的解釋一個受訓模型,而且算法將最重要的判斷因素很好的安排在了靠近樹的根部位置。
決策樹能找到能使信息增益達到最大化的分界線,因此它能夠同時處理分類數據和數值數據。
與貝葉斯分類器相比,它能夠很容易地處理變量之間的相互影響。
缺點:

不支持向量式訓練,每次訓練都要從頭開始。

3、神經網絡

優點:

能夠處理複雜的非線性函數,並且能發現不同輸入之間的依賴關係。
允許增量式訓練
缺點:

神經網絡是一種黑盒方法,無法確知推導過程。
在選擇訓練數據的比率及與問題相適應的網絡規模方面,並沒有明確的規則可以遵循。

4、支持向量機

優點:

在對新的觀測數據進行分類時速度極快,因爲支持向量機分類時只需判斷座標點位於分界線的哪一側即可。
通過將分類輸入轉換成數值輸入,可以令支持向量機同時支持分類數據和數值數據。
缺點:

針對每個數據集的最佳核變換函數及其相應的參數都是不一樣的,而且每當遇到新的數據集時都必須重新確定這些函數及參數。
和神經網絡一樣,SVM也是一種黑盒技術,實際上,由於存在向高維空間的變換,SVM的分類過程甚至更加難於解釋。

5、k-最近鄰算法

優點:

能夠利用複雜函數進行數值預測,同時又保持簡單易懂的特點
合理的數據縮放量不但可以改善預測的效果,而且還可以告訴我們預測過程中各個變量的重要程度。
KNN是一種在線(online)技術,這意味着新的數據可以在任何時候被添加進來,而不需要進行任何的計算。
缺點:

爲了完成預測,它要求所有的訓練數據都必須缺一不可,爲了找到最爲接近的數據項,每一項待預測的數據必須和其他數據項進行比較,會產出極大的數據計算量。
尋找合理的縮放因子並不是那麼簡單。
SVM的速度:

SVM訓練速度慢,主要是因爲大量的非支持向量參與訓練過程,從而進行了大量的二次規劃計算,導致分類計算量大、分類速度慢。

但是在對新的觀測數據進行分類時速度極快,因爲支持向量機分類時只需判斷座標點位於分界線的哪一側即可。

9、機器學習有很多關於核函數的說法,核函數的定義和作用是什麼?

https://www.zhihu.com/question/24627666

核函數的作用:

1、當我們在解決線性不可分的問題時,我們需要通過一個映射函數,把樣本值映射到更高維的空間或者無窮維。在特徵空間中,我們對線性可分的新樣本使用前面提到過的求解線性可分的情況下的分類問題的方法時,需要計算樣本內積,但是因爲樣本維數很高,容易造成“維數災難”,所以這裏我們就引入了核函數,把高維向量的內積轉變成了求低維向量的內積問題。
2、內積的作用,內積也是可以衡量相似度的!分類問題就是一個找相似樣本的過程,你跟我相似,你就屬於我這個類,所以在求出的目標函數中會出現內積,可以用這個原理來理解。內積是可以衡量兩個向量的相似度的,例如,我們常常可以通過兩個相量的距離和夾角來表示相似度,這些屬性都可以通過兩個向量的內積值來獲得。

核函數只是用來計算映射到高維空間之後的內積的一種簡便方法。

10、支持向量機(SVM)是否適合大規模數據?

https://www.zhihu.com/question/19591450

對於基於支持向量機的大規模線性分類問題,目前已經能比較好地解決。

對於非線性分類問題,基於SMO方法的SVM-Light和LibSVM目前仍被廣泛使用,他們最壞情況下複雜度是O(m^2),並不適合在大規模數據集上做訓練。不過在我接觸過的應用場景裏(比如對象檢測),非線性SVM的最大問題不是訓練時代價問題,而是檢測時代價太高。

11、SVM和邏輯斯特迴歸對同一樣本A進行訓練,如果某類中增加一些數據點,那麼原來的決策邊界分別會怎麼變化?

https://www.zhihu.com/question/30123068

在這裏插入圖片描述
在這裏插入圖片描述

12、各種機器學習的應用場景分別是什麼?例如,k近鄰,貝葉斯,決策樹,svm,邏輯斯蒂迴歸和最大熵模型。

https://www.zhihu.com/question/26726794

沒有最好的分類器,只有最合適的分類器。

隨機森林平均來說最強,但也只在9.9%的數據集上拿到了第一,優點是鮮有短板。

SVM的平均水平緊隨其後,在10.7%的數據集上拿到第一。

神經網絡(13.2%)和boosting(~9%)表現不錯。

數據維度越高,隨機森林就比AdaBoost強越多,但是整體不及SVM[2]。

數據量越大,神經網絡就越強。

KNN,它的思路就是——對於待判斷的點,找到離它最近的幾個數據點,根據它們的類型決定待判斷點的類型。

它的特點是完全跟着數據走,沒有數學模型可言。

適用情景:需要一個特別容易解釋的模型的時候。比如需要向用戶解釋原因的推薦算法。

貝葉斯:

典型的例子是Naive Bayes,核心思路是根據條件概率計算待判斷點的類型。

是相對容易理解的一個模型,至今依然被垃圾郵件過濾器使用。

適用情景:

需要一個比較容易解釋,而且不同維度之間相關性較小的模型的時候。

可以高效處理高維數據,雖然結果可能不盡如人意。

決策樹的特點是它總是在沿着特徵做切分。隨着層層遞進,這個劃分會越來越細。

雖然生成的樹不容易給用戶看,但是數據分析的時候,通過觀察樹的上層結構,能夠對分類器的核心思路有一個直觀的感受。舉個簡單的例子,當我們預測一個孩子的身高的時候,決策樹的第一層可能是這個孩子的性別。男生走左邊的樹進行進一步預測,女生則走右邊的樹。這就說明性別對身高有很強的影響。

適用情景:

因爲它能夠生成清晰的基於特徵(feature)選擇不同預測結果的樹狀結構,數據分析師希望更好的理解手上的數據的時候往往可以使用決策樹。

同時它也是相對容易被攻擊的分類器。這裏的攻擊是指人爲的改變一些特徵,使得分類器判斷錯誤。常見於垃圾郵件躲避檢測中。因爲決策樹最終在底層判斷是基於單個條件的,攻擊者往往只需要改變很少的特徵就可以逃過監測。

受限於它的簡單性,決策樹更大的用處是作爲一些更有用的算法的基石。

隨機森林。嚴格來說,隨機森林其實算是一種集成算法。它首先隨機選取不同的特徵(feature)和訓練樣本(training sample),生成大量的決策樹,然後綜合這些決策樹的結果來進行最終的分類。

隨機森林在現實分析中被大量使用,它相對於決策樹,在準確性上有了很大的提升,同時一定程度上改善了決策樹容易被攻擊的特點。

適用情景:

數據維度相對低(幾十維),同時對準確性有較高要求時。

因爲不需要很多參數調整就可以達到不錯的效果,基本上不知道用什麼方法的時候都可以先試一下隨機森林。

SVM的核心思想就是找到不同類別之間的分界面,使得兩類樣本儘量落在面的兩邊,而且離分界面儘量遠。

最早的SVM是平面的,侷限很大。但是利用核函數,我們可以把平面投射成曲面,進而大大提高SVM的適用範圍。

提高之後的SVM同樣被大量使用,在實際分類中展現了很優秀的正確率。

適用情景:

SVM在很多數據集上都有優秀的表現。

相對來說,SVM儘量保持與樣本間距離的性質導致它抗攻擊的能力更強。

LR,它其實是迴歸類方法的一個變體。

迴歸方法的核心就是爲函數找到最合適的參數,使得函數的值和樣本的值最接近。例如線性迴歸(Linear regression)就是對於函數f(x)=ax+b,找到最合適的a,b。

LR擬合的就不是線性函數了,它擬合的是一個概率學中的函數,f(x)的值這時候就反映了樣本屬於這個類的概率。

適用情景:

LR同樣是很多分類算法的基礎組件,它的好處是輸出值自然地落在0到1之間,並且有概率意義。

因爲它本質上是一個線性的分類器,所以處理不好特徵之間相關的情況。

雖然效果一般,卻勝在模型清晰,背後的概率學經得住推敲。它擬合出來的參數就代表了每一個特徵(feature)對結果的影響。也是一個理解數據的好工具。

線性判別分析(Linear discriminant analysis),簡稱LDA。

LDA的核心思想是把高維的樣本投射(project)到低維上,如果要分成兩類,就投射到一維。要分三類就投射到二維平面上。這樣的投射當然有很多種不同的方式,LDA投射的標準就是讓同類的樣本儘量靠近,而不同類的儘量分開。對於未來要預測的樣本,用同樣的方式投射之後就可以輕易地分辨類別了。

使用情景:

判別分析適用於高維數據需要降維的情況,自帶降維功能使得我們能方便地觀察樣本分佈。它的正確性有數學公式可以證明,所以同樣是很經得住推敲的方式。

但是它的分類準確率往往不是很高,所以不是統計系的人就把它作爲降維工具用吧。

同時注意它是假定樣本成正態分佈的,所以那種同心圓形的數據就不要嘗試了。

神經網絡 (Neural network)

它的核心思路是利用訓練樣本來逐漸地完善參數。還是舉個例子預測身高的例子,如果輸入的特徵中有一個是性別(1:男;0:女),而輸出的特徵是身高(1:高;0:矮)。那麼當訓練樣本是一個個子高的男生的時候,在神經網絡中,從“男”到“高”的路線就會被強化。同理,如果來了一個個子高的女生,那從“女”到“高”的路線就會被強化。

最終神經網絡的哪些路線比較強,就由我們的樣本所決定。

神經網絡的優勢在於,它可以有很多很多層。如果輸入輸出是直接連接的,那它和LR就沒有什麼區別。但是通過大量中間層的引入,它就能夠捕捉很多輸入特徵之間的關係。卷積神經網絡有很經典的不同層的可視化展示(visulization),我這裏就不贅述了。

神經網絡的提出其實很早了,但是它的準確率依賴於龐大的訓練集,原本受限於計算機的速度,分類效果一直不如隨機森林和SVM這種經典算法。

使用情景:

數據量龐大,參數之間存在內在聯繫的時候。

當然現在神經網絡不只是一個分類器,它還可以用來生成數據,用來做降維,這些就不在這裏討論了。

提升算法(Boosting)

接下來講的一系列模型,都屬於集成學習算法(Ensemble
Learning),基於一個核心理念:當我們把多個較弱的分類器結合起來的時候,它的結果會比一個強的分類器更好。

典型的例子是AdaBoost。AdaBoost的實現是一個漸進的過程,從一個最基礎的分類器開始,每次尋找一個最能解決當前錯誤樣本的分類器。用加權取和(weighted
sum)的方式把這個新分類器結合進已有的分類器中。

它的好處是自帶了特徵選擇(feature
selection),只使用在訓練集中發現有效的特徵(feature)。這樣就降低了分類時需要計算的特徵數量,也在一定程度上解決了高維數據難以理解的問題。

最經典的AdaBoost實現中,它的每一個弱分類器其實就是一個決策樹。這就是之前爲什麼說決策樹是各種算法的基石。

使用情景:

好的Boosting算法,它的準確性不遜於隨機森林。實際使用中它還是很強的。因爲自帶特徵選擇(feature
selection)所以對新手很友好,是一個“不知道用什麼就試一下它吧”的算法。

裝袋算法(Bagging)

同樣是弱分類器組合的思路,相對於Boosting,其實Bagging更好理解。它首先隨機地抽取訓練集,以之爲基礎訓練多個弱分類器。然後通過取平均,或者投票(voting)的方式決定最終的分類結果。

因爲它隨機選取訓練集的特點,Bagging可以一定程度上避免過渡擬合(overfit)。

在[1]中,最強的Bagging算法是基於SVM的。如果用定義不那麼嚴格的話,隨機森林也算是Bagging的一種。

使用情景:

相較於經典的必使算法,Bagging使用的人更少一些。一部分的原因是Bagging的效果和參數的選擇關係比較大,用默認參數往往沒有很好的效果。

雖然調對參數結果會比決策樹和LR好,但是模型也變得複雜了,沒事有特別的原因就別用它了。

最大熵模型 (Maximum entropy model)

最大熵模型本身不是分類器,它一般是用來判斷模型預測結果的好壞的。

對於它來說,分類器預測是相當於是:針對樣本,給每個類一個出現概率。比如說樣本的特徵是:性別男。我的分類器可能就給出了下面這樣一個概率:高(60%),矮(40%)。

而如果這個樣本真的是高的,那我們就得了一個分數60%。最大熵模型的目標就是讓這些分數的乘積儘量大。

LR其實就是使用最大熵模型作爲優化目標的一個算法[4]。

隱馬爾科夫 (Hidden Markov model)

這是一個基於序列的預測方法,核心思想就是通過上一個(或幾個)狀態預測下一個狀態。

之所以叫“隱”馬爾科夫是因爲它的設定是狀態本身我們是看不到的,我們只能根據狀態生成的結果序列來學習可能的狀態。

適用場景:

可以用於序列的預測,可以用來生成序列。

13、Linear SVM 和 LR 有什麼異同?https://www.zhihu.com/question/26768865

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章