1. 程式人生 > >機器學習實戰(第三篇)-決策樹簡介

機器學習實戰(第三篇)-決策樹簡介

   我們經常使用決策樹處理分類問題,近來的調查表明決策樹也是最經常使用的資料探勘演算法。它之所以如此流行,一個很重要的原因就是使用者基本上不用瞭解機器學習演算法,也不用深究它是如何工作的。

   如果你以前沒有接觸過決策樹,不用擔心,它的概念非常簡單。即使不知道它也可以通過簡單的圖形瞭解其工作原理。下圖代表了一個決策樹:


  正方形代表判斷模組(decision block),橢圓代表終止模組(terminating block),表示已經得出結論,可以終止執行。一叢判斷模組引出的左右箭頭成為分支(branch),它可以到達另一個判斷模組或者終止模組。上圖構造了一個假想的郵件分類系統,它首先檢測傳送郵件域名地址。如果地址為myEmployer.com,則將其放在分類“無聊時需要閱讀的郵件”中。如果郵件不是來自這個域名,則檢查郵件內容中是否包含單詞“曲棍球”,如果包含,則將郵件歸類到“需要及時處理的朋友郵件”,如果不包含則將郵件歸類為“無需閱讀的垃圾郵件”。

  前面第二篇我們學習的k-近鄰演算法可以完成很多分類任務,但是它最大的缺點就是無法給出資料的內在含義,決策樹的主要優勢在於資料形式非常容易理解。下面我們構造的決策樹演算法能夠讀取資料集合,構建類似於上圖的決策樹。決策樹很多工都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取出一系列規則,機器學習最終將使用這些機器從資料集中創造的規則。專家系統中經常使用決策樹,而且決策樹給出結果往往可以匹敵在當前領域具有幾十年經驗的人類專家。

   現在我們已經大致瞭解了決策樹可以完成哪些任務,接下來我們將學習如何從一堆原始資料中構造決策樹。首先我們討論構造決策樹的方法,以及如何編寫構造樹的Python程式碼;接著提出一些度量演算法成功率的方法;最後使用遞迴建立分類器,並且使用Matplotlib繪製決策樹圖。構造完成決策樹分類器之後,我們將輸入一些隱形眼鏡的處方資料,並由決策樹分類器預測需要的鏡片型別。