pydotplus的安装、基本入门和决策树的可视化

1 说明
=====
1.1 pydotplus是旧pydot项目的一个改进版本 , 它为graphviz的点语言提供了一个python接口 。
1.2 复习一下:
1.2.1 pydot已经淘汰了 , 不再更新了 。
1.2.2 Dot是开源工具包Graphviz上用来画图的一门脚本语言 , 本次不介绍了 。
1.3 提到基本绘制图形 , dot语法类似 , 泰坦尼克号决策树的可视化;讲解清楚 , 注释仔细 , 通俗易懂 , 适合收藏 。
pydotplus的安装、基本入门和决策树的可视化文章插图
【pydotplus的安装、基本入门和决策树的可视化】2 介绍
=====
2.1 官网:
2.2 安装:
pip install pydotplus#本机安装sudo pip3.8 install pydotplus2.3 有时候可能需要安装graphviz:
pip install graphviz#注意环境变量设置3 效果展示
========
3.1 入门级图1
pydotplus的安装、基本入门和决策树的可视化文章插图
3.2 图1代码:
import pydotplus as pdp#方法一 , 单引号#graph = pdp.graph_from_dot_data('digraph demo1{a -> b -> c; c ->a; }')#方法二 , 双引号graph = pdp.graph_from_dot_data('''digraph demo1{a -> b -> c; c ->a; }''')#生成jpg图片#graph.write_jpg('/home/xgj/Desktop/pydotplus/3dot.jpg')#生成png图片graph.write_png('/home/xgj/Desktop/pydotplus/3dot.png')#生成pdf文件#graph.write_pdf('/home/xgj/Desktop/pydotplus/3dot.pdf')3.3 图2
pydotplus的安装、基本入门和决策树的可视化文章插图
3.4 图2代码
import pydotplus as pdp#语法符合原dot语法dot = '''//定义节点属性digraph g {//==========定义节点关系============a->b;b->c;c->a;c->d->e->f;d->g;e->h;//==========定义节点属性============//定义a节点为长方形, 样式为填充, 填充颜色为#ABACBAa[shape=box,label="Server1\nWebServer",fillcolor="#ABACBA",style=filled];//定义b为5边形, 标签为"bb", 样式为填充, 填充色为redb[shape=polygon,sides=5,label="bb",style=filled,fillcolor=red];//c, 默认为椭圆d[shape=circle,label="加油",fontname="Microsoft YaHei"]; //圆e[shape=triangle]; //三角形f[shape=polygon, sides=4, skew=0.5]; //平行四边形g[shape=polygon, distortion=0.5]; //梯形, 上边长h[shape=polygon, distortion=-.5]; //梯形, 下边长}'''graph = pdp.graph_from_dot_data(dot)graph.write_jpg('/home/xgj/Desktop/pydotplus/4dot.jpg')3.5 图3
pydotplus的安装、基本入门和决策树的可视化文章插图
3.6 图3代码:
import pydotplus as pdpdot_cn = """digraph demo{node [shape=box, style="rounded", color="black", fontname="Microsoft YaHei"];edge [fontname="Microsoft YaHei"];a -> b[label="哈尼"]a[label="你好么?"]b[label="我很好!"]}"""graph = pdp.graph_from_dot_data(dot_cn)graph.write_jpg('/home/xgj/Desktop/pydotplus/5dot.jpg')4 泰坦尼克号的决策树
=================
4.1 效果图
pydotplus的安装、基本入门和决策树的可视化文章插图
4.2 注意
======
4.2.1 决策树是机器学习中一个比较重要而且常用的算法, 是基于香农的信息论计算信息熵然后计算信息增益 。
4.2.2 参考文章:
#;depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf4.2.3 数据集:打开网页 , 复制 , 并修改txt为csv
4.3 代码:
import numpy as npimport pandas as pdfile_path = "/home/xgj/Desktop/pydotplus/titanic.csv"data = http://kandian.youth.cn/index/pd.read_csv(file_path)data["age"].isnull().sum()# 年龄有680个缺失值x = data[["pclass", "age", "sex"]]y = data["survived"]x["age"].fillna(x["age"].mean(), inplace=True)# 用平均年龄来填充缺失值from sklearn.model_selection import train_test_split# 导入数据集分割from sklearn.feature_extraction import DictVectorizer# 导入特征工程from sklearn.tree import DecisionTreeClassifier# 导入决策树分类器x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)# 分割数据info = DictVectorizer(sparse=False)# 特征工程x_train = info.fit_transform(x_train.to_dict(orient="records"))x_test = info.fit_transform(x_test.to_dict(orient="records"))dec = DecisionTreeClassifier(max_depth=5)dec.fit(x_train, y_train)dec.score(x_test, y_test)dec.predict(x_test[0: 1])# 进行测试预测from sklearn import treeimport pydotplus# 可视化dot_data = http://kandian.youth.cn/index/tree.export_graphviz(dec, out_file=None,filled=True, rounded=True,special_characters=True)graph = pydotplus.graph_from_dot_data(dot_data)graph.get_nodes()[7].set_fillcolor("#FFF2DD")graph.write_png("/home/xgj/Desktop/pydotplus/graph7.png")5 加载sklearn自身数据集
===================
5.1 效果图
pydotplus的安装、基本入门和决策树的可视化文章插图