機器學習之分類模型
- 概述
- 分類模型
- 邏輯回歸
- 最近鄰分類
- 樸素貝葉斯
- 支持向量機
- 決策樹
- 隨機森林
- 多層感知機
- 基于集成學習的分類模型
- Voting
- Bagging
- Stacking
- Blending
- Boosting
概述
機器學習分類模型通過訓練集進行學習,建立一個從輸入空間 X X X到輸出空間 Y Y Y(離散值)的映射。按照輸出類別(標簽)的不同,可以分為二分類(Binary Classification)、多分類(Multi-Class Classification)、多標簽分類(Multi-Label Classification)。常用的分類算法有邏輯回歸、KNN、決策數、隨機森林、樸素貝葉斯等。下面將分別對具體的分類模型進行介紹。
分類模型
邏輯回歸
邏輯回歸是在線性回歸基礎上衍生出來的用于分類的模型,由于線性回歸的結果輸出是一個連續值,而其范圍是無法限定的,直接使用線性回歸是無法作為分類的判別依據的。需要使用一個映射函數(例如Sigmoid函數)將連續的輸出值映射到(0,1)之間,這個概率值就可以作為模型判斷分類結果的依據。
最近鄰分類
最近鄰分類(KNN)是一種常用的數據聚類方法,其核心思想是在特征空間中尋找匹配的k個最近點,根據k個最近點的投票來判斷當前樣本應該屬于哪一個類別。KNN算法中,所選擇的鄰居都是已經正確分類的對象,常用的距離函數由曼哈頓距離、歐式距離和閔可夫斯基距離。
樸素貝葉斯
樸素貝葉斯分類器是建立在貝葉斯定律和事件之間條件獨立假設的基礎上,貝葉斯定律如下所示:
P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 n P ( B j ) P ( A ∣ B j ) P(B_i|A) = \frac{P(B_i)P(A|B_i)}{\sum_{j=1}^{n}P(B_j)P(A|B_j)} P(Bi?∣A)=∑j=1n?P(Bj?)P(A∣Bj?)P(Bi?)P(A∣Bi?)?
其中 P ( ? ) P(\cdot) P(?)為事件發生的概率, P ( A ∣ B ) P(A|B) P(A∣B)則表示在B發生的情況下A發生的概率。
事件之間相互獨立的假設認為即使這些事件相互依賴或者依賴于其他事件的存在,樸素貝葉斯算法都認為這些事件都是獨立的。樸素貝葉斯通過已給定的訓練集,學習從輸入到輸出的聯合概率分布,再基于學習到的模型和輸入求出使得后驗概率最大的輸出。
支持向量機
支持向量機(SVM)把分類問題轉化為尋找分類平面的問題,把樣本空間映射到一個高維特征空間中,并通過最大化分類邊界點到分類平面的距離來實現分類。SVM學習的基本想法是求解能夠正確劃分訓練數據集并且幾何間隔最大的分離超平面。對于線性可分的數據集來說,劃分出不同類別的超平面有無窮多個,但是使幾何間隔最大的分離超平面是唯一的。
SVM利用核函數將數據從低維空間映射到高維空間,可以很好地減少計算量,并且將數據投影到高維空間后,數據就可能變得可分,在某種程度上避免了“維度災難”。
決策樹
決策樹是用樹狀結構構建的一類分類模型。從跟節點開始,算法不斷通過一定的條件來將數據集拆分成更小的子集來劃分數據集,最終發展成具有決策節點(包括根節點和內部節點)和葉節點的樹。隨著樹的深度不斷增加,分支節點的子集越來越小,判斷條件也逐漸簡化。當分支節點的深度或者判斷條件滿足一定的停止規則時,該分支節點會停止分裂,此為自上而下的閾值終止(Cutoff Thresshold)法;此外還有自下而上的剪枝(Pruning)法。在分類預測時,輸入數據經過決策樹內部的各個決策節點,按照不同的屬性值進入不同的分支,直到到達葉子節點完成分類。
隨機森林
隨機森林是指通過多棵決策樹聯合組成的模型,不同決策樹之間沒有關聯。當執行分類任務時,新的輸入樣本進入,會輸入到隨機森林中不同的決策樹內,按照所有決策樹的判斷條件得到多個分類結果,最后采用少數服從多數的投票方式決定最終的分類結果。
多層感知機
多層感知機(Multilayer Perception,MLP)是一種基于前向傳播的人工神經網絡,模仿人類的感受器神經元將信號逐層向下傳播。多層感知機的基本結構一般由三層組成:輸入層、隱藏層和輸出層。訓練時,使用反向傳播算法(例如梯度下降法)來調整權重,減少訓練過程中的偏差,即真值和預測值之間的誤差。
基于集成學習的分類模型
集成學習(Ensemble Learning)是一種能在各種的機器學習任務上提高準確率的強有力技術,其通過組合多個基本分類器來完成學習任務。對于單個模型,很容易出現過擬合或欠擬合的情況,并且各個模型在設計的時候就有自己本身的優缺點,因此我們可以通過基于集成學習的方法進行模型融合達到取長補短的效果。常用的融合方案有Voting、Bagging、Stacking、Blending和Boosting。
Voting
Voting是指投票法,采取少數服從多數的原則,對于多個分類器的預測結果進行投票,具體可分為普通投票法和加權投票法。其中加權投票法的權重可以人工主觀設置或者根據模型評估分數來設置。投票法通常需要3個及以上的模型,并且為了避免投票結果的偏差,需要保證模型的多樣性。
Bagging
在Voting方法中,采用相同的全部樣本訓練每一個基分類器,而Bagging方法則是使用全部樣本的一個隨機抽樣,每個分類器都是使用不同的樣本進行訓練,其他的地方二者完全一致。這樣就避免了模型訓練結果的同質化問題,提高了不穩定模型準確率的同時,降低了過擬合的程度。
Stacking
Stacking是一種分層模型集成框架。將若干個基分類器獲得的預測結果,將預測結果作為新的訓練集來訓練一個學習器。以一個兩層的Stacking集成框架為例,地一層由多個基學習器組成,輸入為原始訓練集,第二層的模型則是以第一層基學習其