選單

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

本文介紹了 5 大常用機器學習模型型別:

集合學習演算法,解釋型演算法,聚類演算法,降維演算法,相似性演算法

,並簡要介紹了每種型別中最廣泛使用的演算法模型。我們希望本文可以做到以下三點:

1、應用性。涉及到應用問題時,知識的普適性顯然非常重要。所以我們希望透過給出模型的一般類別,讓你更好地瞭解這些模型應當如何應用。

2、相關性。本文並不包括所有的機器學習模型,比如Naïve Bayes(樸素貝葉斯)和SVM這種傳統演算法,在本文中將會被更好的演算法所取代。

3、可消化性。對於數學基礎較薄弱的讀者而言,過多地解釋演算法會讓這篇文章的可讀性變差,更何況,你可以在網上找到無數教我們實現這些模型的資源。因此,為了避免本文變得無聊,我們將會把目光放在不同型別的模型的應用上。

1

集合學習演算法

(隨機森林XGBoost, LightGBM, CatBoost)

什麼是集合學習演算法?

為了理解什麼是集合學習演算法,首先,你需要知道什麼是集合學習。集合學習是一種同時使用多個模型,以達到比使用單一模型更好的效能的方法。

從概念上講,可以參考下面這個比喻:

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

我們向一個班裡的學生提出一個數學問題。他們有兩種解答方式:合作解答和單人解答。生活經驗告訴我們,如果全班同學一起合作,那麼學生之間可以互相檢查,協作解決問題,並最終給出一個唯一的答案。然而單人作答就沒有這種檢查的福利了——即使他/她的答案錯了,也沒有人能幫他/她檢驗。

這裡的全班協作就類似於一個集合學習演算法,即由幾個較小的演算法同時工作,並形成最終的答案。

應用

集合學習演算法主要應用於迴歸和分類問題或監督學習問題。由於其固有的性質,集合學習演算法優於所有傳統的機器學習演算法,包括Naïve Bayes、SVM和決策樹。

演算法

隨機森林:隨機森林由許多相互獨立的決策樹構成。

XGBoost:類似於梯度提升(GradientBoost)演算法,但添加了剪枝,Newton Boosting,隨機化引數等功能,因而比梯度提升更強大。

LightGBM:利用基於梯度的單邊取樣(GOSS)技術過濾資料的一種提升演算法,目前實驗已經證實比XGBoost更快,且有時更準確。

CatBoost:一種基於梯度下降的演算法。

2

解釋型演算法

(線性迴歸、邏輯迴歸、SHAP、LIME)

什麼是解釋型演算法?

解釋型演算法使我們能夠識別和理解結果有統計學意義的變數。因此,與其建立模型來預測響應變數的值,不如建立解釋性模型來幫助我們理解模型中變數之間的關係。

而從迴歸的角度來看,人們往往強調統計學上顯著的變數,這是因為對於從一個整體中提取出的樣本資料,如果想對樣本做出結論,首先必須確保變數擁有足夠的顯著性,並由此做出有把握的假設。

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

應用

解釋性模型通常用於需要作出解釋的場景。比如展示 「為什麼 」做出某個決定,或者解釋兩個或多個變數之間「如何」相互關聯。

在實踐中,你的機器學習模型的可解釋性與機器學習模型本身的效能一樣重要。如果你不能解釋一個模型是如何工作的,那麼這個模型就很難取信於人,自然也就不會被人們應用。

演算法

基於假設檢驗的傳統解釋模型:

線性迴歸:如果 2 個或者多個變數之間存在“線性關係”,就可以通過歷史資料,建立變數之間的有效“模型”,來預測未來的變數結果。例如,y = B0 + B1 * x。

Logistic迴歸:邏輯迴歸主要解決二分類問題,用來表示某件事情發生的可能性。

解釋機器學習模型的演算法:

SHAP:即來自博弈論的沙普利加和解釋,實際是將輸出值歸因到每一個特徵的shapely值上,依此來衡量特徵對最終輸出值的影響。

LIME:LIME演算法是Marco Tulio Ribeiro2016年發表的論文《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》中介紹的區域性可解釋性模型演算法。該演算法主要用於文字類與影象類的模型中。

3

聚類演算法

(k-Means,分層聚類法)

什麼是聚類演算法?

聚類演算法是用來進行聚類分析的一項無監督學習任務,通常需要將資料分組到聚類中。與監督學習的已知目標變數不同,聚類分析中通常沒有目標變數。

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

應用

聚類演算法可以用於發現數據的自然模式和趨勢。聚類分析在EDA階段非常常見,因為可以得到更多的資料資訊。

同樣,聚類演算法能幫你識別一組資料中的不同部分。一個常見的聚類細分是對使用者/客戶的細分。

演算法

K-means聚類:K均值聚類演算法是先隨機選取K個物件作為初始的聚類中心。然後計算每個物件與各個種子聚類中心之間的距離,把每個物件分配給距離它最近的聚類中心。

層次聚類:透過計算不同類別資料點間的相似度來建立一棵有層次的巢狀聚類樹。

4

降維演算法

(PCA, LDA)

什麼是降維演算法?

降維演算法是指減少資料集輸入變數(或特徵變數)數量的技術。本質上來說降維是用來解決“維度詛咒”的。(維度詛咒:隨著維度(輸入變數的數量)的增加,空間的體積呈指數級增長,最終導致資料稀疏。)

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

應用

降維技術適用於很多情況,比如:當資料集中的特徵很多而實際需要的輸入變數很少時,或者當ML模型過度擬合數據時,都可以使用降維技術。

演算法

主成分分析(PCA):一種使用最廣泛的資料降維演算法。PCA的主要思想是將n維特徵對映到k維上,這k維是在原有n維特徵的基礎上重新構造出來的,全新的正交特徵。

線性判別分析(LDA):用於在有兩個以上的類時進行線性分類。

5

相似性演算法

(KNN、歐幾里得距離、餘弦、列文斯坦、Jaro-Winkler、SVD。。。)

什麼是相似性演算法?

相似性演算法是指那些計算記錄/節點/資料點/文字對的相似性的演算法。所以相似性演算法包含許多種類,例如有比較兩個資料點之間距離的相似性演算法,如歐氏距離;也有計算文字相似性的相似性演算法,如列文斯坦演算法。

2022年你應該知道的五大機器學習演算法,解釋型演算法、降維演算法榜上有名

應用

相似性演算法也可以用於各種場景,但在與“推薦”相關的應用上表現尤為出彩,比如用來決定:

根據你之前的閱讀情況,Medium應該向你推薦哪些文章?

你可以用什麼原料來替代藍莓?

網易雲應該根據你已經喜歡過的歌曲來推薦什麼歌曲?

亞馬遜應該根據你的訂單歷史推薦什麼產品?

……

演算法

K鄰近:透過在整個訓練集上搜索與該資料點最相似的 K 個例項(近鄰)並且總結這 K 個例項的輸出變數,從而得出預測結果。

歐幾里德距離:一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。

餘弦相似度:利用向量空間中兩個向量夾角間的餘弦值衡量兩個個體之間差異的大小,餘弦值接近1,夾角趨於0,表明兩個向量越相似,餘弦值接近於0,夾角趨於90度,表明兩個向量越不相似。

列文施泰因演算法:指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。

Jaro-Winkler演算法:Jaro–Winkler distance 適合於較短的字元之間計算相似度。0分表示沒有任何相似度,1分則代表完全匹配。

奇異值分解(SVD)(不完全屬於相似性演算法,但與相似性有間接關係):定義一個m×n的矩陣A的SVD為:A=UΣVT ,其中U是一個m×m的矩陣,Σ是一個m×n的矩陣,除了主對角線上的元素以外全為0,主對角線上的每個元素都稱為奇異值,V是一個n×n的矩陣。U和V都是酉矩陣,即滿足UTU=I,VTV=I。

以上就是對當前主流的機器學習演算法的總結,希望本文能幫助你更好地瞭解各種ML模型以及它們的應用場景。當然,紙上得來終覺淺,如果本文使你有所收穫,那就請開始你的應用之路吧,看看你能用ML解決什麼問題!

參考連結:

https://towardsdatascience。com/all-machine-learning-algorithms-you-should-know-in-2022-db5b4ccdf32f