經典的機器學習模型(叄)
1 CART(Classification and Regression Tree)
決策樹的本質就是將空間分為若干個區域,對空間向量的垂直分割。
給定訓練資料
我們想要學習一個CART來最小化下列函式:
,
在上圖中,資料被分成兩段,在此劃分下的損失函式是,左半邊的資料平均值與真實資料的差值的平方和,加上右半邊資料平均值與差值的平方和,我們想要求出使得損失函式最小時的分割點。在構造CART時,如果我們有多個變數,那麼我們需要遍歷每一個變數找到最佳的劃分點,使得損失函式最小化。
2 整合學習(Ensemble Learning )
2.1 整合學習在機器學習演算法中具有較高的準去率,不足之處就是模型的訓練過程可能比較複雜,效率不是很高。目前接觸較多的整合學習主要有2種:基於Boosting的和基於Bagging,前者的代表演算法有Adaboost、GBDT、XGBOOST、後者的代表演算法主要是隨機森林。
2.2 整合學習的主要思想
整合學習的主要思想是利用一定的手段學習出多個分類器,而且這多個分類器要求是弱分類器,然後將多個分類器進行組合公共預測。核心思想就是如何訓練處多個弱分類器以及如何將這些弱分類器進行組合。
2.3、整合學習中弱分類器選擇
一般採用弱分類器的原因在於將誤差進行均衡,因為一旦某個分類器太強了就會造成後面的結果受其影響太大,嚴重的會導致後面的分類器無法進行分類。常用的弱分類器可以採用誤差率小於0.5的,比如說邏輯迴歸、SVM、神經網路。
2.4、多個分類器的生成
可以採用隨機選取資料進行分類器的訓練,也可以採用不斷的調整錯誤分類的訓練資料的權重生成新的分類器。
2.5、多個弱分類區如何組合
基本分類器之間的整合方式,一般有簡單多數投票、權重投票,貝葉斯投票,基於D-S證據理論的整合,基於不同的特徵子集的整合。
2.1 Bagging(Bootstrap Aggregating)
Bootstrap取樣
有放回的取樣法,可以更真實的瞭解資料,忽略一些噪聲的影響。
隨機森林(Random Forest)
兩個隨機過程:第一個就是輸入資料是隨機的從整體的訓練資料中選取一部分作為一棵決策樹的構建,而且是有放回的選取;第二個就是每棵決策樹的構建所需的特徵是從整體的特徵集隨機的選取的,這兩個隨機過程使得隨機森林很大程度上避免了過擬合現象的出現。
演算法步驟:
1、從訓練資料中選取n個數據作為訓練資料輸入,一般情況下n是遠小於整體的訓練資料N的,這樣就會造成有一部分資料是無法被去到的,這部分資料稱為袋外資料,可以使用袋外資料做誤差估計。
2、選取了輸入的訓練資料的之後,需要構建決策樹,具體方法是每一個分裂結點從整體的特徵集M中選取m個特徵構建,一般情況下m遠小於M。
3、在構造每棵決策樹的過程中,按照選取最小的基尼指數進行分裂節點的選取進行決策樹的構建。決策樹的其他結點都採取相同的分裂規則進行構建,直到該節點的所有訓練樣例都屬於同一類或者達到樹的最大深度。
4、 重複第2步和第3步多次,每一次輸入資料對應一顆決策樹,這樣就得到了隨機森林,可以用來對預測資料進行決策。
5、 輸入的訓練資料選擇好了,多棵決策樹也構建好了,對待預測資料進行預測,比如說輸入一個待預測資料,然後多棵決策樹同時進行決策,最後採用多數投票的方式進行類別的決策。
2.2 Boosting(Bootstrap Aggregating)
概念:若分類器在樣本上訓練形成基礎分類器,Boosting框架對訓練樣本集的操作,形成新樣本(樣本的權重不同),利用之前的基分類器重新訓練生成第二個基分類器,迴圈n次,形成n個基分類器,然後按照一定的權重比例形成最終的分類器。
Adaboost(Adaptive Boost)
Adaboost是boosting中較為代表的演算法,基本思想是通過訓練資料的分佈構造一個分類器,然後通過誤差率求出這個若弱分類器的權重,通過更新訓練資料的分佈,迭代進行,直到達到迭代次數或者損失函式小於某一閾值。
演算法流程:
訓練樣本:
,
,
對於每個
都有一個對應的權重
,
.
Step1:初始化
Step2:遍歷
:
是一個弱分類器,可以是樸素貝葉斯,決策樹,神經網路,SVM等等。
對每一個
,誤差