簡體   English   中英

如何可視化“自制”Python 決策樹?

[英]How to visualize "homemade" Python decision tree?

我制作了自己的“決策樹”來找到一組交易的最佳分割。 使用 ttest 和重復出現的 function 使用在該實例的一組可能的分段變量中找到的最重要的分段變量將數據分成兩部分。

output 是這樣的:

('Blue', (('Mid', (42.0, ('Low', (11.64, ('High', (13.55, ('Very Low', (0.0, ('Very High', (3.29, 6.25)))))))))), ('Yellow', (('Mid', (44.39, ('Mid High', (31.61, 13.25)))), ('Mid Low', (47.89, ('Mid', (16.36, ('Very Low', (0.24, ('Low', (6.23, ('Red', (('Mid High', (1.15, ('JA', (0.0, ('Very High', (3.91, ('Low High', (3.76, ('High', (3.21, 1.89)))))))))), ('Low low', (25.33, ('High High', (8.92, ('Mid Mid', (6.28, 3.35))))))))))))))))))))

我怎樣才能對此進行可視化? 我想,類似於決策樹的東西,但不知道如何執行。

使用ete3 ,您可以 plot 將您的樹轉換為 Newick 格式后:

dtree = ('Blue', (('Mid', (42.0, ('Low', (11.64, ('High', (13.55, ('Very Low', (0.0, ('Very High', (3.29, 6.25)))))))))), ('Yellow', (('Mid', (44.39, ('Mid High', (31.61, 13.25)))), ('Mid Low', (47.89, ('Mid', (16.36, ('Very Low', (0.24, ('Low', (6.23, ('Red', (('Mid High', (1.15, ('JA', (0.0, ('Very High', (3.91, ('Low High', (3.76, ('High', (3.21, 1.89)))))))))), ('Low low', (25.33, ('High High', (8.92, ('Mid Mid', (6.28, 3.35))))))))))))))))))))
from ete3 import Tree

def newick(t):
    if type(t) != tuple:
        return f'{t}'
    if type(t[0]) == str:
        return f'({newick(t[1])} {t[0]})'
    return f'({newick(t[0])}, {newick(t[1])})'

t = Tree(f'{newick(dtree)};', format=1)
print(t.get_ascii(show_internal=True))

結果:

在此處輸入圖像描述

還有一個圖形查看器,但我無法顯示內部節點標簽,所以我們現在只能使用 ASCII 藝術。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM