本文實(shí)例講述了決策樹剪枝算法的python實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的綿陽(yáng)服務(wù)器托管服務(wù)決策樹是一種依托決策而建立起來(lái)的一種樹。在機(jī)器學(xué)習(xí)中,決策樹是一種預(yù)測(cè)模型,代表的是一種對(duì)象屬性與對(duì)象值之間的一種映射關(guān)系,每一個(gè)節(jié)點(diǎn)代表某個(gè)對(duì)象,樹中的每一個(gè)分叉路徑代表某個(gè)可能的屬性值,而每一個(gè)葉子節(jié)點(diǎn)則對(duì)應(yīng)從根節(jié)點(diǎn)到該葉子節(jié)點(diǎn)所經(jīng)歷的路徑所表示的對(duì)象的值。決策樹僅有單一輸出,如果有多個(gè)輸出,可以分別建立獨(dú)立的決策樹以處理不同的輸出。
ID3算法:ID3算法是決策樹的一種,是基于奧卡姆剃刀原理的,即用盡量用較少的東西做更多的事。ID3算法,即Iterative Dichotomiser 3,迭代二叉樹3代,是Ross Quinlan發(fā)明的一種決策樹算法,這個(gè)算法的基礎(chǔ)就是上面提到的奧卡姆剃刀原理,越是小型的決策樹越優(yōu)于大的決策樹,盡管如此,也不總是生成最小的樹型結(jié)構(gòu),而是一個(gè)啟發(fā)式算法。在信息論中,期望信息越小,那么信息增益就越大,從而純度就越高。ID3算法的核心思想就是以信息增益來(lái)度量屬性的選擇,選擇分裂后信息增益大的屬性進(jìn)行分裂。該算法采用自頂向下的貪婪搜索遍歷可能的決策空間。
信息熵,將其定義為離散隨機(jī)事件出現(xiàn)的概率,一個(gè)系統(tǒng)越是有序,信息熵就越低,反之一個(gè)系統(tǒng)越是混亂,它的信息熵就越高。所以信息熵可以被認(rèn)為是系統(tǒng)有序化程度的一個(gè)度量。
基尼指數(shù):在CART里面劃分決策樹的條件是采用Gini Index,定義如下:gini(T)=1−sumnj=1p2j。其中,( p_j )是類j在T中的相對(duì)頻率,當(dāng)類在T中是傾斜的時(shí),gini(T)會(huì)最小。將T劃分為T1(實(shí)例數(shù)為N1)和T2(實(shí)例數(shù)為N2)兩個(gè)子集后,劃分?jǐn)?shù)據(jù)的Gini定義如下:ginisplit(T)=fracN1Ngini(T1)+fracN2Ngini(T2),然后選擇其中最小的(gini_{split}(T) )作為結(jié)點(diǎn)劃分決策樹
具體實(shí)現(xiàn)
首先用函數(shù)calcShanno計(jì)算數(shù)據(jù)集的香農(nóng)熵,給所有可能的分類創(chuàng)建字典
def calcShannonEnt(dataSet): numEntries = len(dataSet) labelCounts = {} # 給所有可能分類創(chuàng)建字典 for featVec in dataSet: currentLabel = featVec[-1] if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] = 0 labelCounts[currentLabel] += 1 shannonEnt = 0.0 # 以2為底數(shù)計(jì)算香農(nóng)熵 for key in labelCounts: prob = float(labelCounts[key]) / numEntries shannonEnt -= prob * log(prob, 2) return shannonEnt
網(wǎng)站名稱:決策樹剪枝算法的python實(shí)現(xiàn)方法詳解-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://www.rwnh.cn/article24/gepje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、動(dòng)態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容