在過去的幾年里,根據(jù)自己的工作經(jīng)驗(yàn),整理了我認(rèn)為最重要的機(jī)器學(xué)習(xí)算法。
通過這個(gè),我希望提供一個(gè)工具和技術(shù)的存儲(chǔ)庫,以便您可以解決各種數(shù)據(jù)科學(xué)問題!
讓我們深入研究六種最重要的機(jī)器學(xué)習(xí)算法:
解釋性算法
模式挖掘算法
集成學(xué)習(xí)算法
聚類算法
時(shí)間序列算法
相似度算法
1.解釋算法
機(jī)器學(xué)習(xí)中最大的問題之一是了解各種模型如何得出最終預(yù)測。我們常常知道“是什么”,但很難解釋“為什么”。
解釋性算法幫助我們識(shí)別對(duì)我們感興趣的結(jié)果有有意義影響的變量。這些算法使我們能夠理解模型中變量之間的關(guān)系,而不是僅僅使用模型來預(yù)測結(jié)果。
您可以使用多種算法更好地理解給定模型的自變量和因變量之間的關(guān)系。
算法
線性/邏輯回歸:一種對(duì)因變量與一個(gè)或多個(gè)自變量之間的線性關(guān)系建模的統(tǒng)計(jì)方法——可用于根據(jù) t 檢驗(yàn)和系數(shù)了解變量之間的關(guān)系。
決策樹:一種機(jī)器學(xué)習(xí)算法,它創(chuàng)建決策及其可能后果的樹狀模型。通過查看拆分分支的規(guī)則,它們對(duì)于理解變量之間的關(guān)系很有用。
主成分分析 (PCA):一種降維技術(shù),可將數(shù)據(jù)投射到低維空間,同時(shí)保留盡可能多的方差。PCA 可用于簡化數(shù)據(jù)或確定特征重要性。
Local Interpretable Model-Agnostic Explanations (LIME):一種算法,通過使用線性回歸或決策樹等技術(shù)構(gòu)建更簡單的模型,在預(yù)測周圍近似模型來解釋任何機(jī)器學(xué)習(xí)模型的預(yù)測。
Shapley Additive explanations (SHAPLEY):一種算法,通過使用基于“邊際貢獻(xiàn)”概念的方法計(jì)算每個(gè)特征對(duì)預(yù)測的貢獻(xiàn)來解釋任何機(jī)器學(xué)習(xí)模型的預(yù)測。在某些情況下,它可能比 SHAP 更準(zhǔn)確。
Shapley Approximation (SHAP):一種通過估計(jì)每個(gè)特征在預(yù)測中的重要性來解釋任何機(jī)器學(xué)習(xí)模型的預(yù)測的方法。SHAP 使用一種稱為“聯(lián)合博弈”的方法來近似 Shapley 值,并且通常比 SHAPLEY 更快。
2.模式挖掘算法
模式挖掘算法是一種數(shù)據(jù)挖掘技術(shù),用于識(shí)別數(shù)據(jù)集中的模式和關(guān)系。這些算法可用于多種目的,例如識(shí)別零售環(huán)境中的客戶購買模式、了解網(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ù),因?yàn)樗鼈兡軌虿东@數(shù)據(jù)中的時(shí)間依賴性。
長短期記憶 (LSTM):一種循環(huán)神經(jīng)網(wǎng)絡(luò),旨在更長時(shí)間地記住信息。LSTM 能夠捕獲數(shù)據(jù)中的長期依賴關(guān)系,通常用于語言翻譯和語言生成等任務(wù)。
使用等價(jià)類 (SPADE) 的順序模式發(fā)現(xiàn):一種通過將在某種意義上等價(jià)的項(xiàng)目組合在一起來查找順序數(shù)據(jù)中頻繁模式的方法。這種方法能夠處理大型數(shù)據(jù)集并且相對(duì)高效,但可能不適用于稀疏數(shù)據(jù)。
PrefixSpan:一種通過構(gòu)建前綴樹和修剪不頻繁項(xiàng)目來查找順序數(shù)據(jù)中頻繁模式的算法。PrefixScan 能夠處理大型數(shù)據(jù)集并且相對(duì)高效,但可能不適用于稀疏數(shù)據(jù)。
3.集成學(xué)習(xí)
集成算法是一種機(jī)器學(xué)習(xí)技術(shù),它結(jié)合了多個(gè)模型的預(yù)測,以便做出比任何單個(gè)模型都更準(zhǔn)確的預(yù)測。集成算法優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法的原因有以下幾個(gè):
多樣性:通過組合多個(gè)模型的預(yù)測,集成算法可以捕獲數(shù)據(jù)中更廣泛的模式。
魯棒性:集成算法通常對(duì)數(shù)據(jù)中的噪聲和異常值不太敏感,這可以導(dǎo)致更穩(wěn)定和可靠的預(yù)測。
減少過度擬合:通過對(duì)多個(gè)模型的預(yù)測進(jìn)行平均,集成算法可以減少單個(gè)模型過度擬合訓(xùn)練數(shù)據(jù)的趨勢,從而提高對(duì)新數(shù)據(jù)的泛化能力。
提高準(zhǔn)確性:集成算法已被證明在各種情況下始終優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法。
算法
隨機(jī)森林:一種機(jī)器學(xué)習(xí)算法,它創(chuàng)建決策樹的集合并根據(jù)樹的多數(shù)票進(jìn)行預(yù)測。
XGBoost:一種梯度提升算法,它使用決策樹作為其基礎(chǔ)模型,被認(rèn)為是最強(qiáng)的 ML 預(yù)測算法之一。
LightGBM:另一種梯度提升算法,旨在比其他提升算法更快、更高效。
CatBoost:一種梯度提升算法,專門設(shè)計(jì)用于很好地處理分類變量。
4.聚類
聚類算法是一種無監(jiān)督學(xué)習(xí)任務(wù),用于將數(shù)據(jù)分組為“集群”。與目標(biāo)變量已知的監(jiān)督學(xué)習(xí)相反,聚類中沒有目標(biāo)變量。
這種技術(shù)對(duì)于發(fā)現(xiàn)數(shù)據(jù)的自然模式和趨勢很有用,并且經(jīng)常在探索性數(shù)據(jù)分析階段使用,以進(jìn)一步了解數(shù)據(jù)。此外,聚類可用于根據(jù)各種變量將數(shù)據(jù)集劃分為不同的部分。這方面的一個(gè)常見應(yīng)用是對(duì)客戶或用戶進(jìn)行細(xì)分。
算法
K模式聚類:一種專門為分類數(shù)據(jù)設(shè)計(jì)的聚類算法。它能夠很好地處理高維分類數(shù)據(jù)并且實(shí)現(xiàn)起來相對(duì)簡單。
DBSCAN:一種基于密度的聚類算法,能夠識(shí)別任意形狀的聚類。它對(duì)噪聲相對(duì)穩(wěn)健,可以識(shí)別數(shù)據(jù)中的異常值。
譜聚類:一種聚類算法,它使用相似矩陣的特征向量將數(shù)據(jù)點(diǎn)分組到聚類中。它能夠處理非線性可分?jǐn)?shù)據(jù)并且相對(duì)高效。
5.時(shí)間序列算法
時(shí)間序列算法是用于分析時(shí)間相關(guān)數(shù)據(jù)的技術(shù)。這些算法考慮了一系列數(shù)據(jù)點(diǎn)之間的時(shí)間依賴性,這在嘗試預(yù)測未來值時(shí)尤為重要。
時(shí)間序列算法用于各種業(yè)務(wù)應(yīng)用程序,例如預(yù)測產(chǎn)品需求、預(yù)測銷售或分析客戶隨時(shí)間變化的行為。它們還可用于檢測數(shù)據(jù)中的異?;蜈厔葑兓?。
算法
Prophet 時(shí)間序列建模:Facebook 開發(fā)的一種時(shí)間序列預(yù)測算法,旨在直觀且易于使用。它的一些主要優(yōu)勢包括處理缺失數(shù)據(jù)和趨勢變化、對(duì)異常值具有魯棒性以及快速適應(yīng)。
自回歸積分移動(dòng)平均 (ARIMA):一種用于預(yù)測時(shí)間序列數(shù)據(jù)的統(tǒng)計(jì)方法,它對(duì)數(shù)據(jù)與其滯后值之間的相關(guān)性進(jìn)行建模。ARIMA 可以處理范圍廣泛的時(shí)間序列數(shù)據(jù),但可能比其他一些方法更難實(shí)現(xiàn)。
指數(shù)平滑:一種預(yù)測時(shí)間序列數(shù)據(jù)的方法,它使用過去數(shù)據(jù)的加權(quán)平均值來進(jìn)行預(yù)測。指數(shù)平滑實(shí)現(xiàn)起來相對(duì)簡單,可用于范圍廣泛的數(shù)據(jù),但性能可能不如更復(fù)雜的方法。
6.相似度算法
相似度算法用于衡量成對(duì)的記錄、節(jié)點(diǎn)、數(shù)據(jù)點(diǎn)或文本之間的相似度。這些算法可以基于兩個(gè)數(shù)據(jù)點(diǎn)之間的距離(例如歐氏距離)或基于文本的相似性(例如 Levenshtein 算法)。
這些算法具有廣泛的應(yīng)用,但在推薦方面特別有用。它們可用于識(shí)別相似的項(xiàng)目或向用戶推薦相關(guān)內(nèi)容。
算法
歐氏距離:歐氏空間中兩點(diǎn)之間直線距離的度量。歐氏距離計(jì)算簡單,廣泛應(yīng)用于機(jī)器學(xué)習(xí),但在數(shù)據(jù)分布不均勻的情況下可能不是最佳選擇。
余弦相似度:基于兩個(gè)向量之間的角度來衡量兩個(gè)向量之間的相似度。
Levenshtein 算法:一種用于測量兩個(gè)字符串之間距離的算法,基于將一個(gè)字符串轉(zhuǎn)換為另一個(gè)字符串所需的最小單字符編輯(插入、刪除或替換)次數(shù)。Levenshtein 算法通常用于拼寫檢查和字符串匹配任務(wù)。
Jaro-Winkler 算法:一種基于匹配字符數(shù)和換位數(shù)來衡量兩個(gè)字符串之間相似性的算法。它類似于 Levenshtein 算法,通常用于記錄鏈接和實(shí)體解析任務(wù)。
奇異值分解 (SVD):一種矩陣分解方法,可將一個(gè)矩陣分解為三個(gè)矩陣的乘積——它是最先進(jìn)的推薦系統(tǒng)不可或缺的組成部分。
作者:我愛Python數(shù)據(jù)挖掘?
編輯:黃飛
評(píng)論
查看更多