用python實現決策樹ID3演算法,對隱形眼鏡型別預測
阿新 • • 發佈:2022-05-04
本節講解如何預測患者需要佩戴的隱形眼鏡型別。
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)。為了減少過度匹配問題,我們可以裁剪決策樹,去掉一些不必要的葉子節點。如果葉子節點只能增加少許資訊,則可以刪除該節點,將它併入到其他葉子節點中。