• 用graphviz可视化决策树


    1.安装graphviz。

    graphviz本身是一个绘图工具软件,下载地址在:http://www.graphviz.org/。如果你是linux,可以用apt-get或者yum的方法安装。如果是windows,就在官网下载msi文件安装。无论是linux还是windows,装完后都要设置环境变量,将graphviz的bin目录加到PATH,比如我是windows,将C:/Program Files (x86)/Graphviz2.38/bin/加入了PATH

    2.安装python插件graphviz。

    python上有支持graphviz使用 的import graphviz

    3.安装python插件pydotplus。

    import pydotplus

    from IPython.display import Image

    这样环境就搭好了,有时候python会很笨,仍然找不到graphviz,这时,可以在代码里面加入这一行:

    os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

    注意后面的路劲是你自己的graphviz的bin目录。

    4、绘图

    #用决策树建模

    clf = tree.DecisionTreeClassifier() #默认的选取最优节点的标准是基尼系数,若想使用信息增益则为entropy
    clf = clf.fit(Xtrain, Ytrain)
    score = clf.score(Xtest, Ytest) #返回预测的准确度
    print(str(clf))
    print(score)

    #用graphviz会画得决策树(没有解决中文乱码的问题???十分苦恼)

    输出PDF至项目文件夹:

    import pydotplus
    import os
    from sklearn.externals.six import StringIO
    os.environ["PATH"] += os.pathsep + 'E:graphvizin'
    dot_data = StringIO()
    tree.export_graphviz(clf #模型
                                ,feature_names= feature_name  #tez
                                ,class_names=["琴酒","雪莉","贝尔摩德"] #类别名
                                ,filled=True    #由颜色标识不纯度
                                ,rounded=True   #树节点为圆角矩形
                                ,out_file=dot_data
                            )
    graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
    graph.write_pdf("wine.pdf") #https://blog.csdn.net/chai_zheng/article/details/78226556

    生成tree.dot文件,再用graphviz生成:

    #生成tree.dot文件
    with open("tree.dot", 'w') as f: f = tree.export_graphviz(clf , feature_names = feature_name # tez , class_names = ["琴酒", "雪莉", "贝尔摩德"] # 类别名 , filled = True # 由颜色标识不纯度 , rounded = True # 树节点为圆角矩形 ,out_file=f)

     a)通过graphviz的exe程序导入dot文件生成相对应的png或者pdf文件

     b)通过命令行dot -Tpdf tree.dot -o output.pdf,dot -Tpng tree.dot -o output.png将dot文件生成png或者pdf文件

  • 相关阅读:
    Linux问题汇总
    Linux问题汇总
    朴素贝叶斯分类器
    捕捉异常信息
    异常处理类
    sqlserver2008链接服务器的使用和oracle11g客户端修改字符集
    抛出异常
    添加水印
    验证码
    sqlserver数据库备份
  • 原文地址:https://www.cnblogs.com/simpleDi/p/9971971.html
Copyright © 2020-2023  润新知