決策樹python實現(xiàn)

參考書籍:機器學習--周志華 / 數(shù)據(jù)挖掘?qū)д?/ 統(tǒng)計學習方法

參考代碼鏈接:https://blog.csdn.net/weixin_40683253/article/details/81941583#commentsedit

博主還非常nice地給我發(fā)了數(shù)據(jù)集语御,感謝席怪!

1. 概念

決策樹是基于樹結(jié)構(gòu)來進行決策的挂捻。根結(jié)點包含樣本全集刻撒,葉結(jié)點對應于決策結(jié)果。其他的每個結(jié)點對應于一個屬性測試耿导,每個結(jié)點包含的樣本集合根據(jù)屬性測試的結(jié)果被劃分到子節(jié)點中声怔。

屬性:{色澤,根蒂舱呻,敲聲醋火,紋理,臍部箱吕,觸感}

屬性值: eg:色澤={青綠芥驳,烏黑,淺白}

2. 最優(yōu)劃分屬性選擇算法

信息熵(information entropy):D的信息熵:Ent(D) = - \sum_{k=1}^n p_{k} \log_2 p_{k}

p_{k} 為當前樣本集合D中第k類樣本所占的比例茬高。

Ent(D)的值越小兆旬,則D的純度越高宿饱。

ID3算法:以信息增益(information gain)為準則來選擇劃分屬性愚铡。

屬性a對樣本集D進行劃分所獲得的信息增益:Gain(D, a) = Ent(D) - \sum_{v=1}^V\frac{\vert D^v  \vert }{D}  Ent(D^v)

D^v 表示D中所有在屬性a上取值為a^v 的樣本邑雅。

信息增益越大,使用屬性a來進行劃分所獲得的純度提升越大。選取信息增益最大的屬性作為劃分屬性。

C4.5算法:以增益率則來選擇最優(yōu)劃分屬性(先從候選劃分屬性中找出信息增益高于平均水平的屬性色冀,再從中選擇增益率最高的)

增益率:Gainratio(D, a) = \frac{Gain(D, a)}{IV(a)}

IV(a) = -\sum_{v=1}^V\frac{\vert D^v  \vert }{\vert D \vert }\log_2 \frac{|D^v| }{\vert D \vert }

CART算法:以基尼指數(shù)(來選擇劃分屬性。

基尼值:Gain(D) = 1-\sum_{k=1}^np_{k}^2

Gini index =(D, a) = \sum_{v=1}^V\frac{|D^v| }{|D|}  Gini(D^v)

3. python實現(xiàn)


1. 需要用到的工具import


2. 主函數(shù)


3. 數(shù)據(jù)處理并導入


4. 建立決策樹


5. 如果每條數(shù)據(jù)只包含分類結(jié)果挫鸽,則選擇分類結(jié)果count最大的輸出,這是一種特殊情況


6. 利用信息增益最大的原則選擇劃分屬性


7. step6中計算信息增益的時候需要用到的信息熵


8. 在step6中計算信息增益需要用到的函數(shù)。

完整代碼:







最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門皆尔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來食呻,“玉大人每辟,你說我怎么就攤上這事∧咏” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我虽另,道長族展,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任瓷马,我火速辦了婚禮自沧,結(jié)果婚禮上爱谁,老公的妹妹穿的比我還像新娘凉敲。我一直安慰自己蓝撇,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晰筛,像睡著了一般怜瞒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上般哼,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天吴汪,我揣著相機與錄音,去河邊找鬼蒸眠。 笑死漾橙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的楞卡。 我是一名探鬼主播霜运,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脾歇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淘捡?” 一聲冷哼從身側(cè)響起藕各,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焦除,沒想到半個月后激况,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡踢京,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年誉碴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓣距。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡黔帕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹈丸,到底是詐尸還是另有隱情成黄,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布逻杖,位于F島的核電站奋岁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荸百。R本人自食惡果不足惜闻伶,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望够话。 院中可真熱鬧蓝翰,春花似錦、人聲如沸女嘲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欣尼。三九已至爆雹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間愕鼓,已是汗流浹背钙态。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拒啰,地道東北人驯绎。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像谋旦,于是被迫代替她去往敵國和親剩失。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容