PML决策树

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PML决策树相关的知识,希望对你有一定的参考价值。

决策树(Decision Tree):决策树使用之前的决策来计算是否愿意去看喜剧演员的几率。

age表示年龄,Experience表示演员的经验,Rank表示演员的排名,Nationality表示演员所在的国家,Go表示是否应该去看

AgeExperienceRankNationalityGo
36109UKNO
42124USANO
2346NNO
5244USANO
43218USAYES
44145UKNO
6637NYES
35149UKYES
52137NYES
3559NYES
2435USANO
1837UKYES
4599UKYES

 

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 包不能使用pipconda进行安装,否则安装完成后使用时报下面这种错误:
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决策树的主要内容,如果未能解决你的问题,请参考以下文章

万万想不到 10行代码搞定一个决策树

如何在 Python 中绘制回归树

pml界面设计器

sklearn决策树算法DecisionTreeClassifier(API)的使用以及决策树代码实例 - 莺尾花分类

机器学习:通俗易懂决策树与随机森林及代码实践

决策树的几种类型差异及Spark 2.0-MLlibScikit代码分析