1. 程式人生 > 其它 >用python實現決策樹ID3演算法,對隱形眼鏡型別預測

用python實現決策樹ID3演算法,對隱形眼鏡型別預測

本節講解如何預測患者需要佩戴的隱形眼鏡型別。

1、使用決策樹預測隱形眼鏡型別的一般流程

(1)收集資料:提供的文字檔案(資料來源於UCI資料庫)

(2)準備資料:解析tab鍵分隔的資料行

(3)分析資料:快速檢查資料,確保正確地解析資料內容,使用createPlot()函式繪製最終的樹形圖

(4)訓練演算法:createTree()函式

(5)測試演算法:編寫測試函式驗證決策樹可以正確分類給定的資料例項

(6)使用演算法:儲存數的資料結構,以使下次使用時無需重新構造樹

trees.py如下:

treePlotter.py如下:

12 createPlot.ax1.annotate(nodeTxt,xy=parentPt,xycoords='axes fraction',xytext=centerPt,textcoords='axes fraction',va="center",ha="center",bbox=nodeType,arrowprops=arrow_args)

13 def createPlot():

lenses.txt如下:

執行如下:

由圖看出決策樹非常好地匹配了實驗資料,然而這些匹配選項可能太多。我們將這種問題稱之為過度匹配(overfitting)。為了減少過度匹配問題,我們可以裁剪決策樹,去掉一些不必要的葉子節點。如果葉子節點只能增加少許資訊,則可以刪除該節點,將它併入到其他葉子節點中。