本文將帶你遍歷機(jī)器學(xué)習(xí)領(lǐng)域最受歡迎的算法系統(tǒng)地了解這些算法有助于進(jìn)一步掌握機(jī)器學(xué)習(xí)當(dāng)然,本文收錄的算法并不完全,分類(lèi)的方式也不唯一不過(guò),看完這篇文章后,下次再有算法提起,你想不起它長(zhǎng)處和用處的可能性就很低了本文還附有兩張算法思維導(dǎo)圖供學(xué)習(xí)使用
在本文中,我將提供兩種分類(lèi)機(jī)器學(xué)習(xí)算法的方法一是根據(jù)學(xué)習(xí)方式分類(lèi),二是根據(jù)類(lèi)似的形式或功能分類(lèi)這兩種方法都很有用,不過(guò),本文將側(cè)重后者,也就是根據(jù)類(lèi)似的形式或功能分類(lèi)在閱讀完本文以后,你將會(huì)對(duì)監(jiān)督學(xué)習(xí)中最受歡迎的機(jī)器學(xué)習(xí)算法,以及它們彼此之間的關(guān)系有一個(gè)比較深刻的了解
事先說(shuō)明一點(diǎn),我沒(méi)有涵蓋機(jī)器學(xué)習(xí)特殊子領(lǐng)域的算法,比如計(jì)算智能(進(jìn)化算法等)、計(jì)算機(jī)視覺(jué)(CV)、自然語(yǔ)言處理(NLP)、推薦系統(tǒng)、強(qiáng)化學(xué)習(xí)和圖模型
下面是一張算法思維導(dǎo)圖,點(diǎn)擊放大查看
從學(xué)習(xí)方式分類(lèi)
算法對(duì)一個(gè)問(wèn)題建模的方式很多,可以基于經(jīng)歷、環(huán)境,或者任何我們稱(chēng)之為輸入數(shù)據(jù)的東西機(jī)器學(xué)習(xí)和人工智能的教科書(shū)通常會(huì)讓你首先考慮算法能夠采用什么方式學(xué)習(xí)實(shí)際上,算法能夠采取的學(xué)習(xí)方式或者說(shuō)學(xué)習(xí)模型只有幾種,下面我會(huì)一一說(shuō)明對(duì)機(jī)器學(xué)習(xí)算法進(jìn)行分類(lèi)是很有必要的事情,因?yàn)檫@迫使你思考輸入數(shù)據(jù)的作用以及模型準(zhǔn)備過(guò)程,從而選擇一個(gè)最適用于你手頭問(wèn)題的算法
監(jiān)督學(xué)習(xí)
輸入數(shù)據(jù)被稱(chēng)為訓(xùn)練數(shù)據(jù),并且每一個(gè)都帶有標(biāo)簽,比如“廣告/非廣告”,或者當(dāng)時(shí)的股票價(jià)格通過(guò)訓(xùn)練過(guò)程建模,模型需要做出預(yù)測(cè),如果預(yù)測(cè)出錯(cuò)會(huì)被修正直到模型輸出準(zhǔn)確的結(jié)果,訓(xùn)練過(guò)程會(huì)一直持續(xù)常用于解決的問(wèn)題有分類(lèi)和回歸常用的算法包括邏輯回歸和BP神經(jīng)網(wǎng)絡(luò)
無(wú)監(jiān)督學(xué)習(xí)
輸入數(shù)據(jù)沒(méi)有標(biāo)簽,輸出沒(méi)有標(biāo)準(zhǔn)答案,就是一系列的樣本無(wú)監(jiān)督學(xué)習(xí)通過(guò)推斷輸入數(shù)據(jù)中的結(jié)構(gòu)建模這可能是提取一般規(guī)律,可以是通過(guò)數(shù)學(xué)處理系統(tǒng)地減少冗余,或者根據(jù)相似性組織數(shù)據(jù)常用于解決的問(wèn)題有聚類(lèi)、降維和關(guān)聯(lián)規(guī)則的學(xué)習(xí)常用的算法包括 Apriori 算法和 K 均值算法
半監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)的輸入數(shù)據(jù)包含帶標(biāo)簽和不帶標(biāo)簽的樣本半監(jiān)督學(xué)習(xí)的情形是,有一個(gè)預(yù)期中的預(yù)測(cè),但模型必須通過(guò)學(xué)習(xí)結(jié)構(gòu)整理數(shù)據(jù)從而做出預(yù)測(cè)常用于解決的問(wèn)題是分類(lèi)和回歸常用的算法是所有對(duì)無(wú)標(biāo)簽數(shù)據(jù)建模進(jìn)行預(yù)測(cè)的算法(即無(wú)監(jiān)督學(xué)習(xí))的延伸
從功能角度分類(lèi)
研究人員常常通過(guò)功能相似對(duì)算法進(jìn)行分類(lèi)例如,基于樹(shù)的方法和基于神經(jīng)網(wǎng)絡(luò)的方法這種方法也是我個(gè)人認(rèn)為最有用的分類(lèi)方法不過(guò),這種方法也并非完美,比如學(xué)習(xí)矢量量化(LVQ),就既可以被歸為神經(jīng)網(wǎng)絡(luò)方法,也可以被歸為基于實(shí)例的方法此外,像回歸和聚類(lèi),就既可以形容算法,也可以指代問(wèn)題
為了避免重復(fù),本文將只在最適合的地方列舉一次下面的算法和分類(lèi)都不齊備,但有助于你了解整個(gè)領(lǐng)域大概(說(shuō)明:用于分類(lèi)和回歸的算法帶有很大的個(gè)人主觀傾向;歡迎補(bǔ)充我遺漏的條目)
回歸算法
回歸分析是研究自變量和因變量之間關(guān)系的一種預(yù)測(cè)模型技術(shù)這些技術(shù)應(yīng)用于預(yù)測(cè)時(shí)間序列模型和找到變量之間關(guān)系回歸分析也是一種常用的統(tǒng)計(jì)學(xué)方法,經(jīng)由統(tǒng)計(jì)機(jī)器學(xué)習(xí)融入機(jī)器學(xué)習(xí)領(lǐng)域“回歸”既可以指算法也可以指問(wèn)題,因此在指代的時(shí)候容易混淆實(shí)際上,回歸就是一個(gè)過(guò)程而已常用的回歸算法包括:
普通最小二乘回歸(OLSR)
線性回歸
邏輯回歸
逐步回歸
多元自適應(yīng)回歸樣條法(MARS)
局部估計(jì)平滑散點(diǎn)圖(LOESS)
基于實(shí)例的學(xué)習(xí)算法
基于實(shí)例的學(xué)習(xí)通過(guò)訓(xùn)練數(shù)據(jù)的樣本或事例建模,這些樣本或事例也被視為建模所必需的這類(lèi)模型通常會(huì)建一個(gè)樣本數(shù)據(jù)庫(kù),比較新的數(shù)據(jù)和數(shù)據(jù)庫(kù)里的數(shù)據(jù),通過(guò)這種方式找到最佳匹配并做出預(yù)測(cè)換句話說(shuō),這類(lèi)算法在做預(yù)測(cè)時(shí),一般會(huì)使用相似度準(zhǔn)則,比對(duì)待預(yù)測(cè)的樣本和原始樣本之間的相似度,再做出預(yù)測(cè)因此,基于實(shí)例的方法也被稱(chēng)之為贏家通吃的方法(winner-take-all)和基于記憶的學(xué)習(xí)(memory-based learning)常用的基于實(shí)例的學(xué)習(xí)算法包括:
k-鄰近算法(kNN)
學(xué)習(xí)矢量量化算法(LVQ)
自組織映射算法(SOM)
局部加權(quán)學(xué)習(xí)算法(LWL)
正則化算法
正則化算法背后的思路是,參數(shù)值比較小的時(shí)候模型更加簡(jiǎn)單對(duì)模型的復(fù)雜度會(huì)有一個(gè)懲罰值,偏好簡(jiǎn)單的、更容易泛化的模型,正則化算法可以說(shuō)是這種方法的延伸我把正則化算法單獨(dú)列出來(lái),原因就是我聽(tīng)說(shuō)它們十分受歡迎、功能強(qiáng)大,而且能夠?qū)ζ渌椒ㄟM(jìn)行簡(jiǎn)單的修飾常用的正則化算法包括:
嶺回歸
LASSO 算法
Elastic Net
最小角回歸算法(LARS)
決策樹(shù)算法
決策樹(shù)算法的目標(biāo)是根據(jù)數(shù)據(jù)屬性的實(shí)際值,創(chuàng)建一個(gè)預(yù)測(cè)樣本目標(biāo)值的模型訓(xùn)練時(shí),樹(shù)狀的結(jié)構(gòu)會(huì)不斷分叉,直到作出最終的決策也就是說(shuō),預(yù)測(cè)階段模型會(huì)選擇路徑進(jìn)行決策決策樹(shù)常被用于分類(lèi)和回歸決策樹(shù)一般速度快,結(jié)果準(zhǔn),因此也屬于最受歡迎的機(jī)器學(xué)習(xí)算法之一常用的決策樹(shù)算法包括:
分類(lèi)和回歸樹(shù)(CART)
ID3 算法
C4.5 算法和 C5.0 算法(它們是一種算法的兩種不同版本)
CHAID 算法
單層決策樹(shù)
M5 算法
條件決策樹(shù)
貝葉斯算法
貝葉斯方法指的是那些明確使用貝葉斯定理解決分類(lèi)或回歸等問(wèn)題的算法常用的貝葉斯算法包括:
樸素貝葉斯算法
高斯樸素貝葉斯算法
多項(xiàng)式樸素貝葉斯算法
AODE 算法
貝葉斯信念網(wǎng)絡(luò)(BBN)
貝葉斯網(wǎng)絡(luò)(BN)
聚類(lèi)算法
聚類(lèi)跟回歸一樣,既可以用來(lái)形容一類(lèi)問(wèn)題,也可以指代一組方法聚類(lèi)方法通常涉及質(zhì)心(centroid-based)或?qū)哟危╤ierarchal)等建模方式,所有的方法都與數(shù)據(jù)固有的結(jié)構(gòu)有關(guān),目標(biāo)是將數(shù)據(jù)按照它們之間共性最大的組織方式分成幾組換句話說(shuō),算法將輸入樣本聚成圍繞一些中心的數(shù)據(jù)團(tuán),通過(guò)這樣的方式發(fā)現(xiàn)數(shù)據(jù)分布結(jié)構(gòu)中的規(guī)律常用的聚類(lèi)算法包括:
K-均值
K-中位數(shù)
EM 算法
分層聚類(lèi)算法
關(guān)聯(lián)規(guī)則學(xué)習(xí)
關(guān)聯(lián)規(guī)則學(xué)習(xí)在數(shù)據(jù)不同變量之間觀察到了一些關(guān)聯(lián),算法要做的就是找出最能描述這些關(guān)系的規(guī)則,也就是獲取一個(gè)事件和其他事件之間依賴或關(guān)聯(lián)的知識(shí)常用的關(guān)聯(lián)規(guī)則算法有:
Apriori 算法
Eclat 算法
人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)是一類(lèi)受生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及/或功能啟發(fā)而來(lái)的模型它們是一類(lèi)常用于解決回歸和分類(lèi)等問(wèn)題的模式匹配,不過(guò),實(shí)際上是一個(gè)含有成百上千種算法及各種問(wèn)題變化的子集注意這里我將深度學(xué)習(xí)從人工神經(jīng)網(wǎng)絡(luò)算法中分離了出去,因?yàn)樯疃葘W(xué)習(xí)實(shí)在太受歡迎人工神經(jīng)網(wǎng)絡(luò)指的是更加經(jīng)典的感知方法常用的人工神經(jīng)網(wǎng)絡(luò)包括:
感知機(jī)
反向傳播算法(BP 神經(jīng)網(wǎng)絡(luò))
Hopfield網(wǎng)絡(luò)
徑向基函數(shù)網(wǎng)絡(luò)(RBFN)
深度學(xué)習(xí)算法
深度學(xué)習(xí)算法是人工神經(jīng)網(wǎng)絡(luò)的升級(jí)版,充分利用廉價(jià)的計(jì)算力近年來(lái),深度學(xué)習(xí)得到廣泛應(yīng)用,尤其是語(yǔ)音識(shí)別、圖像識(shí)別深度學(xué)習(xí)算法會(huì)搭建規(guī)模更大、結(jié)構(gòu)更復(fù)雜的神經(jīng)網(wǎng)絡(luò),正如上文所說(shuō),很多深度學(xué)習(xí)方法都涉及半監(jiān)督學(xué)習(xí)問(wèn)題,這種問(wèn)題的數(shù)據(jù)一般量極大,而且只有很少部分帶有標(biāo)簽常用的深度學(xué)習(xí)算法包括:
深度玻爾茲曼機(jī)(DBM)
深度信念網(wǎng)絡(luò)(DBN)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)
棧式自編碼算法(Stacked Auto-Encoder)
降維算法
降維算法和聚類(lèi)有些類(lèi)似,也是試圖發(fā)現(xiàn)數(shù)據(jù)的固有結(jié)構(gòu)但是,降維算法采用的是無(wú)監(jiān)督學(xué)習(xí)的方式,用更少(更低維)的信息進(jìn)行總結(jié)和描述降維算法可以監(jiān)督學(xué)習(xí)的方式,被用于多維數(shù)據(jù)的可視化或?qū)?shù)據(jù)進(jìn)行簡(jiǎn)化處理很多降維算法經(jīng)過(guò)修改后,也被用于分類(lèi)和回歸的問(wèn)題常用的降維算法包括:
主成分分析法(PCA)
主成分回歸(PCR)
偏最小二乘回歸(PLSR)
薩蒙映射
多維尺度分析法(MDS)
投影尋蹤法(PP)
線性判別分析法(LDA)
混合判別分析法(MDA)
二次判別分析法(QDA)
靈活判別分析法(Flexible Discriminant Analysis,F(xiàn)DA)
模型融合算法
模型融合算法將多個(gè)簡(jiǎn)單的、分別單獨(dú)訓(xùn)練的弱機(jī)器學(xué)習(xí)算法結(jié)合在一起,這些弱機(jī)器學(xué)習(xí)算法的預(yù)測(cè)以某種方式整合成一個(gè)預(yù)測(cè)通常這個(gè)整合后的預(yù)測(cè)會(huì)比單獨(dú)的預(yù)測(cè)要好一些構(gòu)建模型融合算法的主要精力一般用于決定將哪些弱機(jī)器學(xué)習(xí)算法以什么樣的方式結(jié)合在一起模型融合算法是一類(lèi)非常強(qiáng)大的算法,因此也很受歡迎常用的模型融合增強(qiáng)方法包括:
Boosting
Bagging
AdaBoost
堆疊泛化(混合)
GBM 算法
GBRT 算法
隨機(jī)森林
其他
還有很多算法都沒(méi)有涉及例如,支持向量機(jī)(SVM)應(yīng)該被歸為哪一組?還是說(shuō)它自己?jiǎn)为?dú)成一組?我還沒(méi)有提到的機(jī)器學(xué)習(xí)算法包括:
特征選擇算法
Algorithm accuracy evaluation
Performance measures
再附一張思維導(dǎo)圖
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8490瀏覽量
134034
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)器學(xué)習(xí)中常用的決策樹(shù)算法技術(shù)解析

【阿里云大學(xué)免費(fèi)精品課】機(jī)器學(xué)習(xí)入門(mén):概念原理及常用算法
常用python機(jī)器學(xué)習(xí)庫(kù)盤(pán)點(diǎn)
機(jī)器學(xué)習(xí)算法常用指標(biāo)匯總

10大常用機(jī)器學(xué)習(xí)算法匯總
最實(shí)用的的五種機(jī)器學(xué)習(xí)算法
17個(gè)機(jī)器學(xué)習(xí)的常用算法
17個(gè)機(jī)器學(xué)習(xí)的常用算法!

評(píng)論