有了關於分類問題的基本認識,本節介紹一種簡單的分類算法——決策樹。決策的意思就是使用訓練數據學習分類的決策依據,從而可以據此對需要分類的數據屬於哪一類這樣的問題給出決策。決策樹是人工智能中的經典算法,既適用於輸出結果為連續值的回歸問題(又叫回歸樹),也適用於輸出結果為離散值的分類問題,它們的基本想法是一致的,理解了決策樹的原理,回歸樹就很容易掌握了,本節隻針對離散值的情形講解決策樹算法。
使用決策樹進行分類其實模擬了人類決策的過程。例如,小明想約小紅明天去看電影,發生了下述對話過程。
小紅:明天有好看的電影嗎?
小明:有啊,一部新上映的大片。
小紅:看幾點的?我隻有中午有時間。
小明:正好中午12點有一場。
小紅:明天天氣怎麽樣?
小明:天氣很舒服,不冷不熱。
小紅:好的,那你明天按時來接我吧。
小明:明天見。
在這個對話中,小紅對明天看電影的事情有“看”和“不看”兩類安排,做出“看”的決定需要滿足如下要求:電影好看、時間合適,並且天氣舒服。這個決策的過程可以通過圖3-1來描述。
圖3-1
上述圖示很好地展示了決策樹的直觀含義。所謂決策樹,指的是一個樹形結構,其中每個內部節點代表一個特征屬性,內部節點的每個分支路徑代表了此特征屬性的某個可能的屬性值,而每個葉子節點代表一個類別。因為每個內部節點都會生長出幾個不同的分支,沿分支可以到達其他的內部節點或葉子節點,所以此內部節點對應的特征屬性又叫作分裂屬性。
決策樹是一個用於分類的預測模型,也就是說,它給出了每個待分類對象到類別的一種映射關係。使用決策樹進行決策的過程就是從根節點開始,測試待分類對象相應的特征屬性,按照屬性值選擇分支路徑,直至到達某個葉子節點,將此葉子節點存放的類別作為決策結果。