admin管理员组

文章数量:1581070

最近学机器学习的决策树部分,使用sklearn.tree.export_graphviz()该函数导出dot格式,但是无法查看dot后缀的文件,需要安装graphviz将dot文件转换为pdf、png格式,电脑是windows10的系统,网上大多都是linux和mac系统。为了以后方便学习,解决办法总结如下:

1.从官网上下载包

网址链接:https://graphviz.gitlab.io/_pages/Download/Download_windows.html


下载任意一个就好,我下载的是第二个压缩包,下载的地址可以任意,我放在了D:\Anaconda\graphviz-2.38

2.配置环境变量

计算机–属性–高级系统设置–环境变量–>D:\Anaconda\graphviz-2.38\bin

配置系统变量D:\Anaconda\graphviz-2.38\bin\dot.exe


3.查看是否成功安装
win+R打开终端,输入dot -version 显示如下则配置成功

决策树程序:

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import pandas as pd


def decision():
    """
    决策树对泰坦尼克号进行生死预测
    :return:None
    """
    titan = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt")
    # 处理数据
    x = titan[['pclass', 'age', 'sex']]
    y = titan['survived']
    # print(x)

    # 缺失值处理
    x['age'].fillna(x['age'].mean(), inplace=True)

    # 先分割数据集到训练集和测试集
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

    # 进行处理one_hot编码
    dict = DictVectorizer(sparse=False)
    x_train = dict.fit_transform(x_train.to_dict(orient='records'))
    print(dict.get_feature_names())
    x_test = dict.transform(x_test.to_dict(orient='records'))
    # print(x_test)

    # 决策树预测
    dec = DecisionTreeClassifier()
    dec.fit(x_train, y_train)
    # 预测准确率
    print("预测准确率:", dec.score(x_test, y_test))
    # 导出决策树结构
    export_graphviz(dec, out_file="./tree.dot",
                    feature_names=['年龄', 'pclass=1st', 'pclass=2nd',
                                   'pclass=3rd', '女性', '男性'] )


if __name__ == '__main__':
    decision()

程序成功运行,并生成了tree.dot文件

然后在终端上切换到文件路径,输入dot -Tpng tree.dot -o tree.png

则在文件中生成了一个tree.png的照片

说明已经安装成功。

本文标签: 解决办法Graphviz