分类算法——决策树算法及其R实现
決策樹定義
以鳶尾花為例子來說明:
?
觀察上圖,判決鳶尾花的思考過程可以這么來描述:花瓣的長度小于2.4cm的是setosa(圖中綠色的分類),長度大于2.4cm的呢?可以通過寬度來判別,寬度小于1.8cm的是versicolor(圖中紅色的分類),其余的就是virginica(圖中黑色的分類)
用圖形來形象的展示上述思考過程便得到了下圖一棵決策樹:
這種從數(shù)據(jù)產(chǎn)生決策樹的機(jī)器學(xué)習(xí)技術(shù)叫做決策樹學(xué)習(xí), 通俗點(diǎn)說就是決策樹,說白了,這是一種依托于分類、訓(xùn)練上的預(yù)測(cè)樹,根據(jù)已知預(yù)測(cè)、歸類未來。
之前的k-近鄰算法也可以完成很多分類任務(wù),但是他的缺點(diǎn)就是含義不清,說不清數(shù)據(jù)的內(nèi)在邏輯,而決策樹則很好地解決了這個(gè)問題,他十分好理解。從存儲(chǔ)的角度來說,決策樹解放了存儲(chǔ)訓(xùn)練集的空間,畢竟與一棵樹的存儲(chǔ)空間相比,訓(xùn)練集的存儲(chǔ)需求空間太大了。
決策樹的構(gòu)建
一、ID3的想法與實(shí)現(xiàn)
構(gòu)造基本步驟:
(1)生成樹階段。選取部分受訓(xùn)數(shù)據(jù)建立決策樹,決策樹是按廣度優(yōu)先建立直到每個(gè)葉節(jié)點(diǎn)包括相同的類標(biāo)記為止。
(2)決策樹修剪階段。用剩余數(shù)據(jù)檢驗(yàn)決策樹,如果所建立的決策樹不能正確回答所研究的問題,我們要對(duì)決策樹進(jìn)行修剪直到建立一棵正確的決策樹。這樣在決策樹每個(gè)內(nèi)部節(jié)點(diǎn)處進(jìn)行屬性值的比較,在葉節(jié)點(diǎn)得到結(jié)論。從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的一條路徑就對(duì)應(yīng)著一條規(guī)則,整棵決策樹就對(duì)應(yīng)著一組表達(dá)式規(guī)則。
問題:我們?nèi)绾未_定起決定作用的劃分變量。
用鳶尾花的例子來說這個(gè)問題思考的必要性。使用不同的思考方式,我們不難發(fā)現(xiàn)下面的決策樹也是可以把鳶尾花分成3類的。
為了找到?jīng)Q定性特征,劃分出最佳結(jié)果,我們必須認(rèn)真評(píng)估每個(gè)特征。ID3算法以信息熵和信息增益以衡量標(biāo)準(zhǔn)。其他劃分的辦法為信息增益率和基尼不純指數(shù),對(duì)應(yīng)的算法為C4.5和CART。
信息熵(Entropy)主要指信息的混亂程度,變量的不確定性越大,熵的值也就越大,熵的公式可以表示為
信息增益(Information gain)指的是劃分前后熵的變化,可以用下面公式表示:
1 計(jì)算給定數(shù)據(jù)集的熵
2 按照給定特征劃分?jǐn)?shù)據(jù)集
3 選擇最佳劃分(基于熵增益)?
4 遞歸構(gòu)建決策樹
二、C4.5算法
C4.5是ID3算法的擴(kuò)展
C4.5算法描述 :
(1)創(chuàng)建根節(jié)點(diǎn)N;
(2) IF T都屬于同一類C,則返回N為葉節(jié)點(diǎn),標(biāo)記為類C;
(3) IF T_attributelist為空或T中所剩的樣本數(shù)少于某給定值則返回N為葉節(jié)點(diǎn),標(biāo)記為T中出現(xiàn)最多的類;
(4) FOR each T_attributelist中的屬性計(jì)算信息增益率information gain ratio;
(5) N的測(cè)試屬性test_attribute=T_attributelist中具有最高信息增益率的屬性;
(6) IF測(cè)試屬性為連續(xù)型則找到該屬性的分割閥值;
(7) FOR each 由節(jié)點(diǎn)N長出的新葉節(jié)點(diǎn){
??????????????? IF 該葉節(jié)點(diǎn)對(duì)應(yīng)的樣本子集T’為空
????? ????????????????則分裂該葉節(jié)點(diǎn)生成一個(gè)新葉節(jié)點(diǎn),將其標(biāo)記為T中出現(xiàn)最多的類;
???????????????? ELSE在該葉節(jié)點(diǎn)上執(zhí)行C4.5formtree(T’,T’_attributelist),對(duì)它繼續(xù)分裂;
?}
(8)計(jì)算每個(gè)節(jié)點(diǎn)的分類錯(cuò)誤,進(jìn)行樹剪枝。
?
以鳶尾花數(shù)據(jù)為例子,使用C4.5算法得到的分類樹見下圖:
三、?CART算法
分類與回歸樹(CART——Classification And Regression Tree)) ,二叉決策樹
CART算法描述
(1)創(chuàng)建根節(jié)點(diǎn)N;
(2)為N分配類別;
(3) IF T都屬于同一類別OR T中只剩一個(gè)樣本
???????????????? 則返回N為葉節(jié)點(diǎn),為其分配類別;
(4) FOR each T_attributelist 中的屬性
???????????????? 執(zhí)行該屬性上的一個(gè)劃分,計(jì)算此次劃分的GINI系數(shù);
(5) N的測(cè)試屬性test_attribute=T_attributelist中具有最小GINI系數(shù)的屬性;
(6)劃分T得T1、T2兩個(gè)子集;
(7)調(diào)用cartformtree(T1);
(8)調(diào)用cartformtree(T2);
?
?
總結(jié)
以上是生活随笔為你收集整理的分类算法——决策树算法及其R实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嘉实超短债分红规则
- 下一篇: 主成分分析和因子分析及其在R中的…