【CSDN 編者按】經(jīng)過數(shù)十年的演進(jìn),人工智能走出了從推理,到知識,再到學(xué)習(xí)的發(fā)展路徑。尤其近十年由深度學(xué)習(xí)開啟神經(jīng)網(wǎng)絡(luò)的黃金新時代,機(jī)器學(xué)習(xí)成為解決人工智能面臨諸多難題的重要途徑。然而,這一涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度等理論的交叉學(xué)科讓很多開發(fā)者犯難,尤其是紛繁復(fù)雜的各類算法。本文作者結(jié)合自身多年的工作經(jīng)驗(yàn)和日常學(xué)習(xí),匯編了一份2023年度的機(jī)器學(xué)習(xí)算法大全。希望在新的一年,這些算法可以成為開發(fā)者的“書簽”,從而解決各類數(shù)據(jù)科學(xué)處理中面臨的難題。
在過去的幾年里,我根據(jù)自己的工作經(jīng)驗(yàn),與其他數(shù)據(jù)科學(xué)家的交流,包括在網(wǎng)上閱讀到的內(nèi)容,匯編了自認(rèn)為最重要的機(jī)器學(xué)習(xí)算法。
今年,我想在去年發(fā)表文章的基礎(chǔ)上提供各類別中更多的模型。希望提供一個工具和技術(shù)的寶庫,你可以將其作為書簽,這樣就可以解決各種數(shù)據(jù)科學(xué)的問題了。
說到這里,讓我們深入了解以下六種最重要的機(jī)器學(xué)習(xí)算法類型。
解釋型算法
模式挖掘算法
集成算法
聚類算法
時間序列算法
相似度算法
解釋型算法
機(jī)器學(xué)習(xí)面臨的一大問題是理解各種模型如何達(dá)到最終預(yù)測,我們經(jīng)常知道是“什么”,但很難解釋“為什么”。
解釋型算法幫助我們識別那些對我們感興趣的結(jié)果有重要影響的變量。這些算法使我們能夠理解模型中變量之間的關(guān)系,而不僅僅是用模型來對結(jié)果進(jìn)行預(yù)測。
有幾種算法可以用來更好地理解某個模型的自變量和因變量之間的關(guān)系。
算法
線性/邏輯回歸:對因變量和一個或多個自變量之間的線性關(guān)系進(jìn)行建模的一種統(tǒng)計(jì)方法——可用于了解基于t-檢驗(yàn)和系數(shù)的變量之間的關(guān)系。
決策樹:一種機(jī)器學(xué)習(xí)算法,為決策及其可能的后果創(chuàng)建一個樹狀模型,有助于通過觀察分支進(jìn)行分割的規(guī)則進(jìn)而理解變量之間的關(guān)系。
主成分分析(PCA):一種降維技術(shù),將數(shù)據(jù)投射到一個較低的維度空間,同時保留盡可能多的差異。PCA可用于簡化數(shù)據(jù)或確定重要特征。
局部可解釋模型——不可知論解釋(LIME):一種解釋機(jī)器學(xué)習(xí)模型預(yù)測的算法,使用線性回歸或決策樹等技術(shù)構(gòu)建一個更簡單的模型,通過預(yù)測周圍情況局部近似地解釋模型。
沙普利加法解釋(SHAPLEY):一種解釋機(jī)器學(xué)習(xí)模型的預(yù)測算法,通過基于“邊際貢獻(xiàn)”的方法計(jì)算每個特征對預(yù)測的貢獻(xiàn)。在某些情況下,它比SHAP更準(zhǔn)確。
沙普利近似法(SHAP):一種通過預(yù)估每個特征在預(yù)測中的重要性來解釋機(jī)器學(xué)習(xí)模型預(yù)測的方法。SHAP使用一種叫做“合作博弈”的方法來近似Shapley值(Shapley value),通常比SHAPLEY更快。
模式挖掘算法
模式挖掘算法是一種數(shù)據(jù)挖掘技術(shù),用于識別數(shù)據(jù)集中的模式和關(guān)系。這些算法可用于實(shí)現(xiàn)各種目的,如識別零售業(yè)中的客戶購買模式,了解網(wǎng)站/應(yīng)用程序的常見用戶行為序列,或在科學(xué)研究中尋找不同變量之間的關(guān)系。
模式挖掘算法通常通過分析大型數(shù)據(jù)集和尋找重復(fù)模式或變量之間的關(guān)聯(lián)展開工作。一旦這些模式被識別出來,它們就可以用來預(yù)測未來的趨勢或結(jié)果,或者理解數(shù)據(jù)中的潛在關(guān)系。
算法
Apriori算法:一種用于在事務(wù)數(shù)據(jù)庫中查找頻繁項(xiàng)集的算法——高效且廣泛用于關(guān)聯(lián)規(guī)則挖掘任務(wù)。
遞歸神經(jīng)網(wǎng)絡(luò) (RNN):一種神經(jīng)網(wǎng)絡(luò)算法,旨在處理序列數(shù)據(jù),能夠獲取數(shù)據(jù)中的時間依賴性。
長短期記憶網(wǎng)絡(luò) (LSTM):一種循環(huán)神經(jīng)網(wǎng)絡(luò),旨在可以更長時間地記住信息。LSTM能夠獲取數(shù)據(jù)中的長期依賴關(guān)系,通常用于語言翻譯和語言生成等任務(wù)中。
使用等價類的序列模式發(fā)現(xiàn)(SPADE):一種通過將某種意義上等價的項(xiàng)目組合在一起,從而查找序列數(shù)據(jù)中經(jīng)常出現(xiàn)的模式的方法。這種方法能夠高效處理大型數(shù)據(jù)集,但可能不適用于稀疏數(shù)據(jù)。
前綴投影的模式挖掘(PrefixSpan):一種通過構(gòu)建前綴樹并修剪不常見項(xiàng)目的方式查找序列數(shù)據(jù)中常見模式的算法。PrefixScan能夠高效處理大型數(shù)據(jù)集,但可能不適用于稀疏數(shù)據(jù)。
集成算法
作為機(jī)器學(xué)習(xí)技術(shù),集成算法結(jié)合多模型,從而做出比任何單獨(dú)模型更準(zhǔn)確的預(yù)測。集成算法能夠勝過傳統(tǒng)機(jī)器學(xué)習(xí)算法的原因有幾個:
多樣性。通過結(jié)合多模型預(yù)測,集成算法可以捕捉到數(shù)據(jù)中更廣泛的模式。
穩(wěn)健性。集成算法通常對數(shù)據(jù)中的噪音和異常值不那么敏感,這可以使預(yù)測更加穩(wěn)定和可靠。
減少過度擬合。通過對多模型的平均化預(yù)測,集成算法可以減少單個模型對訓(xùn)練數(shù)據(jù)的過度擬合,從而提升對新數(shù)據(jù)的集成。
提高準(zhǔn)確性。集成算法已被證明在各種情況下都保持相較于傳統(tǒng)機(jī)器學(xué)習(xí)算法的優(yōu)勢。
算法
隨機(jī)森林:一種機(jī)器學(xué)習(xí)算法,它構(gòu)建了一個決策樹的集合,并根據(jù)樹的多數(shù)“投票”進(jìn)行預(yù)測。
極限梯度提升算法(XGBoost):一種梯度提升算法,使用決策樹作為其基礎(chǔ)模型,被稱為最強(qiáng)的機(jī)器學(xué)習(xí)預(yù)測算法之一。
LightGBM:另一種梯度提升算法,旨在比其他提升算法更快、更高效。
CatBoost:一種梯度提升算法,專門被設(shè)計(jì)處理分類變量。
聚類算法
聚類算法是一種無監(jiān)督的學(xué)習(xí)作業(yè),用于將數(shù)據(jù)分為“群組”。與目標(biāo)變量已知的監(jiān)督式學(xué)習(xí)相比,聚類算法中沒有目標(biāo)變量。
這項(xiàng)技術(shù)對于尋找數(shù)據(jù)中的自然模式和趨勢非常有用,并且經(jīng)常在數(shù)據(jù)分析階段使用,以獲得對數(shù)據(jù)的進(jìn)一步理解。此外,聚類算法可以用來根據(jù)各種變量將數(shù)據(jù)集劃分為不同的部分,一個常見應(yīng)用是在細(xì)分客戶或用戶的時候。
算法
K-Modes聚類:一種專門為分類數(shù)據(jù)設(shè)計(jì)的聚類算法,能夠很好地處理高維分類數(shù)據(jù),而且實(shí)現(xiàn)起來相對簡單。
DBSCAN密度聚類:一種基于密度的聚類算法,能夠識別任意形狀的聚類。它對噪聲處理相對穩(wěn)健,能夠識別數(shù)據(jù)中的異常值。
譜系聚類法:一種聚類算法,使用相似性矩陣的特征向量來將數(shù)據(jù)點(diǎn)歸入聚類,能夠處理非線性可分離的數(shù)據(jù),并且相對高效。
時間序列算法
時間序列算法是用于分析與時間有關(guān)的數(shù)據(jù)的技術(shù)。這些算法考慮到一個系列中的數(shù)據(jù)點(diǎn)之間的時間依賴性,這在對未來價值進(jìn)行預(yù)測時尤其重要。
時間序列算法被用于各種商業(yè)應(yīng)用中,如預(yù)測產(chǎn)品需求、銷售,或分析客戶在一段時間內(nèi)的行為,它們還可以用來檢測數(shù)據(jù)中的異常情況或趨勢變化。
算法
Prophet時間序列模型:一個由Facebook開發(fā)的時間序列預(yù)測算法,設(shè)計(jì)直觀、易于使用。它的一些主要優(yōu)勢包括處理缺失數(shù)據(jù)和預(yù)測趨勢變化,對異常值具有魯棒性,可以快速擬合。
?自回歸綜合移動平均法(ARIMA):?一種用于預(yù)測時間序列數(shù)據(jù)的統(tǒng)計(jì)方法,對數(shù)據(jù)和其滯后值之間的相關(guān)性進(jìn)行建模。ARIMA可以處理廣泛的時間序列數(shù)據(jù),但比其他的一些方法更難實(shí)現(xiàn)。
指數(shù)平滑法:一種預(yù)測時間序列數(shù)據(jù)的方法,使用過去數(shù)據(jù)的加權(quán)平均來進(jìn)行預(yù)測。指數(shù)平滑法的實(shí)現(xiàn)相對簡單,可以用于廣泛的數(shù)據(jù),但可能不如更復(fù)雜的方法表現(xiàn)出色。
相似度算法
相似度算法被用來衡量一對記錄、節(jié)點(diǎn)、數(shù)據(jù)點(diǎn)或文本之間的相似性。這些算法可以基于兩個數(shù)據(jù)點(diǎn)之間的距離(如歐氏距離)或文本的相似性(如Levenshtein算法)。
這些算法有廣泛應(yīng)用,尤其在推薦方面特別有用。它們可以用來識別類似的項(xiàng)目或向用戶推薦相關(guān)內(nèi)容。
算法
歐氏距離:對歐氏空間中兩點(diǎn)之間直線距離的測量。歐氏距離計(jì)算簡單,在機(jī)器學(xué)習(xí)中被廣泛使用,但在數(shù)據(jù)分布不均勻的情況下可能不是最佳選擇。
余弦相似度:基于兩個向量之間的角度來衡量它們的相似度。
Levenshtein算法:一種測量兩個字符串之間距離的算法,基于將一個字符串轉(zhuǎn)化為另一個字符串所需的最小單字符編輯數(shù)(插入、刪除或替換)。Levenshtein算法通常用于拼寫檢查和字符串匹配的任務(wù)中。
Jaro-Winkler算法:一種測量兩個字符串之間相似度的算法,基于匹配字符的數(shù)量和轉(zhuǎn)置的數(shù)量。它與Levenshtein算法類似,經(jīng)常被用于記錄鏈接和實(shí)體解析的任務(wù)中。
奇異值分解(SVD):一種矩陣分解方法,將一個矩陣分解為三個矩陣的乘積,在最先進(jìn)的推薦系統(tǒng)中,奇異值分解是重要的組成部分。
審核編輯 :李倩
-
算法
+關(guān)注
關(guān)注
23文章
4629瀏覽量
93260 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
132998
原文標(biāo)題:值得收藏!2023 年,你應(yīng)該知道的所有機(jī)器學(xué)習(xí)算法~
文章出處:【微信號:AI科技大本營,微信公眾號:AI科技大本營】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論