目錄
正則化算法(Regularization Algorithms)
集成算法(Ensemble Algorithms)
決策樹(shù)算法(Decision Tree Algorithm)
回歸(Regression)
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)
深度學(xué)習(xí)(Deep Learning)
支持向量機(jī)(Support Vector Machine)
降維算法(Dimensionality Reduction Algorithms)
聚類(lèi)算法(Clustering Algorithms)
基于實(shí)例的算法(Instance-based Algorithms)
貝葉斯算法(Bayesian Algorithms)
關(guān)聯(lián)規(guī)則學(xué)習(xí)算法(Association Rule Learning Algorithms)
圖模型(Graphical Models)
實(shí)驗(yàn)[1]:比較在不同數(shù)據(jù)集上(121個(gè)),不同的分類(lèi)器(179個(gè))的實(shí)際效果。
正則化算法(Regularization Algorithms)
它是另一種方法(通常是回歸方法)的拓展,這種方法會(huì)基于模型復(fù)雜性對(duì)其進(jìn)行懲罰,它喜歡相對(duì)簡(jiǎn)單能夠更好的泛化的模型。
例子:
嶺回歸(Ridge Regression)
最小絕對(duì)收縮與選擇算子(LASSO)
GLASSO
彈性網(wǎng)絡(luò)(Elastic Net)
最小角回歸(Least-Angle Regression)
適用范圍:
優(yōu)點(diǎn):
其懲罰會(huì)減少過(guò)擬合
總會(huì)有解決方法
缺點(diǎn):
懲罰會(huì)造成欠擬合
很難校準(zhǔn)
集成算法(Ensemble algorithms)
集成方法是由多個(gè)較弱的模型集成模型組,其中的模型可以單獨(dú)進(jìn)行訓(xùn)練,并且它們的預(yù)測(cè)能以某種方式結(jié)合起來(lái)去做出一個(gè)總體預(yù)測(cè)。
該算法主要的問(wèn)題是要找出哪些較弱的模型可以結(jié)合起來(lái),以及結(jié)合的方法。這是一個(gè)非常強(qiáng)大的技術(shù)集,因此廣受歡迎。
核心理念:三個(gè)臭皮匠,頂個(gè)諸葛亮。
翻譯過(guò)來(lái)就是:當(dāng)我們把多個(gè)較弱的分類(lèi)器結(jié)合起來(lái)的時(shí)候,它的結(jié)果會(huì)比一個(gè)強(qiáng)的分類(lèi)器更強(qiáng)
典型的例子是AdaBoost。
AdaBoost的實(shí)現(xiàn)是一個(gè)漸進(jìn)的過(guò)程,從一個(gè)最基礎(chǔ)的分類(lèi)器開(kāi)始,每次尋找一個(gè)最能解決當(dāng)前錯(cuò)誤樣本的分類(lèi)器。用加權(quán)取和(weighted sum)的方式把這個(gè)新分類(lèi)器結(jié)合進(jìn)已有的分類(lèi)器中。
它的好處是自帶了特征選擇(feature selection),只使用在訓(xùn)練集中發(fā)現(xiàn)有效的特征(feature)。這樣就降低了分類(lèi)時(shí)需要計(jì)算的特征數(shù)量,也在一定程度上解決了高維數(shù)據(jù)難以理解的問(wèn)題。
最經(jīng)典的AdaBoost實(shí)現(xiàn)中,它的每一個(gè)弱分類(lèi)器其實(shí)就是一個(gè)決策樹(shù)。、
隨機(jī)森林也是一種典型的集成算法。它首先隨機(jī)選取不同的特征(feature)和訓(xùn)練樣本(training sample),生成大量的決策樹(shù),然后綜合這些決策樹(shù)的結(jié)果來(lái)進(jìn)行最終的分類(lèi)。
隨機(jī)森林在現(xiàn)實(shí)分析中被大量使用,它相對(duì)于決策樹(shù),在準(zhǔn)確性上有了很大的提升,同時(shí)一定程度上改善了決策樹(shù)容易被攻擊的特點(diǎn)。
同樣是弱分類(lèi)器組合的思路,相對(duì)于Boosting,其實(shí)Bagging更好理解。它首先隨機(jī)地抽取訓(xùn)練集(training set),以之為基礎(chǔ)訓(xùn)練多個(gè)弱分類(lèi)器。然后通過(guò)取平均,或者投票(voting)的方式?jīng)Q定最終的分類(lèi)結(jié)果。
因?yàn)樗S機(jī)選取訓(xùn)練集的特點(diǎn),Bagging可以一定程度上避免過(guò)渡擬合(overfit)。
在[1]中,最強(qiáng)的Bagging算法是基于SVM的。如果用定義不那么嚴(yán)格的話(huà),隨機(jī)森林也算是Bagging的一種。
例子:
Boosting
Bootstrapped Aggregation(Bagging)
AdaBoost
層疊泛化(Stacked Generalization)(blending)
梯度推進(jìn)機(jī)(Gradient Boosting Machines,GBM)
梯度提升回歸樹(shù)(Gradient Boosted Regression Trees,GBRT)
隨機(jī)森林(Random Forest)
隨機(jī)森林適用情景:
數(shù)據(jù)維度相對(duì)低(幾十維),同時(shí)對(duì)準(zhǔn)確性有較高要求時(shí)。
因?yàn)椴恍枰芏鄥?shù)調(diào)整就可以達(dá)到不錯(cuò)的效果,基本上不知道用什么方法的時(shí)候都可以先試一下隨機(jī)森林。
Boosting使用情景:
好的Boosting算法,它的準(zhǔn)確性不遜于隨機(jī)森林。雖然在[1]的實(shí)驗(yàn)中只有一個(gè)擠進(jìn)前十,但是實(shí)際使用中它還是很強(qiáng)的。因?yàn)樽詭卣鬟x擇(feature selection)所以對(duì)新手很友好,是一個(gè)“不知道用什么就試一下它吧”的算法。
Bagging使用情景:
相較于經(jīng)典的必使算法,Bagging使用的人更少一些。一部分的原因是Bagging的效果和參數(shù)的選擇關(guān)系比較大,用默認(rèn)參數(shù)往往沒(méi)有很好的效果。
雖然調(diào)對(duì)參數(shù)結(jié)果會(huì)比決策樹(shù)和LR好,但是模型也變得復(fù)雜了,沒(méi)事有特別的原因就別用它了。
優(yōu)點(diǎn):
當(dāng)先最先進(jìn)的預(yù)測(cè)幾乎都使用了算法集成。它比使用單個(gè)模型預(yù)測(cè)出來(lái)的結(jié)果要精確的多
缺點(diǎn):
需要大量的維護(hù)工作
決策樹(shù)算法(Decision Tree Algorithm)
決策樹(shù)學(xué)習(xí)使用一個(gè)決策樹(shù)作為一個(gè)預(yù)測(cè)模型,它將對(duì)一個(gè) item(表征在分支上)觀察所得映射成關(guān)于該 item 的目標(biāo)值的結(jié)論(表征在葉子中)。
樹(shù)模型中的目標(biāo)是可變的,可以采一組有限值,被稱(chēng)為分類(lèi)樹(shù);在這些樹(shù)結(jié)構(gòu)中,葉子表示類(lèi)標(biāo)簽,分支表示表征這些類(lèi)標(biāo)簽的連接的特征。
決策樹(shù)的特點(diǎn)是它總是在沿著特征做切分。隨著層層遞進(jìn),這個(gè)劃分會(huì)越來(lái)越細(xì)。
雖然生成的樹(shù)不容易給用戶(hù)看,但是數(shù)據(jù)分析的時(shí)候,通過(guò)觀察樹(shù)的上層結(jié)構(gòu),能夠?qū)Ψ诸?lèi)器的核心思路有一個(gè)直觀的感受。
舉個(gè)簡(jiǎn)單的例子,當(dāng)我們預(yù)測(cè)一個(gè)孩子的身高的時(shí)候,決策樹(shù)的第一層可能是這個(gè)孩子的性別。男生走左邊的樹(shù)進(jìn)行進(jìn)一步預(yù)測(cè),女生則走右邊的樹(shù)。這就說(shuō)明性別對(duì)身高有很強(qiáng)的影響。
例子:
分類(lèi)和回歸樹(shù)(Classification and Regression Tree,CART)
Iterative Dichotomiser 3(ID3)
C4.5 和 C5.0(一種強(qiáng)大方法的兩個(gè)不同版本)
適用情景:
因?yàn)樗軌蛏汕逦幕谔卣?feature)選擇不同預(yù)測(cè)結(jié)果的樹(shù)狀結(jié)構(gòu),數(shù)據(jù)分析師希望更好的理解手上的數(shù)據(jù)的時(shí)候往往可以使用決策樹(shù)。
同時(shí)它也是相對(duì)容易被攻擊的分類(lèi)器[3]。這里的攻擊是指人為的改變一些特征,使得分類(lèi)器判斷錯(cuò)誤。常見(jiàn)于垃圾郵件躲避檢測(cè)中。因?yàn)闆Q策樹(shù)最終在底層判斷是基于單個(gè)條件的,攻擊者往往只需要改變很少的特征就可以逃過(guò)監(jiān)測(cè)。
受限于它的簡(jiǎn)單性,決策樹(shù)更大的用處是作為一些更有用的算法的基石。
優(yōu)點(diǎn):
容易解釋
非參數(shù)型
簡(jiǎn)單的理解和解釋。樹(shù)可以被可視化。
需要很少的數(shù)據(jù)準(zhǔn)備。其他技術(shù)通常需要數(shù)據(jù)歸一化,需要?jiǎng)?chuàng)建虛擬變量,并刪除空值。請(qǐng)注意,此模塊不支持缺少值。
使用樹(shù)的成本(即,預(yù)測(cè)數(shù)據(jù))在用于訓(xùn)練樹(shù)的數(shù)據(jù)點(diǎn)的數(shù)量上是對(duì)數(shù)的。
能夠處理數(shù)字和分類(lèi)數(shù)據(jù)。其他技術(shù)通常專(zhuān)門(mén)用于分析只有一種變量類(lèi)型的數(shù)據(jù)集。有關(guān)更多信息,請(qǐng)參閱算法
能夠處理多輸出問(wèn)題。
使用白盒模型。如果給定的情況在模型中是可觀察的,那么條件的解釋很容易用布爾邏輯來(lái)解釋。相比之下,在黑匣子模型(例如,在人造神經(jīng)網(wǎng)絡(luò)中),結(jié)果可能更難解釋。
可以使用統(tǒng)計(jì)測(cè)試驗(yàn)證模型。這樣可以說(shuō)明模型的可靠性。
即使其假設(shè)被數(shù)據(jù)生成的真實(shí)模型有些違反,表現(xiàn)良好。
缺點(diǎn):
趨向過(guò)擬合
可能或陷于局部最小值中
沒(méi)有在線學(xué)習(xí)
策樹(shù)學(xué)習(xí)者可以創(chuàng)建不能很好地推廣數(shù)據(jù)的過(guò)于復(fù)雜的樹(shù)。這被稱(chēng)為過(guò)擬合。修剪(目前不支持)的機(jī)制,設(shè)置葉節(jié)點(diǎn)所需的最小采樣數(shù)或設(shè)置樹(shù)的最大深度是避免此問(wèn)題的必要條件。
決策樹(shù)可能不穩(wěn)定,因?yàn)閿?shù)據(jù)中的小變化可能會(huì)導(dǎo)致完全不同的樹(shù)生成??。通過(guò)使用合奏中的決策樹(shù)來(lái)減輕這個(gè)問(wèn)題。
在最優(yōu)性的幾個(gè)方面甚至是簡(jiǎn)單的概念,已知學(xué)習(xí)最優(yōu)決策樹(shù)的問(wèn)題是NP完整的。因此,實(shí)際的決策樹(shù)學(xué)習(xí)算法基于啟發(fā)式算法,例如在每個(gè)節(jié)點(diǎn)進(jìn)行局部最優(yōu)決策的貪心算法。這樣的算法不能保證返回全局最優(yōu)決策樹(shù)。這可以通過(guò)在綜合學(xué)習(xí)者中訓(xùn)練多個(gè)樹(shù)木來(lái)緩解,其中特征和樣本隨機(jī)抽樣取代。
有一些難以學(xué)習(xí)的概念,因?yàn)闆Q策樹(shù)不能很容易地表達(dá)它們,例如XOR,奇偶校驗(yàn)或復(fù)用器問(wèn)題。
如果某些類(lèi)占主導(dǎo)地位,決策樹(shù)學(xué)習(xí)者會(huì)創(chuàng)造有偏見(jiàn)的樹(shù)。因此,建議在擬合之前平衡數(shù)據(jù)集與決策樹(shù)。
回歸(Regression)算法
回歸是用于估計(jì)兩種變量之間關(guān)系的統(tǒng)計(jì)過(guò)程。當(dāng)用于分析因變量和一個(gè) 多個(gè)自變量之間的關(guān)系時(shí),該算法能提供很多建模和分析多個(gè)變量的技巧。具體一點(diǎn)說(shuō),回歸分析可以幫助我們理解當(dāng)任意一個(gè)自變量變化,另一個(gè)自變量不變時(shí),因變量變化的典型值。最常見(jiàn)的是,回歸分析能在給定自變量的條件下估計(jì)出因變量的條件期望。
回歸算法是統(tǒng)計(jì)學(xué)中的主要算法,它已被納入統(tǒng)計(jì)機(jī)器學(xué)習(xí)。
回歸方法的核心就是為函數(shù)找到最合適的參數(shù),使得函數(shù)的值和樣本的值最接近。例如線性回歸(Linear regression)就是對(duì)于函數(shù)f(x)=ax+b,找到最合適的a,b。
邏輯回歸擬合的就不是線性函數(shù)了,它擬合的是一個(gè)概率學(xué)中的函數(shù),f(x)的值這時(shí)候就反映了樣本屬于這個(gè)類(lèi)的概率。
例子:
普通最小二乘回歸(Ordinary Least Squares Regression,OLSR)
線性回歸(Linear Regression)
邏輯回歸(Logistic Regression)
逐步回歸(Stepwise Regression)
多元自適應(yīng)回歸樣條(Multivariate Adaptive Regression Splines,MARS)
本地散點(diǎn)平滑估計(jì)(Locally Estimated Scatterplot Smoothing,LOESS)
邏輯回歸適用情景:
LR同樣是很多分類(lèi)算法的基礎(chǔ)組件,它的好處是輸出值自然地落在0到1之間,并且有概率意義。
因?yàn)樗举|(zhì)上是一個(gè)線性的分類(lèi)器,所以處理不好特征之間相關(guān)的情況。
雖然效果一般,卻勝在模型清晰,背后的概率學(xué)經(jīng)得住推敲。它擬合出來(lái)的參數(shù)就代表了每一個(gè)特征(feature)對(duì)結(jié)果的影響。也是一個(gè)理解數(shù)據(jù)的好工具。
優(yōu)點(diǎn):
直接、快速
知名度高
缺點(diǎn):
要求嚴(yán)格的假設(shè)
需要處理異常值
人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)是受生物神經(jīng)網(wǎng)絡(luò)啟發(fā)而構(gòu)建的算法模型。
它是一種模式匹配,常被用于回歸和分類(lèi)問(wèn)題,但擁有龐大的子域,由數(shù)百種算法和各類(lèi)問(wèn)題的變體組成。
它的核心思路是利用訓(xùn)練樣本(training sample)來(lái)逐漸地完善參數(shù)。還是舉個(gè)例子預(yù)測(cè)身高的例子,如果輸入的特征中有一個(gè)是性別(1:男;0:女),而輸出的特征是身高(1:高;0:矮)。那么當(dāng)訓(xùn)練樣本是一個(gè)個(gè)子高的男生的時(shí)候,在神經(jīng)網(wǎng)絡(luò)中,從“男”到“高”的路線就會(huì)被強(qiáng)化。同理,如果來(lái)了一個(gè)個(gè)子高的女生,那從“女”到“高”的路線就會(huì)被強(qiáng)化。
最終神經(jīng)網(wǎng)絡(luò)的哪些路線比較強(qiáng),就由我們的樣本所決定。
神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)在于,它可以有很多很多層。如果輸入輸出是直接連接的,那它和LR就沒(méi)有什么區(qū)別。但是通過(guò)大量中間層的引入,它就能夠捕捉很多輸入特征之間的關(guān)系。卷積神經(jīng)網(wǎng)絡(luò)有很經(jīng)典的不同層的可視化展示(visulization),我這里就不贅述了。
神經(jīng)網(wǎng)絡(luò)的提出其實(shí)很早了,但是它的準(zhǔn)確率依賴(lài)于龐大的訓(xùn)練集,原本受限于計(jì)算機(jī)的速度,分類(lèi)效果一直不如隨機(jī)森林和SVM這種經(jīng)典算法。
例子:
感知器
反向傳播
Hopfield 網(wǎng)絡(luò)
徑向基函數(shù)網(wǎng)絡(luò)(Radial Basis Function Network,RBFN)
使用情景:
數(shù)據(jù)量龐大,參數(shù)之間存在內(nèi)在聯(lián)系的時(shí)候。
當(dāng)然現(xiàn)在神經(jīng)網(wǎng)絡(luò)不只是一個(gè)分類(lèi)器,它還可以用來(lái)生成數(shù)據(jù),用來(lái)做降維,這些就不在這里討論了。
優(yōu)點(diǎn):
在語(yǔ)音、語(yǔ)義、視覺(jué)、各類(lèi)游戲(如圍棋)的任務(wù)中表現(xiàn)極好。
算法可以快速調(diào)整,適應(yīng)新的問(wèn)題。
缺點(diǎn):
需要大量數(shù)據(jù)進(jìn)行訓(xùn)練
訓(xùn)練要求很高的硬件配置
模型處于「黑箱狀態(tài)」,難以理解內(nèi)部機(jī)制
元參數(shù)(Metaparameter)與網(wǎng)絡(luò)拓?fù)溥x擇困難。
深度學(xué)習(xí)(Deep Learning)
深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)的最新分支,它受益于當(dāng)代硬件的快速發(fā)展。
眾多研究者目前的方向主要集中于構(gòu)建更大、更復(fù)雜的神經(jīng)網(wǎng)絡(luò),目前有許多方法正在聚焦半監(jiān)督學(xué)習(xí)問(wèn)題,其中用于訓(xùn)練的大數(shù)據(jù)集只包含很少的標(biāo)記。
例子:
深玻耳茲曼機(jī)(Deep Boltzmann Machine,DBM)
Deep Belief Networks(DBN)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)
Stacked Auto-Encoders
優(yōu)點(diǎn)/缺點(diǎn):見(jiàn)神經(jīng)網(wǎng)絡(luò)
支持向量機(jī)(Support Vector Machines)
給定一組訓(xùn)練事例,其中每個(gè)事例都屬于兩個(gè)類(lèi)別中的一個(gè),支持向量機(jī)(SVM)訓(xùn)練算法可以在被輸入新的事例后將其分類(lèi)到兩個(gè)類(lèi)別中的一個(gè),使自身成為非概率二進(jìn)制線性分類(lèi)器。
SVM 模型將訓(xùn)練事例表示為空間中的點(diǎn),它們被映射到一幅圖中,由一條明確的、盡可能寬的間隔分開(kāi)以區(qū)分兩個(gè)類(lèi)別。
隨后,新的示例會(huì)被映射到同一空間中,并基于它們落在間隔的哪一側(cè)來(lái)預(yù)測(cè)它屬于的類(lèi)別。
SVM的核心思想就是找到不同類(lèi)別之間的分界面,使得兩類(lèi)樣本盡量落在面的兩邊,而且離分界面盡量遠(yuǎn)。
最早的SVM是平面的,局限很大。但是利用核函數(shù)(kernel function),我們可以把平面投射(mapping)成曲面,進(jìn)而大大提高SVM的適用范圍。
提高之后的SVM同樣被大量使用,在實(shí)際分類(lèi)中展現(xiàn)了很優(yōu)秀的正確率。
適用情景:
SVM在很多數(shù)據(jù)集上都有優(yōu)秀的表現(xiàn)。
相對(duì)來(lái)說(shuō),SVM盡量保持與樣本間距離的性質(zhì)導(dǎo)致它抗攻擊的能力更強(qiáng)。
和隨機(jī)森林一樣,這也是一個(gè)拿到數(shù)據(jù)就可以先嘗試一下的算法。
優(yōu)點(diǎn):
在非線性可分問(wèn)題上表現(xiàn)優(yōu)秀
缺點(diǎn):
非常難以訓(xùn)練
很難解釋
降維算法(Dimensionality Reduction Algorithms)
和集簇方法類(lèi)似,降維追求并利用數(shù)據(jù)的內(nèi)在結(jié)構(gòu),目的在于使用較少的信息總結(jié)或描述數(shù)據(jù)。
這一算法可用于可視化高維數(shù)據(jù)或簡(jiǎn)化接下來(lái)可用于監(jiān)督學(xué)習(xí)中的數(shù)據(jù)。許多這樣的方法可針對(duì)分類(lèi)和回歸的使用進(jìn)行調(diào)整。
其中判別分析主要是統(tǒng)計(jì)那邊在用。判別分析的典型例子是線性判別分析(Linear discriminant analysis),簡(jiǎn)稱(chēng)LDA。
(這里注意不要和隱含狄利克雷分布(Latent Dirichlet allocation)弄混,雖然都叫LDA但說(shuō)的不是一件事。)
LDA的核心思想是把高維的樣本投射(project)到低維上,如果要分成兩類(lèi),就投射到一維。要分三類(lèi)就投射到二維平面上。這樣的投射當(dāng)然有很多種不同的方式,LDA投射的標(biāo)準(zhǔn)就是讓同類(lèi)的樣本盡量靠近,而不同類(lèi)的盡量分開(kāi)。對(duì)于未來(lái)要預(yù)測(cè)的樣本,用同樣的方式投射之后就可以輕易地分辨類(lèi)別了。
例子:
主成分分析(Principal Component Analysis (PCA))
主成分回歸(Principal Component Regression (PCR))
偏最小二乘回歸(Partial Least Squares Regression (PLSR))
Sammon 映射(Sammon Mapping)
多維尺度變換(Multidimensional Scaling (MDS))
投影尋蹤(Projection Pursuit)
線性判別分析(Linear Discriminant Analysis (LDA))
混合判別分析(Mixture Discriminant Analysis (MDA))
二次判別分析(Quadratic Discriminant Analysis (QDA))
靈活判別分析(Flexible Discriminant Analysis (FDA))
判別分析使用情景:
判別分析適用于高維數(shù)據(jù)需要降維的情況,自帶降維功能使得我們能方便地觀察樣本分布。它的正確性有數(shù)學(xué)公式可以證明,所以同樣是很經(jīng)得住推敲的方式。
但是它的分類(lèi)準(zhǔn)確率往往不是很高,所以不是統(tǒng)計(jì)系的人就把它作為降維工具用吧。
同時(shí)注意它是假定樣本成正態(tài)分布的,所以那種同心圓形的數(shù)據(jù)就不要嘗試了。
優(yōu)點(diǎn):
可處理大規(guī)模數(shù)據(jù)集
無(wú)需在數(shù)據(jù)上進(jìn)行假設(shè)
缺點(diǎn):
難以搞定非線性數(shù)據(jù)
難以理解結(jié)果的意義
聚類(lèi)算法(Clustering Algorithms)
聚類(lèi)算法是指對(duì)一組目標(biāo)進(jìn)行分類(lèi),屬于同一組(亦即一個(gè)類(lèi),cluster)的目標(biāo)被劃分在一組中,與其他組目標(biāo)相比,同一組目標(biāo)更加彼此相似(在某種意義上)。
例子:
K-均值(k-Means)
k-Medians 算法
Expectation Maximi 封層 ation (EM)
最大期望算法(EM)
分層集群(Hierarchical Clstering)
優(yōu)點(diǎn):
讓數(shù)據(jù)變得有意義
缺點(diǎn):
結(jié)果難以解讀,針對(duì)不尋常的數(shù)據(jù)組,結(jié)果可能無(wú)用。同樣的數(shù)據(jù)每次得到的結(jié)果可能不同。有不好的局部最小值
k均值非常依賴(lài)初始簇中心的位置,
基于實(shí)例的算法(Instance-based Algorithms)
基于實(shí)例的算法(有時(shí)也稱(chēng)為基于記憶的學(xué)習(xí))是這樣學(xué) 習(xí)算法,不是明確歸納,而是將新的問(wèn)題例子與訓(xùn)練過(guò)程中見(jiàn)過(guò)的例子進(jìn)行對(duì)比,這些見(jiàn)過(guò)的例子就在存儲(chǔ)器中。
之所以叫基于實(shí)例的算法是因?yàn)樗苯訌挠?xùn)練實(shí)例中建構(gòu)出假設(shè)。這意味這,假設(shè)的復(fù)雜度能隨著數(shù)據(jù)的增長(zhǎng)而變化:最糟的情況是,假設(shè)是一個(gè)訓(xùn)練項(xiàng)目列表,分類(lèi)一個(gè)單獨(dú)新實(shí)例計(jì)算復(fù)雜度為 O(n)
典型的例子是KNN,它的思路就是——對(duì)于待判斷的點(diǎn),找到離它最近的幾個(gè)數(shù)據(jù)點(diǎn),根據(jù)它們的類(lèi)型決定待判斷點(diǎn)的類(lèi)型。
它的特點(diǎn)是完全跟著數(shù)據(jù)走,沒(méi)有數(shù)學(xué)模型可言。
例子:
K 最近鄰(k-Nearest Neighbor (kNN))
學(xué)習(xí)向量量化(Learning Vector Quantization (LVQ))
自組織映射(Self-Organizing Map (SOM))
局部加權(quán)學(xué)習(xí)(Locally Weighted Learning (LWL))
適用范圍:
需要一個(gè)特別容易解釋的模型的時(shí)候。
比如需要向用戶(hù)解釋原因的推薦算法。
優(yōu)點(diǎn):
算法簡(jiǎn)單、結(jié)果易于解讀
缺點(diǎn):
內(nèi)存使用非常高
計(jì)算成本高
不可能用于高維特征空間
貝葉斯算法(Bayesian Algorithms)
貝葉斯方法是指明確應(yīng)用了貝葉斯定理來(lái)解決如分類(lèi)和回歸等問(wèn)題的方法。
典型的例子是Naive Bayes,核心思路是根據(jù)條件概率計(jì)算待判斷點(diǎn)的類(lèi)型。
是相對(duì)容易理解的一個(gè)模型,至今依然被垃圾郵件過(guò)濾器使用。
例子:
樸素貝葉斯(Naive Bayes)
高斯樸素貝葉斯(Gaussian Naive Bayes)
多項(xiàng)式樸素貝葉斯(Multinomial Naive Bayes)
平均一致依賴(lài)估計(jì)器(Averaged One-Dependence Estimators (AODE))
貝葉斯信念網(wǎng)絡(luò)(Bayesian Belief Network (BBN))
貝葉斯網(wǎng)絡(luò)(Bayesian Network (BN))
適用情景:
需要一個(gè)比較容易解釋?zhuān)也煌S度之間相關(guān)性較小的模型的時(shí)候。
可以高效處理高維數(shù)據(jù),雖然結(jié)果可能不盡如人意。
優(yōu)點(diǎn):
快速、易于訓(xùn)練、給出了它們所需的資源能帶來(lái)良好的表現(xiàn)
1)樸素貝葉斯模型發(fā)源于古典數(shù)學(xué)理論,有穩(wěn)定的分類(lèi)效率。
2)對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能個(gè)處理多分類(lèi)任務(wù),適合增量式訓(xùn)練,尤其是數(shù)據(jù)量超出內(nèi)存時(shí),我們可以一批批的去增量訓(xùn)練。
3)對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡(jiǎn)單,常用于文本分類(lèi)。
缺點(diǎn):
如果輸入變量是相關(guān)的,則會(huì)出現(xiàn)問(wèn)題
1) 理論上,樸素貝葉斯模型與其他分類(lèi)方法相比具有最小的誤差率。但是實(shí)際上并非總是如此,這是因?yàn)闃闼刎惾~斯模型假設(shè)屬性之間相互獨(dú)立,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的,在屬性個(gè)數(shù)比較多或者屬性之間相關(guān)性較大時(shí),分類(lèi)效果不好。而在屬性相關(guān)性較小時(shí),樸素貝葉斯性能最為良好。對(duì)于這一點(diǎn),有半樸素貝葉斯之類(lèi)的算法通過(guò)考慮部分關(guān)聯(lián)性適度改進(jìn)。
2)需要知道先驗(yàn)概率,且先驗(yàn)概率很多時(shí)候取決于假設(shè),假設(shè)的模型可以有很多種,因此在某些時(shí)候會(huì)由于假設(shè)的先驗(yàn)?zāi)P偷脑驅(qū)е骂A(yù)測(cè)效果不佳。
3)由于我們是通過(guò)先驗(yàn)和數(shù)據(jù)來(lái)決定后驗(yàn)的概率從而決定分類(lèi),所以分類(lèi)決策存在一定的錯(cuò)誤率。
4)對(duì)輸入數(shù)據(jù)的表達(dá)形式很敏感。
關(guān)聯(lián)規(guī)則學(xué)習(xí)算法(Association Rule Learning Algorithms)
關(guān)聯(lián)規(guī)則學(xué)習(xí)方法能夠提取出對(duì)數(shù)據(jù)中的變量之間的關(guān)系的最佳解釋。比如說(shuō)一家超市的銷(xiāo)售數(shù)據(jù)中存在規(guī)則 {洋蔥,土豆}=> {漢堡},那說(shuō)明當(dāng)一位客戶(hù)同時(shí)購(gòu)買(mǎi)了洋蔥和土豆的時(shí)候,他很有可能還會(huì)購(gòu)買(mǎi)漢堡肉。
例子:
Apriori 算法(Apriori algorithm)
Eclat 算法(Eclat algorithm)
FP-growth
圖模型(Graphical Models)
圖模型或概率圖模型(PGM/probabilistic graphical model)是一種概率模型,一個(gè)圖(graph)可以通過(guò)其表示隨機(jī)變量之間的條件依賴(lài)結(jié)構(gòu)(conditional dependence structure)。
例子:
貝葉斯網(wǎng)絡(luò)(Bayesian network)
馬爾可夫隨機(jī)域(Markov random field)
鏈圖(Chain Graphs)
祖先圖(Ancestral graph)
優(yōu)點(diǎn):
模型清晰,能被直觀地理解
缺點(diǎn):
確定其依賴(lài)的拓?fù)浜芾щy,有時(shí)候也很模糊