決策樹繪圖(一)


既然我們掌握了ID3的決策樹算法,但是直接看那個樹形結構可能對於很多人來說,很抽象,這里我就簡單照着機器學習實戰的書上一起來學習下,如何利用python進行繪圖操作,我們引用pyplot這個庫,這個庫來自於matplotlib;記得前面好像我也將結果如何使用這個庫來進行簡單的繪圖,連接是http://blog.csdn.net/xueyunf/article/details/9091719, 

這里講解下如何進行決策樹圖的繪制,首先我們需要繪制箭頭,標注框等東西。這些可以使用annotate函數進行完成,具體參數可以查閱:

http://matplotlib.org/api/axes_api.html?highlight=annotate#matplotlib.axes.Axes.annotate

下面給出代碼:


 

import matplotlib.pyplot as plt
decisionNode = dict(boxstyle="sawtooth", fc="0.8")
leafNode = dict(boxstyle="round4", fc="0.8")
arrow_args = dict(arrowstyle="<-")

def plotNode(nodeTxt, centerPt, parentPt, nodeType):
    createPlot.ax1.annotate(nodeTxt, xy=parentPt,
    xycoords='axes fraction',
    xytext=centerPt, textcoords='axes fraction',
    va="center", ha="center", bbox=nodeType, arrowprops=arrow_args)
    
def createPlot():
    fig = plt.figure(1, facecolor='white')
    fig.clf()
    createPlot.ax1 = plt.subplot(111, frameon=False)
    plotNode('a decision node', (0.5, 0.1), (0.1, 0.5), decisionNode)
    plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)
    plt.show()

createPlot()


第一個函數完成 產生節點,第二個函數調用第一個函數來完成繪圖。

 

下面繼續程序截圖:


O(∩_∩)O~,這個貌似和書中的截圖不一樣,可以確定書中的圖經過了翻譯,但是代碼卻忘了翻譯,也許是譯者的疏忽吧,或者是翻譯過來大家好理解,但是為了尊重原作者,所以代碼沒有修改,怎么理解都好,這不重要,重點是如何完成繪圖。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM