Pycharm Python无法可视化决策树

时间:2018-12-13 10:33:05

标签: python pycharm visualization graphviz decision-tree

我一直在尝试建立我的第一个决策树可视化。我已经能够创建算法,甚至可以计算出算法的准确性,但是我从未设法对节点拆分产生很好的可视化效果。我在互联网上找到了这段代码:

import pandas as pd

df = pd.read_csv('data_clean.csv')
print(df.columns)
y = df['OR']
x = df.drop(['OR', 'Unnamed: 0'], axis=1)

print(y.head())
print(x.head())

from sklearn.tree import DecisionTreeClassifier
dtree = DecisionTreeClassifier()
dtree.fit(x, y)

from sklearn.externals.six import StringIO
from IPython.display import Image, display
from sklearn.tree import export_graphviz
import pydotplus
dot_data = StringIO()
export_graphviz(dtree, out_file=dot_data,
                filled=True, rounded=True,
                special_characters=True)
G = pydotplus.graph_from_dot_data(dot_data.getvalue())
plt = Image(G.create_png())
display(plt)

除了在控制台中,它没有提供任何有价值的输出(尤其是错误):

/Users/arturdzieciol/anaconda3/envs/uniqa_scenarios/bin/python /Users/arturdzieciol/PycharmProjects/drzewo_decyzyjne/titanic_kaggle.py
Index(['Unnamed: 0', 'OR', 'production_year', 'mileage', 'car_worth',
       'main_driver_age'],
      dtype='object')
0    0
1    1
2    1
3    1
4    0
Name: OR, dtype: int64
   production_year   mileage  car_worth  main_driver_age
0           2000.0  198500.0     4770.0             59.0
1           2003.0  156000.0     7380.0             44.0
2           2014.0   30530.0    43080.0             46.0
3           2007.0  223000.0    16040.0             31.0
4           2003.0  380000.0     6930.0             42.0
<IPython.core.display.Image object>

Process finished with exit code 0

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

我今天遇到了同样的问题,无法找到正确的解决方案。但是我尝试了一件对我来说很好的事情,它创建了一个单独的决策树png图像

G.write_png("iris.png")

答案 1 :(得分:0)

我使用matplotlib将决策树生成为图像。

fig = plt.figure(figsize=(25, 20))
_ = plot_tree(dtree,
              filled=True,
              rounded=True,
              class_names=["alpha", "beta"]
              )

fig.savefig("tree.png")