各大機器學習算法的總結

本文主要用凝練的總結描述各個機器學習算法的特性,優缺點,使用的數學原理和技術,以及應用場景。這些總結整理一方面提供給大家對機器學習更全局的觀察和了解,也能一定程度上幫助大家在面試時思路更清晰。

主要梳理的算法有KNN,貝葉斯,決策樹,PCA,LDA,K-MEANS,DBSCAN,SVM,隨機森林, AdaBoost, GBDT, XGBoost,LightGBM,EM,GMM,HMM。

 

KNN(有監督,分類/迴歸,判別算法)

一句話總結:是一種懶惰學習,沒有顯式的學習訓練過程。基本思路是通過距離判別,如歐氏距離來判別一個樣本在特徵空間中的K個最鄰近的大多數樣本所屬的類別,就劃分爲那個類。算法主要確定K值得選擇,距離度量的選擇還有分類決策的規則。K值一般由人工選擇,距離度量有多種,歐氏距離,曼哈頓距離,馬氏距離和巴氏距離。

算法思想:模板匹配+投票

算法策略:分類決策規則就是最小化經驗風險,經驗風險就是統計誤分類的數量。

實現細節:可以構造kd樹提高計算速度。K值選擇奇數,偏小則模型複雜容易過擬合,偏大則模型簡單容易欠擬合。

優點:實現簡單,對異常值不敏感,可以用來填充缺失值。

缺點:訓練集大時耗時耗空間。樣本不均衡效果不好,無法給出數據內在含義。

知識點:距離度量,樹結構。

使用場景:手寫字體識別,約會對象分類

 

貝葉斯分類(有監督,分類,生成算法)

一句話總結:使用利用貝葉斯全概率公式,由訓練數據學習聯合概率分佈P(X,Y),然後得到後驗概率。即根據先驗概率和條件概率計算後驗概率,再根據貝葉斯估計求得最大後驗概率的類,即爲預測的分類。

算法思想:經驗概率

算法策略:0-1損失函數期望風險最小化準則得到後驗概率最大化準則

實現細節:樸素貝葉斯要保證用於分類的特徵在類確定的條件下都是條件獨立的。貝葉斯估計利用拉普拉斯平滑可以解決某些特徵沒有對應的樣本出現導致估計的概率值爲0。

優點:過程簡單速度快,分佈獨立時效果較好,略勝於邏輯迴歸,適用於小規模數據

缺點:概率結果作爲比較類的應用還湊合,做不到準確分類,特徵條件不獨立情況下效果不好

知識點:貝葉斯定理

使用場景:文本分類,垃圾郵件過濾,情感判別,推薦系統

 

決策樹(有監督,分類/迴歸,判別算法)

一句話總結:利用信息增益(ID3),或者信息增益比(C4.5)或者基尼指數(CART)作爲特徵選擇的劃分標準,利用貪婪算法思想,依次選擇可能重要的特徵,if-then規則造成樹狀形狀。分類樹就像是多維空間的分段線性劃分(超平面劃分);迴歸樹就像映射成分段常數函數。具有非線性的建模能力。

算法思想:貪婪算法,自動化選擇特徵

算法策略:根據特徵選擇算法構造決策樹,然後通過剪枝算法剪枝後挑選出平方誤差或基尼指數最小的決策樹。

實現細節:剪枝算法可以由一種動態規劃的算法實現,決策樹生成學習局部的模型,而決策樹剪枝學習整體的模型。迴歸樹的劃分標準是平方誤差,使用啓發式方法選出切分變量和切分點。樹的深度達到一定程度或者分類誤差降低到某個閾值停止劃分。 

優點:計算量小,速度快,易於理解,可以處理連續和種類字段

缺點:容易過擬合,容易偏向更多數值的特徵,忽略屬性之間的相關性

知識點:信息論,熵,樹結構。

使用場景:集成學習各種Boost,企業分析如風險決策。

 

PCA(無監督,降維算法)

一句話總結:根據最大方差或者最小重構誤差理論,將n維特徵降維映射到k維上,並儘可能保留特徵信息。

算法思想:方差最大化或重構誤差最小化

算法策略:依據最大方差理論或最小重構誤差理論,根據特徵值依次從大到小排列組成的特徵向量矩陣即爲映射矩陣

實現細節:計算原始數據的協方差矩陣的特徵向量和特徵值,將特徵值從大到小排列,取前K個特徵向量組成的矩陣就是映射矩陣

優點:無參數不需人爲干預,計算簡單,可消除原始數據成分間的相互影響

缺點:無法利用先驗知識,對存在非線性依賴關係的情況不理想,非高斯分佈會放生尺度縮放與旋轉

知識點:協方差,特徵值分解,SVD分解

使用場景:數據量大時,人臉識別做LDA前由於不可逆先做PCA,維數災難,需節省計算空間
 

LDA(有監督,降維算法)

一句話總結:依據類內差距最小,類間差距最大的理論,利用標籤數據將n維特徵降維映射到k維上,並儘可能保留特徵信息。

算法思想:類內差距最小,類間差距最大

算法策略:依據類內差距最小,類間差距最大的選擇分類

實現細節:類的均值和總樣本均值之差作爲類間散佈,樣本值與該類均值之差的和作爲類內散佈,求解類間散佈矩陣的逆矩陣和類內散佈矩陣的乘積的特徵向量和特徵值,按照特徵值從大到校排列,取前K個特徵向量組成的矩陣就是映射矩陣

優點:可以利用先驗知識進行降維

缺點:不適合非高斯分佈,樣本依賴方差而不是均值時效果不好,可能過度擬合數據

知識點:協方差,特徵值分解,SVD分解

使用場景:維數災難,人臉識別做LDA降維,需節省計算空間

 

K-MEANS(非監督,聚類算法)

一句話總結:一種基於質心的聚類方法,根據平方誤差最小目標,人爲確定聚類的類數量K值,然後隨機初始化各個簇的均值,按照歐氏距離聚類樣本,然後重新更新聚類後的均值,再往復循環進行(1)重新聚類樣本和(2)更新聚類均值兩個動作直至均值更新差值小於某個閾值收斂

算法思想:如果求解公式循環引用,可以隨機初始化然後迭代更新打破死循環

算法策略:依據最小化樣本聚類後的平方誤差,隨機賦予初始值打破公式循環依賴的關係

實現細節:K值得確定一般按經驗,或者需要解決的任務決定

優點:簡單快速,當簇接近高斯分佈(如球狀)時效果較好,對於不規則形狀效果不佳

缺點:K值事先給出(ISODATA),常常難以估計,初始值的選擇影響最後的聚類結果,對噪聲和孤立點數據敏感

知識點:

使用場景:數據挖掘,無監督分類如新聞分類,降維如SVM對維度太高的數據使用

 

DBSCAN(非監督,聚類算法)

一句話總結:一種基於密度的聚類方法,不斷根據核心點、邊界點等密度可達的判斷準則概念不斷往外延伸遍歷所有的樣本進行聚類的一種算法

算法思想:樣本緊密程度決定

算法策略:根據人工選擇密度距離和密度數

實現細節:根據人工選擇密度距離和密度數,然後根據密度公式判斷依次遍歷各個樣本從而實現聚類,調參:L1,L2正則化選擇,正則化懲罰因子選擇

優點:速度快,有效處理噪聲點和任意形狀的空間聚類,不需要人工確定劃分的聚類個數

缺點:需要手動指定密度距離和密度數,不適用與高維數據,數據量大時內存消耗大,樣本集的密度不均勻、聚類間距差相差很大時聚類效果差

知識點:

使用場景:非均勻數據集的聚類,如顏色分類RGB空間

 

LR(有監督,分類,判別算法)

一句話總結:利用logistic函數構造的對數似然函數,是一個凸優化問題,有全局最優解。求解對數極大似然估計,採用梯度下降法或擬牛頓法求解

算法思想:設計好的損失函數

算法策略:logistic函數爲目標函數,梯度下降法或擬牛頓法求解

實現細節:logistic函數性質較好,一階導數爲自身*(1-自身),L1,L2正則化都是凸優化問題,正負值可以設爲0,1或-1,+1。liblinear參數-s:求解器類型(L1,L2邏輯迴歸...),-C:懲罰因子。使用softmax擴展成多分類問題。

優點:針對大數據多維度的問題有優勢,算法簡單速度快

缺點:分類準確性不夠高

知識點:最大似然估計,凸優化,logistic,梯度下降法,擬牛頓法

使用場景:各種分類

 

SVM(有監督,分類,判別算法)

一句話總結:利用幾何間隔最大化學習一個超平面做成一個線性可分的支持向量,然後通過引入鬆弛變量和懲罰因子允許一定的錯分把線性可分支持向量機拓展爲線性不可分支持向量機,再使用核函數變化把低維空間向量映射到高維空間成爲非線性支持向量機。

算法思想:找到邊界

算法策略:間隔最大化,求解凸二次規劃問題

實現細節:SMO迭代求解SVM最優化結果。先設計出目標函數,因爲是凸二次優化問題使用拉格朗日乘子,又由於符合slater條件符合強對偶,轉換爲對偶問題,再迭代更新求出a值,再根據a值求出w和b,得到最好的模型。核函數有線性,多項式和高斯核函數,維數較高時線性和高斯效果差不多,但計算性能線性更好。

優點:少量支持向量的關鍵數據起作用,數據量少時有優勢,對數據集有較好的魯棒性,避免維數災難

缺點:不好確定核函數,

知識點:凸優化問題,求極值問題,拉格朗日,對偶問題,KKT,合頁函數,核技巧,啓發式序列最小最優化

使用場景:各種分類方法效果都不錯,次於神經網絡

 

隨機森林(有監督,集成,分類,判別算法)

一句話總結:集成學習的一種,以決策樹爲基分類器,使用bootstrap樣本有放回抽樣訓練多個基分類器,訓練多棵樹集合成森林,使用bagging投票決策產生分類結果。

算法思想:集思廣益

算法策略:利用多個模型取平均來減少方差,方差爲原方差的1/n。

實現細節:隨機有放回的抽樣,

優點:有抗過擬合能力,

缺點:比決策樹複雜,計算成本更高,訓練時間長

知識點:bootstrap抽樣,決策樹,包外誤差

使用場景:和決策樹一樣分類迴歸問題

 

AdaBoost,GBDT,XGBoost,LightGBM(有監督,集成,分類,判別算法)

一句話總結:集成學習的一種,利用加法模型和指數損失函數模型來構造算法。以決策樹爲基分類器,使用非bootstrap樣本無放回抽樣不斷訓練分類器,不斷更新樣本的權重值和計算下一個訓練分類器的權重值,使用權重加權決策產生分類結果。

算法思想:反省進化系統

算法策略:利用前一次弱分類器的錯誤殘差,來訓練下一個弱分類器來不斷減少偏差,使用了指數損失函數做爲目標函數

實現細節:變體GBDT利用一次梯度信息和殘差信息加快收斂速度,XGBoost利用二次梯度信息加快收斂速度,LightGBM輕量級boost稍微削減精度加快運算

優點:具有很好的識別能力,能與神經網絡媲美,考慮了集成思想

缺點:比決策樹複雜,計算成本更高,訓練時間長

知識點:決策樹,加法模型,指數損失函數,梯度,先有算法再有算法解釋思想

使用場景:Kaggle各種分類預測大賽

 

EM,GMM(有/無監督,聚類,標註算法)

一句話總結:一種迭代算法,用來求解帶有隱變量的極大似然估計問題。

算法思想:曲線救國,替代法

算法策略:迭代求解極大似然估計。

實現細節:第一步E步,基於當前求得的模型參數求下一次猜測的期望值;第二步M步,求使得Q函數極大化的模型參數,作爲下一次的估計參數。然後不斷迭代E和M步。利用了Jensen不等式證明轉爲爲求容易求的下界函數問題。

優點:解決無法直接求極大似然估計的問題

缺點:初始值的好壞決定最後收斂結果的速度和好壞

知識點:Jensen不等式,期望,轉換爲求下界

使用場景:求解極大似然估計,GMM前景檢測
 

HMM(標註算法)

一句話總結:根據顯式的數據推測隱藏的狀態,按照任務的不同,根據初始狀態概率矩陣,狀態轉移矩陣,觀測概率矩陣計算對應的結果。概率計算用前向或後向公式遞推求解,學習問題用EM算法求解,預測問題可以用近似算法或維特比算法遞推求解。

算法思想:引入狀態變量,找出本質變化

算法策略:問題分爲概率計算問題(知道\lambda和O,求P(O|\lambda)),學習問題(知道O,求\lambda使得P(O|\lambda)最大)和預測問題(知道\lambda和O,求最大P(I|O)的I狀態序列),主要就是概率計算公式和EM算法

實現細節:兩個基本假設,齊次馬爾科夫假設,任意時刻t狀態只依賴於t-1時刻的狀態;觀測獨立性假設,任意時刻的觀測只依賴與該時刻的狀態。

優點:數學框架好

缺點:概率模型,只解決依賴前一時刻狀態的問題,忽略更久遠的時間關聯,還有觀察獨立性限制。

知識點:概率論,EM算法,近似算法,維特比動態規劃算法

使用場景:股票預測,語音識別,NLP
 

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