機器學習常用算法總結

對最常見的機器學習算法做一點點簡單的總結,嫌麻煩公式就不貼了,這裏有我字很醜的聽課筆記,無關人員請撤離…

LR與SVM的異同
相同點:邏輯迴歸和SVM都是有監督學習,本質都是線性分類判別模型。
不同點:
(1)原理不同:邏輯迴歸LR基於損失函數最小化(經驗風險最小化),而支持向量機SVM基於最大化間隔(結構風險最小化);
(2)LR的分類決策面由所有樣本決定,而SVM的決策面即分割超平面只由少數樣本即支撐向量決定;
(3)SVM使用核函數,而LR一般不使用;
(4)LR使用正則化來抑制過擬合,而SVM自帶正則化,但SVM使用鬆弛因子來實現軟間隔;
(5)SVM只給出屬於哪一類,而LR在給出類別的同時,還給出了後驗概率(這使得LR可以用於醫療診斷、點擊率預估、推薦系統等)。

SVM核函數,總結起來就是:若數據樣本在低維空間線性不可分,它在某個高維空間是線性可分的,這就需要將樣本數據從低維空間映射到高維空間,但這個映射關係難以確定。更重要的一點是,SVM中的運算是點積運算,而使用核函數,更確切的說是核技巧(Kernel trick),能將低維向量映射到高維空間並進行點積運算,轉化爲低維空間的簡單運算,使得運算複雜度大大降低。常見的核函數主要有:線性核函數、多項式核函數、RBF徑向基核函數、Sigmoid核函數。
1)線性核函數:這裏寫圖片描述
2) 多項式核函數:這裏寫圖片描述
3) RBF徑向基核函數:這裏寫圖片描述
4) Sigmoid核函數:這裏寫圖片描述

SVM軟間隔與硬間隔:在SVM的最小優化目標函數中加入鬆弛因子,可以實現軟間隔,鬆弛係數C越小,間隔越寬,分割超平面越硬;鬆弛係數C越大,間隔越窄,分割超平面越軟,會更多的擬合訓練樣本;當C太大時,容易過擬合。

SVM多分類問題,本質上還是兩類分類問題,若共有N類(假設N=4),SVM的多分類問題主要有以下幾種策略:
(1)一對多One against Rest:訓練兩類分類器1 vs 2,3,4 、 2 vs 1,3,4 、3 vs 1,2,4 、 4 vs 1,2,3 共N個兩類分類器,測試時將N個分類器結果投票。
(2)一對一One against One:訓練兩類分類器:訓練1 vs 2 、 1 vs 3 、1 vs 4 、2 vs 3 、2 vs 4 、3 vs 4共N*(N-1)/ 2個分類器,測試時通過這些分類器進行投票。
(3)按類別層次劃分

SVM基於間隔最大化來尋找分割超平面,需要做數據歸一化,採用的loss function是hinge loss,深度學習常用的Softmax Regression是對邏輯迴歸LR的一種擴展的多類分類器。

LR本質上是一種線性分類算法,基於損失函數最小化,其分類決策面與所有樣本點都有關,爲了防止過擬合可以加入正則項,多分類問題可以分解成one vs rest問題。其主要優點有:
(1)LR除了給出類別之外,還能給出後驗概率(它採用的映射函數來自於sigmoid函數,輸出可看作0~1的概率值),因此可以用於醫療診斷、CTR點擊率預估、推薦系統等。
(2)可解釋性強,特徵可控性高,訓練快,添加特徵簡單。

LR與NB(樸素貝葉斯)的區別:它們本質上都是線性分類模型,LR基於損失函數最小化,而NB基於貝葉斯定理和條件獨立性假設,LR是判別模型而NB是生成模型,NB可應用於垃圾郵件過濾、文本分類等。

KNN就不說了,比較簡單。決策樹DT主要有ID3、C4.5、CART等方法,分別基於信息增益、信息增益率、基尼係數來做特徵選取樣本數據集劃分,生成一顆決策樹,除了葉節點外所有節點都對應着某個特徵。緩解過擬合的方法包括剪枝和隨機森林,隨機森林是將多顆決策樹即多個弱分類器組合成強分類器的方法。

bagging、隨機森林、boosting和adaboost:
(1)bagging是在所有樣本中有放回的隨機選取n個樣本,使用所有樣本特徵,訓練得到一個分類器,重複m次得到m個分類器,最後採用投票的方式得到決策結果,各分類器權重一樣。
(2)隨機森林在所有樣本中有放回的隨機選取n個樣本,在所有樣本特徵中隨機選取k個特徵,訓練得到一個分類器,重複m次得到m個分類器,最後採用投票的方式得到決策結果,各分類器權重一樣。
(3)boosting相對於bagging,各分類器的權重由其分類的準確率決定,adaboost在boosting的基礎上,每一個樣本給定相同的初始權重,分類出錯的樣本的權重上升,分類正確的樣本權重下降,即它是在前一個分類器訓練的基礎上訓練得到新的分類器,分類器的權重根據其分類的準確率決定,組合弱分類器形成強分類器,不容易過擬合。

PCA主成分分析,目的是特徵降維,降低特徵間相關性,實際上是將原始特徵空間變換到一個複雜度更低並儘可能保留了原始信息的特徵空間。對原始特徵數據樣本的協方差矩陣進行特徵分解,利用特徵向量構造出新的協方差矩陣,滿足主對角元最大,非主對角元爲0,選取主對角元特徵值較大的k個特徵向量,得到降維後的特徵空間。具體步驟如下:
(1)去均值;(2)計算協方差矩陣;(3)特徵分解,選取前top k特徵;(4)特徵降維。
LDA線性判別分析,即fisher準則,也是一種特徵選取/降維的方法,它的原理是使得對特徵空間進行投影變換後,使得類間距離最大、類內距離最小,它在降維的同時考慮了類別信息。

關於樣本處理問題,當樣本數據太大時,考慮離散化、降採樣等措施。關於樣本不均衡問題:
(1)若正樣本遠多於負樣本,且負樣本數量足夠大,可以對正樣本進行下/降採樣,例如隨機採樣,實際場景下可能用到分層採樣。
(2)若正樣本遠多於負樣本,且負樣本數量不夠多,可以收集更多的負樣本,或對負樣本進行上採樣數據增廣(例如對於圖像數據,進行隨機旋轉、平移、縮放、鏡像、圖像增強等),還有修改損失函數的loss weights。

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