PML决策树
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PML决策树相关的知识,希望对你有一定的参考价值。
决策树(Decision Tree):决策树使用之前的决策来计算是否愿意去看喜剧演员的几率。
age表示年龄,Experience表示演员的经验,Rank表示演员的排名,Nationality表示演员所在的国家,Go表示是否应该去看
Age | Experience | Rank | Nationality | Go |
36 | 10 | 9 | UK | NO |
42 | 12 | 4 | USA | NO |
23 | 4 | 6 | N | NO |
52 | 4 | 4 | USA | NO |
43 | 21 | 8 | USA | YES |
44 | 14 | 5 | UK | NO |
66 | 3 | 7 | N | YES |
35 | 14 | 9 | UK | YES |
52 | 13 | 7 | N | YES |
35 | 5 | 9 | N | YES |
24 | 3 | 5 | USA | NO |
18 | 3 | 7 | UK | YES |
45 | 9 | 9 | UK | YES |
import pandas
from sklearn import tree
import pydotplus
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import matplotlib.image as pltimg
#加载数据
df = pandas.read_csv("shows.csv")
#将字符串值更改为数值
d = {'UK': 0, 'USA': 1, 'N': 2}
df['Nationality'] = df['Nationality'].map(d)
d = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map(d)
#X是功能列,y是目标列
features = ['Age', 'Experience', 'Rank', 'Nationality']
X = df[features]
y = df['Go']
#创建决策树,将其另存为图像,然后显示该图像:
dtree = DecisionTreeClassifier()
dtree = dtree.fit(X, y)
data = tree.export_graphviz(dtree, out_file=None, feature_names=features)
graph = pydotplus.graph_from_dot_data(data)
graph.write_png('mydecisiontree.png')
img=pltimg.imread('mydecisiontree.png')
imgplot = plt.imshow(img)
plt.show()
报错:
F:\\开发工具\\pythonProject\\tools\\venv\\Scripts\\python.exe F:/开发工具/pythonProject/tools/bys/ml04.py
Traceback (most recent call last):
File "F:\\开发工具\\pythonProject\\tools\\bys\\ml04.py", line 26, in <module>
graph.write_png('mydecisiontree.png')
File "F:\\开发工具\\pythonProject\\tools\\venv\\lib\\site-packages\\pydotplus\\graphviz.py", line 1810, in <lambda>
prog=self.prog: self.write(path, format=f, prog=prog)
File "F:\\开发工具\\pythonProject\\tools\\venv\\lib\\site-packages\\pydotplus\\graphviz.py", line 1918, in write
fobj.write(self.create(prog, format))
File "F:\\开发工具\\pythonProject\\tools\\venv\\lib\\site-packages\\pydotplus\\graphviz.py", line 1959, in create
raise InvocationException(
pydotplus.graphviz.InvocationException: GraphViz's executables not found
Process finished with exit code 1
Graphviz是AT&T Labs Research开发的结构化图形绘制工具,支持多种格式输出。它的输入是一个用dot语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点,边以及子图,然后根据属性进行绘制。因此可利用Graphviz可以将Sklearn生成dot格式的决策树可视化。
Graphviz 包不能使用pip
或conda
进行安装,否则安装完成后使用时报下面这种错误:pydot.InvocationException: GraphViz’s executables not found:
下载地址:http://www.graphviz.org/download/
打开点击next
默认安装,然后把 bin
默认安装路径C:\\Program Files (x86)\\Graphviz2.38\\bin
添加到系统环境变量PATH就可以使用了。
重启pychar,重启win10
以上是关于PML决策树的主要内容,如果未能解决你的问题,请参考以下文章