学习决策树时,发现如果要用python画决策树,python需要导入Graphviz库,看了几篇csdn,发现个别文章不是很全,会出错误,这里简单记录下完整过程。
0.下载Graphviz-2.38.msi
- graphviz-2.38 .msi
- 当然这里你去官网安装其他版本应该也是可以的,我这里没有试,这个版本是旧版本可以用建议就用这个就OK
1.安装Graphviz-2.38.msi
- 这里需要注意下更改下如图
- 安装完毕!
2.配置环境变量
- 找到如图所示路径,复制
- 高级系统设置- 高级-环境变量-用户变量-Path-新建-复制路径-完成(注意这里先配置的是用户变量)
- 用户变量毕!
- 系统变量-把用户变量后的路径加上\dot.exe即可
- 环境配置毕!
3.验证
- cmd输入
dot -version
(一定记得加空格)
- python环境导入Graphviz库
- 输入指令
pip install graphviz
- python输入
import graphviz
跑一下
整体毕!
4.跑个图看看
- 直接上代码
#导入包和库和数据
import pandas as pd
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
wine=load_wine()
print(wine.feature_names)
print(wine.target_names)
#生成DateFrame格式
wine1=pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)
wine1.columns=['alcohol', 'malic_acid', 'ash', 'alcalinity_of_ash', 'magnesium', 'total_phenols', 'flavanoids', 'nonflavanoid_phenols', 'proanthocyanins', 'color_intensity', 'hue', 'od280/od315_of_diluted_wines', 'proline','target']
wine1.head()
#划分数据
Xtrain,Xtest,Ytrain,Ytest=train_test_split(wine.data,wine.target,test_size=0.3)
#建立模型
clf=tree.DecisionTreeClassifier(criterion="entropy") # entropy基尼系数
#训练数据
clf=clf.fit(Xtrain,Ytrain)
#得分
score=clf.score(Xtest,Ytest)
score
#画决策图
#导入库
import graphviz
#特征值重命名
feature_name = ["酒精","苹果酸","灰","灰的碱性","镁","总酚","类黄酮","非黄烷类酚类","花青素","颜色强度","色调","od280/od315稀释葡萄酒","脯氨酸"]
dot_data=tree.export_graphviz(clf
,feature_names=feature_name
,class_names=["琴酒","雪莉","贝尔摩德"]
,filled=True
,rounded=True
)
graph=graphviz.Source(dot_data)
graph
- 生成如图
- 建议用jupyter notebook跑一下如果生成了上图,则表示安装Graphviz完全成功!
5.总结
- 注意环境变量和系统变量都要配置
- anaconda环境中也要pip安装一下这个库
- 最后实战一下如果成功表示安装成功