机器学习实战读书笔记--决策树
1、決策樹的構(gòu)造
createBranch偽代碼:
檢測數(shù)據(jù)集中的每個(gè)子項(xiàng)是否屬于同一分類:
IF SO RETURN?類標(biāo)簽
ELSE
尋找劃分?jǐn)?shù)據(jù)集的最好特征
劃分?jǐn)?shù)據(jù)集
創(chuàng)建分支節(jié)點(diǎn)
FOR?每個(gè)劃分的子集
調(diào)用函數(shù)createBranch并增加返回結(jié)果到分支節(jié)點(diǎn)中
RETURN?分支節(jié)點(diǎn)
劃分?jǐn)?shù)據(jù)集的大原則:將無序的數(shù)據(jù)變的更加有序。在劃分?jǐn)?shù)據(jù)集之前之后信息發(fā)生的變化稱為信息增益,獲得信息增益最高的特征就是最好的選擇
熵定義為信息的期望值。熵越大越離散。
計(jì)算給定數(shù)據(jù)集的香農(nóng)熵
def calcShannonEnt(dataSet):numEntries = len(dataSet)labelCounts = {}for featVec in dataSet: #the the number of unique elements and their occurancecurrentLabel = featVec[-1]if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] = 0labelCounts[currentLabel] += 1shannonEnt = 0.0for key in labelCounts:prob = float(labelCounts[key])/numEntriesshannonEnt -= prob * log(prob,2) #log base 2return shannonEnt2.決策樹的構(gòu)造算法
? ID3算法
ID3算法是一種分類決策樹算法。他通過一系列的規(guī)則,將數(shù)據(jù)最后分類成決策樹的形式。分類的根據(jù)是用到了熵這個(gè)概念。熵在物理這門學(xué)科中就已經(jīng)出現(xiàn)過,表示是一個(gè)物質(zhì)的穩(wěn)定度,在這里就是分類的純度的一個(gè)概念。公式為:
C4.5算法
C4.5與ID3在核心的算法是一樣的,但是有一點(diǎn)所采用的辦法是不同的,C4.5采用了信息增益率作為劃分的根據(jù),克服了ID3算法中采用信息增益劃分導(dǎo)致屬性選擇偏向取值多的屬性。信息增益率的公式為:
分母的位置是分裂因子,他的計(jì)算公式為:
CART算法
CART算法對于屬性的值采用的是基于Gini系數(shù)值的方式做比較,gini某個(gè)屬性的某次值的劃分的gini指數(shù)的值為:
,pk就是分別為正負(fù)實(shí)例的概率,gini系數(shù)越小說明分類純度越高
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/9752979.html
總結(jié)
以上是生活随笔為你收集整理的机器学习实战读书笔记--决策树的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据挖掘入门与实战代码
- 下一篇: 机器学习实战读书笔记--朴素贝叶斯