在這篇文章中,我們將介紹最流行的機(jī)器學(xué)習(xí)算法。
在現(xiàn)場瀏覽主要算法以了解可用的方法很有用。
有許多算法可用,當(dāng)算法名稱被拋出時(shí),它可能會(huì)感到壓倒性的,并且您應(yīng)該只知道它們是什么以及它們適合的位置。
我想給你兩種方法來思考和分類你可能在現(xiàn)場遇到的算法。
- 第一個(gè)是學(xué)習(xí)風(fēng)格的算法分組。
- 第二種是通過形式或功能相似性的算法分組(如將相似的動(dòng)物分組在一起)。
這兩種方法都很有用,但我們將重點(diǎn)關(guān)注通過相似性對算法進(jìn)行分組,并繼續(xù)瀏覽各種不同的算法類型。
閱讀本文后,您將更好地了解最受歡迎的監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)算法及其相關(guān)性。

最合適的線條集合的一個(gè)很酷的例子。弱成員是灰色的,組合預(yù)測是紅色的。
來自維基百科的圖,在公共領(lǐng)域下許可。
學(xué)習(xí)風(fēng)格分組的算法
算法可以基于與體驗(yàn)或環(huán)境的交互或我們想要調(diào)用輸入數(shù)據(jù)的任何內(nèi)容來對問題進(jìn)行建模。
在機(jī)器學(xué)習(xí)和人工智能教科書中首先考慮算法可以采用的學(xué)習(xí)風(fēng)格。
算法可以有一些主要的學(xué)習(xí)風(fēng)格或?qū)W習(xí)模型,我們將在這里介紹它們適合的算法和問題類型的幾個(gè)例子。
這種分類法或組織機(jī)器學(xué)習(xí)算法的方法很有用,因?yàn)樗鼤?huì)強(qiáng)制您考慮輸入數(shù)據(jù)和模型準(zhǔn)備過程的角色,并選擇最適合您的問題的方法以獲得最佳結(jié)果。
讓我們來看看機(jī)器學(xué)習(xí)算法中的三種不同學(xué)習(xí)方式:
1.監(jiān)督學(xué)習(xí)

輸入數(shù)據(jù)稱為訓(xùn)練數(shù)據(jù),并且具有已知的標(biāo)簽或結(jié)果,例如垃圾郵件/非垃圾郵件或一次的股票價(jià)格。
通過培訓(xùn)過程準(zhǔn)備模型,其中需要進(jìn)行預(yù)測并在這些預(yù)測錯(cuò)誤時(shí)進(jìn)行校正。訓(xùn)練過程繼續(xù),直到模型在訓(xùn)練數(shù)據(jù)上達(dá)到所需的準(zhǔn)確度。
示例問題是分類和回歸。
示例算法包括Logistic回歸和Back Propagation神經(jīng)網(wǎng)絡(luò)。
2.無監(jiān)督學(xué)習(xí)

輸入數(shù)據(jù)未標(biāo)記,并且沒有已知結(jié)果。
通過推導(dǎo)輸入數(shù)據(jù)中存在的結(jié)構(gòu)來準(zhǔn)備模型。這可能是提取一般規(guī)則??梢酝ㄟ^數(shù)學(xué)過程系統(tǒng)地減少冗余,或者可以通過相似性來組織數(shù)據(jù)。
示例問題是聚類,降維和關(guān)聯(lián)規(guī)則學(xué)習(xí)。
示例算法包括:Apriori算法和k-Means。
3.半監(jiān)督學(xué)習(xí)
輸入數(shù)據(jù)是標(biāo)記和未標(biāo)記示例的混合。存在期望的預(yù)測問題,但模型必須學(xué)習(xí)組織數(shù)據(jù)以及進(jìn)行預(yù)測的結(jié)構(gòu)。
示例問題是分類和回歸。
示例算法是對其他靈活方法的擴(kuò)展,這些方法對如何對未標(biāo)記數(shù)據(jù)建模進(jìn)行假設(shè)。
概觀
在處理數(shù)據(jù)以模擬業(yè)務(wù)決策時(shí),您通常使用有監(jiān)督和無監(jiān)督的學(xué)習(xí)方法。
目前的一個(gè)熱門話題是在圖像分類等領(lǐng)域中的半監(jiān)督學(xué)習(xí)方法,其中存在具有極少數(shù)標(biāo)記示例的大型數(shù)據(jù)集。
獲取免費(fèi)算法思維導(dǎo)圖

方便的機(jī)器學(xué)習(xí)算法思維導(dǎo)圖的樣本。
我已經(jīng)創(chuàng)建了一個(gè)由類型組織的60多種算法的方便思維導(dǎo)圖。
下載,打印并使用它。
<center style="margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 15px; vertical-align: baseline; background: rgb(255, 255, 255); color: rgb(85, 85, 85); font-family: "Helvetica Neue", Helvetica, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">免費(fèi)下載
還可以獨(dú)家訪問機(jī)器學(xué)習(xí)算法電子郵件迷你課程。
</center>
由相似性分組的算法
算法通常根據(jù)其功能(它們?nèi)绾喂ぷ鳎┑南嗨菩赃M(jìn)行分組。例如,基于樹的方法和神經(jīng)網(wǎng)絡(luò)啟發(fā)的方法。
我認(rèn)為這是分組算法最有用的方法,這是我們將在這里使用的方法。
這是一種有用的分組方法,但并不完美。還有一些算法可以很容易地融入多個(gè)類別,例如學(xué)習(xí)矢量量化,它既是神經(jīng)網(wǎng)絡(luò)啟發(fā)方法,也是基于實(shí)例的方法。還有一些類別具有描述問題的相同名稱和算法類,例如回歸和聚類。
我們可以通過兩次列出算法或選擇主觀上“最佳”擬合的組來處理這些情況。我喜歡后一種不重復(fù)算法來保持簡單的方法。
在本節(jié)中,我列出了許多流行的機(jī)器學(xué)習(xí)算法,這些算法按照我認(rèn)為最直觀的方式進(jìn)行分組。該列表在組或算法中并非詳盡無遺,但我認(rèn)為它具有代表性,對您了解土地的位置非常有用。
請注意:對于用于分類和回歸的算法存在強(qiáng)烈的偏見,這是您將遇到的兩種最常見的監(jiān)督機(jī)器學(xué)習(xí)問題。
如果您知道未列出的算法或一組算法,請將其放在評論中并與我們分享。讓我們潛入。
回歸算法

回歸涉及對變量之間的關(guān)系進(jìn)行建模,這些變量使用模型預(yù)測中的誤差度量進(jìn)行迭代求精。
回歸方法是統(tǒng)計(jì)學(xué)的主力,并已被納入統(tǒng)計(jì)機(jī)器學(xué)習(xí)。這可能會(huì)令人困惑,因?yàn)槲覀兛梢允褂没貧w來指代問題類和算法類。實(shí)際上,回歸是一個(gè)過程。
最流行的回歸算法是:
- 普通最小二乘回歸(OLSR)
- 線性回歸
- Logistic回歸
- 逐步回歸
- 多元自適應(yīng)回歸樣條(MARS)
- 局部估計(jì)的散點(diǎn)圖平滑(LOESS)
基于實(shí)例的算法

基于實(shí)例的學(xué)習(xí)模型是具有被認(rèn)為對模型重要或需要的訓(xùn)練數(shù)據(jù)的實(shí)例或示例的決策問題。
這些方法通常建立示例數(shù)據(jù)的數(shù)據(jù)庫,并使用相似性度量將新數(shù)據(jù)與數(shù)據(jù)庫進(jìn)行比較,以便找到最佳匹配并進(jìn)行預(yù)測。出于這個(gè)原因,基于實(shí)例的方法也稱為贏者通吃方法和基于記憶的學(xué)習(xí)。重點(diǎn)放在實(shí)例之間使用的存儲(chǔ)實(shí)例和相似性度量的表示上。
最流行的基于實(shí)例的算法是:
- k-最近鄰(kNN)
- 學(xué)習(xí)矢量量化(LVQ)
- 自組織地圖(SOM)
- 本地加權(quán)學(xué)習(xí)(LWL)
正則化算法

對另一種方法(通常是回歸方法)的擴(kuò)展,根據(jù)其復(fù)雜性對模型進(jìn)行處罰,有利于更簡單的模型,這些模型也更好地推廣。
我在這里單獨(dú)列出了正則化算法,因?yàn)樗鼈兪橇餍械?,?qiáng)大的,并且通常對其他方法進(jìn)行簡單的修改。
最流行的正則化算法是:
- 嶺回歸
- 最小絕對收縮和選擇算子(LASSO)
- 彈性網(wǎng)
- 最小角度回歸(LARS)
決策樹算法

決策樹方法構(gòu)建基于數(shù)據(jù)中的屬性的實(shí)際值做出的決策的模型。
決策在樹結(jié)構(gòu)中進(jìn)行分叉,直到對給定記錄做出預(yù)測決定。針對分類和回歸問題的數(shù)據(jù)訓(xùn)練決策樹。決策樹通??焖贉?zhǔn)確,是機(jī)器學(xué)習(xí)的最佳選擇。
最流行的決策樹算法是:
- 分類和回歸樹(CART)
- 迭代Dichotomiser 3(ID3)
- C4.5和C5.0(強(qiáng)大方法的不同版本)
- 卡方自動(dòng)交互檢測(CHAID)
- 決策樹樁
- M5
- 條件決策樹
貝葉斯算法

貝葉斯方法是那些明確應(yīng)用貝葉斯定理來解決分類和回歸等問題的方法。
最流行的貝葉斯算法是:
- 樸素貝葉斯
- 高斯樸素貝葉斯
- 多項(xiàng)樸素貝葉斯
- 平均一依賴估計(jì)(AODE)
- 貝葉斯信念網(wǎng)絡(luò)(BBN)
- 貝葉斯網(wǎng)絡(luò)(BN)
聚類算法

像回歸一樣,聚類描述了問題類和方法類。
聚類方法通常由建模方法組織,例如基于質(zhì)心和層級。所有方法都涉及使用數(shù)據(jù)中的固有結(jié)構(gòu)來最好地將數(shù)據(jù)組織成具有最大共性的組。
最流行的聚類算法是:
- K-均值
- K-中位數(shù)
- 期望最大化(EM)
- 分層聚類
關(guān)聯(lián)規(guī)則學(xué)習(xí)算法

關(guān)聯(lián)規(guī)則學(xué)習(xí)方法提取最能解釋數(shù)據(jù)中變量之間觀察到的關(guān)系的規(guī)則。
這些規(guī)則可以發(fā)現(xiàn)可以被組織利用的大型多維數(shù)據(jù)集中的重要且商業(yè)上有用的關(guān)聯(lián)。
最流行的關(guān)聯(lián)規(guī)則學(xué)習(xí)算法是:
- Apriori算法
- Eclat算法
人工神經(jīng)網(wǎng)絡(luò)算法

人工神經(jīng)網(wǎng)絡(luò)是受生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和/或功能啟發(fā)的模型。
它們是一類模式匹配,通常用于回歸和分類問題,但實(shí)際上是一個(gè)龐大的子字段,由各種問題類型的數(shù)百種算法和變體組成。
請注意,由于該領(lǐng)域的大量增長和普及,我已將深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)分開。在這里,我們關(guān)注更經(jīng)典的方法。
最流行的人工神經(jīng)網(wǎng)絡(luò)算法是:
- 感知
- 反向傳播
- Hopfield網(wǎng)絡(luò)
- 徑向基函數(shù)網(wǎng)絡(luò)(RBFN)
深度學(xué)習(xí)算法

深度學(xué)習(xí)方法是利用大量廉價(jià)計(jì)算的人工神經(jīng)網(wǎng)絡(luò)的現(xiàn)代更新。
他們關(guān)注構(gòu)建更大更復(fù)雜的神經(jīng)網(wǎng)絡(luò),如上所述,許多方法都涉及半監(jiān)督學(xué)習(xí)問題,其中大數(shù)據(jù)集包含非常少的標(biāo)記數(shù)據(jù)。
最流行的深度學(xué)習(xí)算法是:
- 深玻爾茲曼機(jī)(DBM)
- 深信仰網(wǎng)絡(luò)(DBN)
- 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
- 堆疊式自動(dòng)編碼器
降維算法

與聚類方法一樣,維數(shù)減少尋求并利用數(shù)據(jù)中的固有結(jié)構(gòu),但在這種情況下以無監(jiān)督的方式或使用較少信息來匯總或描述數(shù)據(jù)。
這對于可視化維度數(shù)據(jù)或簡化數(shù)據(jù)是有用的,然后可以在監(jiān)督學(xué)習(xí)方法中使用這些數(shù)據(jù)。許多這些方法可以適用于分類和回歸。
- 主成分分析(PCA)
- 主成分回歸(PCR)
- 偏最小二乘回歸(PLSR)
- Sammon Mapping
- 多維縮放(MDS)
- 投射追蹤
- 線性判別分析(LDA)
- 混合判別分析(MDA)
- 二次判別分析(QDA)
- 靈敏判別分析(FDA)
集合算法

集合方法是由多個(gè)較弱的模型組成的模型,這些模型是獨(dú)立訓(xùn)練的,其預(yù)測以某種方式組合以進(jìn)行整體預(yù)測。
要將哪些類型的弱學(xué)習(xí)者結(jié)合起來以及將它們結(jié)合起來的方式付出了很多努力。這是一種非常強(qiáng)大的技術(shù),因此非常受歡迎。
- 推進(jìn)
- 自舉聚合(套袋)
- AdaBoost的
- 堆疊泛化(混合)
- 梯度增壓機(jī)(GBM)
- 梯度升壓回歸樹(GBRT)
- 隨機(jī)森林
其他算法
許多算法都沒有涵蓋。
例如,支持向量機(jī)會(huì)進(jìn)入哪個(gè)組?它自己的?
我沒有在機(jī)器學(xué)習(xí)過程中涵蓋專業(yè)任務(wù)的算法,例如:
- 特征選擇算法
- 算法精度評估
- 績效衡量標(biāo)準(zhǔn)
我也沒有涵蓋機(jī)器學(xué)習(xí)專業(yè)子領(lǐng)域的算法,例如:
- 計(jì)算智能(進(jìn)化算法等)
- 計(jì)算機(jī)視覺(CV)
- 自然語言處理(NLP)
- 推薦系統(tǒng)
- 強(qiáng)化學(xué)習(xí)
- 圖形模型
- 和更多…
這些可能會(huì)在未來的帖子中出現(xiàn)
進(jìn)一步閱讀
這次機(jī)器學(xué)習(xí)算法之旅旨在向您概述那里的內(nèi)容以及如何將算法相互關(guān)聯(lián)的一些想法。
我收集了一些資源供您繼續(xù)閱讀算法。如果您有具體問題,請發(fā)表評論。
其他算法列表
如果您有興趣,還有其他很棒的算法列表。以下是幾個(gè)手工選擇的例子。
- 機(jī)器學(xué)習(xí)算法列表:在維基百科上。雖然很廣泛,但我沒有發(fā)現(xiàn)這個(gè)列表或算法的組織特別有用。
- 機(jī)器學(xué)習(xí)算法類別:也在維基百科上,比上面的維基百科上面的列表更有用。它按字母順序組織算法。
- CRAN任務(wù)視圖:機(jī)器學(xué)習(xí)和統(tǒng)計(jì)學(xué)習(xí):R中每個(gè)機(jī)器學(xué)習(xí)包支持的所有軟件包和所有算法的列表。讓您有一種基礎(chǔ)感覺,那里有什么以及人們?nèi)粘S糜诜治龅膬?nèi)容。
- 數(shù)據(jù)挖掘中的十大算法:已發(fā)布的文章,現(xiàn)在是關(guān)于最流行的數(shù)據(jù)挖掘算法的 書籍(Affiliate Link)。另一種基礎(chǔ)和不那么壓倒性的方法,你可以去深入學(xué)習(xí)。
如何研究機(jī)器學(xué)習(xí)算法
算法是機(jī)器學(xué)習(xí)的重要組成部分。這是我熱衷的主題,并在這個(gè)博客上寫了很多。以下是您可能感興趣的一些手工選擇的帖子以供進(jìn)一步閱讀。
- 如何學(xué)習(xí)任何機(jī)器學(xué)習(xí)算法:一種系統(tǒng)的方法,您可以使用“算法描述模板”來研究和理解任何機(jī)器學(xué)習(xí)算法(我用這種方法來編寫我的第一本書)。
- 如何創(chuàng)建機(jī)器學(xué)習(xí)算法的目標(biāo)列表:如何創(chuàng)建自己的機(jī)器學(xué)習(xí)算法系統(tǒng)列表,以便開始研究下一個(gè)機(jī)器學(xué)習(xí)問題。
- 如何研究機(jī)器學(xué)習(xí)算法:一種可用于研究機(jī)器學(xué)習(xí)算法的系統(tǒng)方法(與上面列出的模板方法協(xié)同工作)。
- 如何研究機(jī)器學(xué)習(xí)算法行為:一種方法,您可以通過創(chuàng)建和執(zhí)行非常小的研究來了解機(jī)器學(xué)習(xí)算法的工作原理。研究不僅僅適用于學(xué)者!
- 如何實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法:從頭開始實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的過程和提示和技巧。
如何運(yùn)行機(jī)器學(xué)習(xí)算法
有時(shí)你只想潛入代碼。下面是一些可用于運(yùn)行機(jī)器學(xué)習(xí)算法的鏈接,使用標(biāo)準(zhǔn)庫對其進(jìn)行編碼或從頭開始實(shí)現(xiàn)。
- 如何開始使用R中的機(jī)器學(xué)習(xí)算法:鏈接到此站點(diǎn)上的大量代碼示例,演示了R中的機(jī)器學(xué)習(xí)算法
- 機(jī)器學(xué)習(xí)算法scikit-learn中的食譜:一組Python代碼示例,演示如何使用scikit-learn創(chuàng)建預(yù)測模型。
- 如何在Weka中運(yùn)行您的第一個(gè)分類器:在Weka中運(yùn)行您的第一個(gè)分類器的教程(無需代碼!)。
