機器學習經典算法系列:小白也能看懂的7種分類算法

冰冰醬
0 評論 1638 瀏覽 5 收藏 17 分鐘
🔗 技术知识、行业知识、业务知识等,都是B端产品经理需要了解和掌握的领域相关的知识,有助于进行产品方案设计和评估

本文深入淺出地介紹了機器學習領域中7種經典的分類算法,包括樸素貝葉斯、決策樹、隨機森林、邏輯回歸、支持向量機、K近鄰法和自適應增強算法。通過生動的比喻、實際的應用場景和算法之間的對比,幫助讀者理解每種算法的核心原理、優(yōu)缺點以及適用場景,為初學者提供了一份清晰易懂的學習指南。

受LLM大模型的影響,傳統(tǒng)機器學習算法也在今年開始逐漸有更多客戶愿意嘗試了;而以前我也對算法這件事充滿了向往和好奇,覺得是一門很厲害的技術。于是最近準備惡補一下機器學習算法基礎。

機器學習常見的傳統(tǒng)模型有分類算法、聚類算法、關聯分析和連接分析,每一種算法類型都適用于不同的任務場景,其中也擁有眾多具體的算法模型。

以分類算法為例,顧名思義,主要是用來做分類任務的,常見場景有垃圾郵件過濾(例如分析某些垃圾單詞,去分析其是垃圾郵件的概率)、情感分析(如客戶/讀者對于內容的正面/中立/負面情緒)、主題分類(例如一篇新聞該分到哪個主題下)。

而在具體的分類算法類型中,也有決策樹、隨機森林等好幾種算法,適用于不同場景、各有優(yōu)劣。

那么,本期,我們先從分類算法講起,主要包含7種常見且經典的分類算法模型:

1. 樸素貝葉斯NB(Naive Bayes):假設所有特征獨立的概率計算法

2. 決策樹DT(Decision Tree):算出一套規(guī)則來畫一棵分類樹

3. 隨機森林RF(Random Forest):隨機抽取特征、算出多套規(guī)則來畫多棵分類樹(三個臭皮匠、賽過諸葛亮)

4. 邏輯回歸LR(Logistic Regression):如果呈現線性關系,用一條線來區(qū)分

5. 支持向量機SVM(Support Vector Machine):如果呈現非線性關系,用一個超平面來區(qū)分

6. K近鄰法KNN(K-Nearest Neighbors):近朱者赤、近墨者黑,找和你最相似的群體,看看他們是好是壞

7. 自適應增強AdaBoost(Adaptive Boosting):用錯題集的方式持續(xù)迭代和糾正,以達到最優(yōu)效果

一、樸素貝葉斯

托馬斯·貝葉斯(Thomas Bayes,1702-1761),18世紀英國神學家、數學家、數理統(tǒng)計學家和哲學家,概率論理論創(chuàng)始人,貝葉斯統(tǒng)計的創(chuàng)立者,“歸納地”運用數學概率,“從特殊推論一般、從樣本推論全體”的第一人。

先不要被這個名字唬到了,貝葉斯是一個人,他提出了一套貝葉斯概率理論,而樸素英文則是naive(樸素、天真),這是因為其對原始貝葉斯理論做了一層假設——即各個特征(如身高、體重、學歷)之間是獨立且互相沒有關聯的,這其實在現實生活中是不現實的,因為身高和體重某種程度上還是具有一定聯系,所以稱其為naive(樸素、天真),但其大大簡化了算法模型的難度,在一定簡單的場景下高效且適用。

樸素貝葉斯的原理就是我們上學時候所做的數學題:比如在A和B兩個盒子里放了一定已知數量的紅球和白球,最后求取出1顆紅球屬于哪個盒子。

這個公式雖然不是很復雜,但是有點繞,大家感興趣可以下來自行了解。但是樸素貝葉斯背后隱含的含義就是:通過計算過去特征在不同條件下的概率(比如,在盒子A里紅球的概率)、紅球本身的概率、選擇2個盒子的概率,來計算出當拿出來一顆紅球后,該球屬于盒子A和盒子B誰的概率更大,更大的那個就被選擇作為最終的分類結果。

整體來看,顯而易見,因為足夠樸素足夠naive,所以樸素貝葉斯計算簡單、速度快、適合大規(guī)模的文本數據;但缺點也同樣明顯,這種前提假設導致無法挖掘特征背后關聯,同時,同義詞如果較多,也可能會高估對應的概率(可以考慮通過同義詞特征做組合、選擇獨立和相關性高的特征來做優(yōu)化)。

二、決策樹&隨機森林

到了決策樹和隨機森林就好理解多了,畢竟它是有圖像符號、有直觀規(guī)則可以去看的;其本身就是模擬人類決策過程,所以和我們日常去做一些決策時畫的思維導圖有點類似。

以下圖為例,這就是一個保險客戶是否會續(xù)保的決策樹,每一個節(jié)點都是影響分類結果(是否會續(xù)保)的特征節(jié)點。例如第1個節(jié)點是年齡,第2個節(jié)點則是婚姻狀況。

這張圖很直觀很好理解,那么,這里最關鍵的點就在于這棵樹是怎么畫出來的?

其實是計算機會根據數據集中的每一個特征去計算「不純度減少量」,選擇其中最大的結果作為分裂特征。那么,這個「不純度減少量」怎么理解呢?其背后含義是——這個特征在數據集中的分布,能夠最大程度區(qū)分不同的類別,在當下n個特征中,它與目標變量的關系最為顯著。

例如,以上圖為例,通過計算年齡、婚姻狀況等特征和目標變量(是否續(xù)保)的關系,通過計算發(fā)現——年齡是最顯著影響續(xù)保結果的1個特征,這時候就會將其作為第一個節(jié)點,同時選擇使得分裂后子集純度最高的閾值(即這里按照年齡<=29.5去做拆分)。

隨后,循環(huán)這個過程,這棵樹就出來了。

在這個過程中,決策樹是應用了全量特征和全量訓練集中的數據;而接下來我們要講的隨機森林和決策樹核心邏輯類似,但區(qū)別則在于——多棵樹+樣本隨機+特征隨機。

隨機森林的實現方式則是多次先隨機且有放回的抽取N條訓練集中的數據來訓練、再隨機地從M個特征中指定m個特征子集作為特征,從而最終生成多棵樹——應用多個弱分類器(因為每個都是隨機且部分的)來組成一個強分類器。

這樣的好處就是不用單棵決策樹來做預測,增加了預測準確率,不容易過擬合(即模型過度適應當前數據集呈現出來的特征,看起來當前預測很優(yōu)秀,但缺乏了泛化能力;一旦拿到實際生產環(huán)境做預測,就無法準確應用了)。

整體而言,決策樹適合小規(guī)模、低維度且對模型可解釋性要求較高的場景,而隨機森林則更適合處理大規(guī)模、高維度且需要高準確性和抗過擬合能力的場景。

三、邏輯回歸&支持向量機

邏輯回歸和支持向量機SVM則是一組按照邊界去進行分類的方式,邏輯回歸支持將符合線性關系的數據通過線性邊界進行劃分、而向量機不僅能支持線性可分的數據,還能支持通過幾何邊界(超平面)對線性不可分的數據進行分類劃分。

我們先來看邏輯回歸:如左圖所示,如果能夠應用一條線將數據清晰的劃分為2類,那么則可以應用邏輯回歸進行建模(例如,當房子面積為50時,房價為100萬;而當房子面積為100時,房價為200萬);而像右側,則無法應用一條不封閉的線來進行區(qū)分、而需要一個圓,此時就無法應用邏輯回歸進行處理,而要用到支持向量機SVM。

那么,支持向量機會如何去區(qū)分這個圓呢?

對于非線形數據,對應的處理方式則可以用到核技巧——先是使用一個變換將原空間的數據映射到新空間(例如更高維甚至無窮維的空間),然后在新空間里用線性方法從訓練數據中學習得到模型。

形象但不精確一點的解釋就是:在一堆點中找出一個「核」拎出來,原本平面的數據就變成了立體的數據,這樣就可以找到一個超平面去將2個數據區(qū)分開來了。

其中,離這個超平面最近的向量則叫做——支持向量,相當于2堵將2個類別的數據隔開的墻壁;而支持向量機的核心思路就是想要各類樣本點到超平面的距離達到最遠,也就是找到最大間隔超平面。

總結而言,二者都相對更多應用于二分類場景(即只分成2類)中,但由于數據特征是否呈現線性關系來進行建模的區(qū)分。

邏輯回歸因為簡單好搭建、解釋性更強,所以經常會在需要多次調優(yōu)的算法建模中當作基線baseline、從而可以和后續(xù)調優(yōu)后的算法效果進行對照;而支持向量機整體能夠支持處理復雜決策邊界和精度要求高的場景,但在實際操作過程中需要配置一些會影響結果的超參數,導致分類在一定程度上具有不可解釋性。

四、K近鄰法

前面已經把最經典和稍顯復雜的5種類型講完了,這里我們就簡單來講一講什么叫做K近鄰法。

K近鄰法本質上其實和我們古話中的「近朱者赤、近墨者黑」的原理一樣。假設有一組特征,基于樣本之間的相似性,找出它最近的K個鄰居,看這些鄰居中分類最多的是什么,則這組特征最終就被分類為什么。

比如,有一個人身高165、體重100斤,而假設原始數據集中有3組數據「164cm、99斤、女」「162cm、100斤、女」「180cm、100斤、男」「180cm、180斤、男」,那么與其最相鄰的3組數據則是「164cm、99斤、女」「162cm、100斤、女」「180cm、100斤、男」,這里男1女2,因此,判斷這個人為女生。

如上圖所示,待分類的數據中,找出了2個綠色和1個紅色的結果,那么,則該類型就被判斷為綠色。但是K近鄰法的難度就在于到底該圈幾個鄰居,如上圖所示,如果圈3個,為綠色居多;如果圈7個,則變成了紅色居多。

K近鄰法在理論上比較成熟,同時也是最簡單的機器學習算法之一。它整體簡單,適用于數據分布均勻、特征空間連續(xù)、快速構建的場景,但因為其僅僅通過相鄰分類的結果來做判斷、未提供明確的決策規(guī)則或概率輸出,故可解釋性相對較差。

五、自適應增強

最后一種則是Adaboost自適應增強算法,這是一種和前面6種都不太一樣的思路:它不是直接正面去做分類和計算,而是迭代式思維+逆向思維——通過先快速應用一些基礎模型(如1層深度的決策樹)搭建一個弱學習器(指比胡亂分類效果好那么一丟丟的效果),再不斷讓模型刷錯題本(一出錯就回過頭來調高誤分類的權重)來優(yōu)化下一次的弱學習器,從而組合成一個強學習器(分類效果相對較準),提升最終的分類效果。

如上圖所示,要對紅白藍3個數據進行分類,第1次,紅色正確,白藍錯誤;第二次,降低紅色權重,提升白藍權重(作為錯題本),再次進入第2個弱學習器中學習,得到了白色錯誤、藍色正確;那么,第三次,自然就是提升白色權重,降低紅藍權重,最終達到3個都分類正確。

Adaboost的原理比較好理解,其實現也較為簡單和靈活,但其對錯誤數據加權重的方式也可能會讓算法給異常數據和噪聲給予更高的權重,導致模型表現不佳。

總結和對比

學完7種模型,估計大家已經和我一樣有點眼花繚亂了,那這里我們再匯總做一下對照和總結:

若追求高準確性,選擇支持向量機、隨機森林、自適應增強;若需要高解釋性,選擇邏輯回歸、決策樹;若計算資源有限,選擇樸素貝葉斯、邏輯回歸;若需要兼顧速度和準確性,選擇隨機森林。當然,這并不是絕對,最終在實踐過程中既要結合實際場景和數據來做選擇,也可以選擇多個相對合適的場景來進行效果對比,最終選擇合適模型。

本文由人人都是產品經理作者【冰冰醬】,微信公眾號:【冰冰醬啊】,原創(chuàng)/授權 發(fā)布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!