本文深入淺出地介紹了機器學習領域中7種經典的分類演算法,包括樸素貝葉斯、決策樹、隨機森林、邏輯回歸、支援向量機、K近鄰法和自適應增強演算法。通過生動的比喻、實際的應用場景和演算法之間的對比,幫助讀者理解每種演算法的核心原理、優缺點以及適用場景,為初學者提供了一份清晰易懂的學習指南。
受LLM大模型的影響,傳統機器學習演算法也在今年開始逐漸有更多客戶願意嘗試了;而以前我也對演算法這件事充滿了嚮往和好奇,覺得是一門很厲害的技術。於是最近準備惡補一下機器學習演算法基礎。
機器學習常見的傳統模型有分類演算法、聚類演算法、關聯分析和連接分析,每一種演算法類型都適用於不同的任務場景,其中也擁有眾多具體的演算法模型。
以分類演算法為例,顧名思義,主要是用來做分類任務的,常見場景有垃圾郵件過濾(例如分析某些垃圾單詞,去分析其是垃圾郵件的概率)、情感分析(如客戶/讀者對於內容的正面/中立/負面情緒)、主題分類(例如一篇新聞該分到哪個主題下)。
而在具體的分類演算法類型中,也有決策樹、隨機森林等好幾種演算法,適用於不同場景、各有優劣。
那麼,本期,我們先從分類演算法講起,主要包含7種常見且經典的分類演算法模型:
1. 樸素貝葉斯NB(Naive Bayes):假設所有特徵獨立的概率計算法
2. 決策樹DT(Decision Tree):算出一套規則來畫一棵分類樹
3. 隨機森林RF(Random Forest):隨機抽取特徵、算出多套規則來畫多棵分類樹(三個臭皮匠、賽過諸葛亮)
4. 邏輯回歸LR(Logistic Regression):如果呈現線性關係,用一條線來區分
5. 支援向量機SVM(Support Vector Machine):如果呈現非線性關係,用一個超平面來區分
6. K近鄰法KNN(K-Nearest Neighbors):近朱者赤、近墨者黑,找和你最相似的群體,看看他們是好是壞
7. 自適應增強AdaBoost(Adaptive Boosting):用錯題集的方式持續反覆運算和糾正,以達到最優效果
湯瑪斯·貝葉斯(Thomas Bayes,1702-1761),18世紀英國神學家、數學家、數理統計學家和哲學家,概率論理論創始人,貝葉斯統計的創立者,“歸納地”運用數學概率,“從特殊推論一般、從樣本推論全體”的第一人。
先不要被這個名字唬到了,貝葉斯是一個人,他提出了一套貝葉斯概率理論,而樸素英文則是naive(樸素、天真),這是因為其對原始貝葉斯理論做了一層假設——即各個特徵(如身高、體重、學歷)之間是獨立且互相沒有關聯的,這其實在現實生活中是不現實的,因為身高和體重某種程度上還是具有一定聯繫,所以稱其為naive(樸素、天真),但其大大簡化了演算法模型的難度,在一定簡單的場景下高效且適用。
樸素貝葉斯的原理就是我們上學時候所做的數學題:比如在A和B兩個盒子里放了一定已知數量的紅球和白球,最後求取出1顆紅球屬於哪個盒子。
這個公式雖然不是很複雜,但是有點繞,大家感興趣可以下來自行瞭解。但是樸素貝葉斯背後隱含的含義就是:通過計算過去特徵在不同條件下的概率(比如,在盒子A里紅球的概率)、紅球本身的概率、選擇2個盒子的概率,來計算出當拿出來一顆紅球后,該球屬於盒子A和盒子B誰的概率更大,更大的那個就被選擇作為最終的分類結果。
整體來看,顯而易見,因為足夠樸素足夠naive,所以樸素貝葉斯計算簡單、速度快、適合大規模的文字數據;但缺點也同樣明顯,這種前提假設導致無法挖掘特徵背後關聯,同時,同義詞如果較多,也可能會高估對應的概率(可以考慮通過同義詞特徵做組合、選擇獨立和相關性高的特徵來做優化)。
到了決策樹和隨機森林就好理解多了,畢竟它是有圖像符號、有直觀規則可以去看的;其本身就是模擬人類決策過程,所以和我們日常去做一些決策時畫的思維導圖有點類似。
以下圖為例,這就是一個保險客戶是否會續保的決策樹,每一個節點都是影響分類結果(是否會續保)的特徵節點。例如第1個節點是年齡,第2個節點則是婚姻狀況。
這張圖很直觀很好理解,那麼,這裡最關鍵的點就在於這棵樹是怎麼畫出來的?
其實是計算機會根據數據集中的每一個特徵去計算「不純度減少量」,選擇其中最大的結果作為分裂特徵。那麼,這個「不純度減少量」怎麼理解呢?其背後含義是——這個特徵在數據集中的分佈,能夠最大程度區分不同的類別,在當下n個特徵中,它與目標變數的關係最為顯著。
例如,以上圖為例,通過計算年齡、婚姻狀況等特徵和目標變數(是否續保)的關係,通過計算發現——年齡是最顯著影響續保結果的1個特徵,這時候就會將其作為第一個節點,同時選擇使得分裂後子集純度最高的閾值(即這裡按照年齡<=29.5去做拆分)。
隨後,循環這個過程,這棵樹就出來了。
在這個過程中,決策樹是應用了全量特徵和全量訓練集中的數據;而接下來我們要講的隨機森林和決策樹核心邏輯類似,但區別則在於——多棵樹+樣本隨機+特徵隨機。
隨機森林的實現方式則是多次先隨機且有放回的抽取N條訓練集中的數據來訓練、再隨機地從M個特徵中指定m個特徵子集作為特徵,從而最終生成多棵樹——應用多個弱分類器(因為每個都是隨機且部分的)來組成一個強分類器。
這樣的好處就是不用單棵決策樹來做預測,增加了預測準確率,不容易過擬合(即模型過度適應當前數據集呈現出來的特徵,看起來當前預測很優秀,但缺乏了泛化能力;一旦拿到實際生產環境做預測,就無法準確應用了)。
整體而言,決策樹適合小規模、低維度且對模型可解釋性要求較高的場景,而隨機森林則更適合處理大規模、高維度且需要高準確性和抗過擬合能力的場景。
邏輯回歸和支援向量機SVM則是一組按照邊界去進行分類的方式,邏輯回歸支援將符合線性關係的數據通過線性邊界進行劃分、而向量機不僅能支援線性可分的數據,還能支持通過幾何邊界(超平面)對線性不可分的數據進行分類劃分。
我們先來看邏輯回歸:如左圖所示,如果能夠應用一條線將數據清晰的劃分為2類,那麼則可以應用邏輯回歸進行建模(例如,當房子面積為50時,房價為100萬;而當房子面積為100時,房價為200萬);而像右側,則無法應用一條不封閉的線來進行區分、而需要一個圓,此時就無法應用邏輯回歸進行處理,而要用到支援向量機SVM。
那麼,支援向量機會如何去區分這個圓呢?
對於非線形數據,對應的處理方式則可以用到核技巧——先是使用一個變換將原空間的數據映射到新空間(例如更高維甚至無窮維的空間),然後在新空間裡用線性方法從訓練數據中學習得到模型。
形象但不精確一點的解釋就是:在一堆點中找出一個「核」拎出來,原本平面的數據就變成了立體的數據,這樣就可以找到一個超平面去將2個數據區分開來了。
其中,離這個超平面最近的向量則叫做——支援向量,相當於2堵將2個類別的數據隔開的牆壁;而支援向量機的核心思路就是想要各類樣本點到超平面的距離達到最遠,也就是找到最大间隔超平面。
總結而言,二者都相對更多應用於二分類場景(即只分成2類)中,但由於數據特徵是否呈現線性關係來進行建模的區分。
邏輯回歸因為簡單好搭建、解釋性更強,所以經常會在需要多次調優的演算法建模中當作基線baseline、從而可以和後續調優后的演算法效果進行對照;而支援向量機整體能夠支援處理複雜決策邊界和精度要求高的場景,但在實際操作過程中需要配置一些會影響結果的超參數,導致分類在一定程度上具有不可解釋性。
前面已經把最經典和稍顯複雜的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近鄰法在理論上比較成熟,同時也是最簡單的機器學習演算法之一。它整體簡單,適用於數據分佈均勻、特徵空間連續、快速構建的場景,但因為其僅僅通過相鄰分類的結果來做判斷、未提供明確的決策規則或概率輸出,故可解釋性相對較差。
最後一種則是Adaboost自適應增強演算法,這是一種和前面6種都不太一樣的思路:它不是直接正面去做分類和計算,而是反覆運算式思維+逆向思維——通過先快速應用一些基礎模型(如1層深度的決策樹)搭建一個弱學習器(指比胡亂分類效果好那麼一丟丟的效果),再不斷讓模型刷錯題本(一出錯就回過頭來調高誤分類的權重)來優化下一次的弱學習器,從而組合成一個強學習器(分類效果相對較准),提升最終的分類效果。
如上圖所示,要對紅白藍3個數據進行分類,第1次,紅色正確,白藍錯誤;第二次,降低紅色權重,提升白藍權重(作為錯題本),再次進入第2個弱學習器中學習,得到了白色錯誤、藍色正確;那麼,第三次,自然就是提升白色權重,降低紅藍權重,最終達到3個都分類正確。
Adaboost的原理比較好理解,其實現也較為簡單和靈活,但其對錯誤數據加權重的方式也可能會讓演算法給異常數據和雜訊給予更高的權重,導致模型表現不佳。
學完7種模型,估計大家已經和我一樣有點眼花繚亂了,那這裡我們再匯總做一下對照和總結:
若追求高準確性,選擇支援向量機、隨機森林、自適應增強;若需要高解釋性,選擇邏輯回歸、決策樹;若計算資源有限,選擇樸素貝葉斯、邏輯回歸;若需要兼顧速度和準確性,選擇隨機森林。當然,這並不是絕對,最終在實踐過程中既要結合實際場景和數據來做選擇,也可以選擇多個相對合適的場景來進行效果對比,最終選擇合適模型。
本文由人人都是產品經理作者【冰冰醬】,微信公眾號:【冰冰醬啊】,原創/授權 發佈於人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基於 CC0 協定。