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