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