【資料探勘】C3.0、C4.5、CART演算法
小白學資料,只為記錄學習程式,對每個問題有新的理解會及時更正。
1.引入熵的概念:
計算集合中,所有資料的熵
D表示整個集合,pk表示第k類分類的資料所佔的比例,熵越大,表示集合D越混亂,越小表示集合越純。一般熵介於0,1之間。
2、引入條件熵
p(xi)表示屬性x,是xi屬性的資料所佔比列,Entropy(Y|xi)表示在屬性是xi的前提下,Y的資訊熵
3、資訊增益
資訊增益 = 集合D的資訊熵 - 屬性X下的條件資訊熵
表示決策樹在屬性X下的資訊熵減少的程度
4、C3.0演算法
選擇資訊增益最大的屬性作為優先劃分的屬性,選擇好劃分之後,再計算新的資訊增益,在選擇第二個屬性。。。。直到劃分結束。
但此方法,會傾向選擇劃分屬性較多的特徵,比如把每一條資料加上編號,這個編號如果作為劃分標準,則每一個劃分集合只有一個,則條件資訊熵為0,這時候資訊增益最大,但是這是沒有意義的劃分。所以我們引入了C4.5演算法
C3.0演算法缺點:
(1)、傾向選擇劃分屬性較多的特徵
(2)、不能處理連續值的情況
(3)、當屬性缺失的時候,沒法處理
5、C4.5演算法
基於C3.0的侷限性,引入資訊增益率:
Gain(D,a)表示在屬性a的前提下,D的資訊增益,IV(a)表示,屬性a的熵,計算方法和Entropy一樣。
這時候,當劃分屬性很多時候,IV(a)會變大,導致資訊增益率變小,所以,在選用C4.5演算法傾向選擇劃分屬性少的特徵。
在C4.5演算法選擇屬性的時候,先選擇資訊增益大於均值的特徵(保證了劃分的有效性),再在選出的特徵中選擇資訊增益率最大的特徵(避免了過多特徵帶來的無效劃分)。
當處理的屬性是連續的屬性的時候,先把值按照從小到大的順序排列,然後取相鄰兩個值的中值作為劃分點,再分別計算每個劃分點下的資訊增益,選擇資訊增益最大的那個劃分點,作為這個屬性的二分點。
C4.5演算法優點
(1)、解決了傾向於屬性較多的劃分
(2)、可以處理缺失值
1.當建立模型時候,怎麼確定這個屬性的資訊增益和增益率:(計算沒有缺失的比列 )* (沒有缺失值的資訊增益和資訊增益率)來當作資訊增益(率)
2.當屬性選取好了,樣本的屬性缺失:將樣本以不同概率分配到各個屬性中,概率更具其他未缺失的資料得出
3.當預測資料的值缺失:遍歷缺失值底下的所有情況,選擇概率最大的值作為最後劃分。
(3)、可以處理連續值
(4)、可以進行剪枝
1、先剪枝:當目前的資料集中的樣本數量小於給定閾值,則不再分裂;當目前的資料集中的資訊熵小於給定閾值,則不再分裂;
2、後剪枝:先得到全部分裂的樹,再假設再某個節點不再分裂,通過計算是否分裂的錯誤率來決定是否剪枝,參考後剪枝判斷
6、CART演算法
CART採用基尼係數來當作選擇劃分屬性的標準:
在屬性a的前提下,基尼係數為:
因為基尼係數沒有采用相減這個操作,所以,選用基尼係數小的特徵來當作劃分特徵。同時,基尼係數產生的樹是二叉樹,不是多叉樹。
當處理的屬性是連續的屬性的時候,先把值按照從小到大的順序排列,然後取相鄰兩個值的中值作為劃分點,再分別計算每個劃分點下的基尼係數,選擇基尼係數最小的那個劃分點,作為這個屬性的二分點。
相關文章
- 【面試考】【入門】決策樹演算法ID3,C4.5和CART面試演算法
- 常用資料探勘演算法演算法
- 白話說大資料演算法C4.5大資料演算法
- 資料探勘十大演算法演算法
- python 資料探勘演算法簡要Python演算法
- 資料探勘與分析 概念與演算法演算法
- 資料探勘十大經典演算法演算法
- 圖資料探勘:社群檢測演算法(一)演算法
- 資料探勘演算法跟資料結構中的演算法有區別嗎演算法資料結構
- 資料探勘——KNN演算法(手寫數字分類)KNN演算法
- 資料探勘技術
- 資料探勘與生活
- 資料探勘( TO DO LIST)
- 資料探勘之KMeans演算法應用與簡單理解演算法
- 資料探勘 ReliefF和K-means演算法的應用演算法
- 圖說十大資料探勘演算法(一)K最近鄰演算法大資料演算法
- 決策樹模型(4)Cart演算法模型演算法
- Frequent Pattern 資料探勘關聯規則演算法(Aprior演算法) FT-Tree演算法
- 《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive BayesKNNAI
- 資料探勘和資料提取能做什麼?
- 資料探勘-層次聚類聚類
- 淺談大資料、資料分析、資料探勘的區別!大資料
- 資料探勘的步驟有哪些?
- 理解Transformer [資料探勘深度學習]ORM深度學習
- 大資料探勘有哪些技術大資料
- 資料探勘的過程有哪些
- 《資料探勘導論》讀後感
- 資料探勘技術功能有哪些
- 資料探勘的辦法有哪些
- 資料探勘-預測模型彙總模型
- 資料探勘之 層次聚類聚類
- 資料探勘---BP神經網路神經網路
- CART演算法解密:從原理到Python實現演算法解密Python
- 資料探勘和資料提取該怎麼區分?
- Yahoo前任資料官:資料探勘與分析技巧(下)IF
- 資料分析與資料探勘 - 04科學計算
- 萌新向Python資料分析及資料探勘 前言Python
- 《資料分析與資料探勘》--天津大學公開課