決策樹歸納分類演算法理解

shuaishuai3409發表於2015-11-19

決策樹歸納分類演算法理解


決策樹歸納是從類標記的訓練資料構建決策樹,屬於分類領域。遍歷根節點到全部葉節點的路徑,每條路徑都屬於一個元組分類。整棵決策樹形成分類規則。目前構造決策樹的演算法包括ID3(iterative dichotomy),C4.5,CART,都基於如下抽象的演算法流程,現通過一個詳細的資料集對演算法進行詳細解釋:

由資料劃分D的訓練元組產生決策樹


該演算法名稱Generate_decision_tree(,,),遞迴進行決策樹構建。

Input:
資料劃分D,即訓練資料,包含訓練元組(tuples)和對應類標記。
attribute_list是候選屬性集
attribute_selection_method 確定分裂準則splitting_criterion(確定將哪個屬性作為第一分裂屬性,應該是最合適的分裂屬性),包含確定分裂屬性和分裂子集/分裂點。
(分裂點:針對連續型元組(每一行資料代表一個元組);分裂子集:針對離散的資料)

Output:
決策樹


資料集

該資料集就是資料劃分D,包含4個屬性和及其對應的類標記。
attribute_list是{age,income,student,credit_rating}構成的候選屬性集合。資料劃分是根據屬性選擇度量(Gain、Gainratio、Gini指標)依次選取最合適的屬性作為分裂屬性。

以ID3演算法為例:
分別計算四個屬性的資訊增益值:Gain(age)、Gain(income)、Gain(student), Gain(credit_rating) (具體求解見博文……)得到Gain(age)最高,故其被選為第一個最合適的分裂屬性,其有三個分裂子集,分別對應youth、middle_aged、senior構成的子資料集。
演算法中j表示屬性age的三個值youth、middle_aged、senior。
Dj表示按這三個值分類對應的新資料劃分,如下:
age屬性資料劃分
j的值就是age屬性擁有的值的個數,構成了新的資料劃分。然後分別針對D1,D2,D3遞迴呼叫Generate_decision_tree(,,)
遞迴出口:
1.Di中的元組都屬於同一類,直接將其所屬的類作為葉節點
2. 候選屬性集attribute_list為空,將Di中的多數類作為葉節點。

相關文章