算法:Generate_decision_tree(samples, attribute)。由給定的訓練數據產生一棵判定樹。
輸入:訓練樣本samples,由離散值屬性表示;候選屬性的集合attribute_list。
輸出:一棵判定樹。
方法:
Generate_decision_tree(samples, attribute_list)
(1) 創建結點 N;
(2) if samples 都在同一個類C then //類標號屬性的值均爲C,其候選屬性值不考慮
(3) return N 作爲葉結點,以類C 標記;
(4) if attribut_list 爲空 then
(5) return N 作爲葉結點,標記爲 samples 中最普通的類; //類標號屬性值數量最大的那個
(6) 選擇attribute_list 中具有最高信息增益的屬性best_attribute;//找出最好的劃分屬性
(7) 標記結點 N 爲best_attribute;
(8) for each best_attribute 中的未知值a i //將樣本samples按照best_attribute進行劃分
(9) 由結點 N 長出一個條件爲 best_attribute = a i 的分枝;
(10) 設si 是samples 中best_attribute = a i 的樣本的集合;//a partition
(11) if si 爲空 then
(12) 加上一個樹葉,標記爲 samples 中最普通的類;//從樣本中找出類標號數量最多的,作爲此節點的標記
(13) else 加上一個由 Generate_decision_tree(si,attribute_list–best_attribute)返回的結點;//對數據子集si,遞歸調用,此時候選屬性已刪除best_attribute