欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低

程序员文章站 2022-05-02 20:29:57
...

若按照书上代码运行会出现如下报错(这是因为代码在截取数据时将属性值转为了矩阵):

AttributeError: 'numpy.ndarray' object has no attribute 'columns'

解决办法
方法一:添加代码:x=pd.DataFrame(x)
方法二:将代码:

x=data.iloc[:,:3].as_matrix().astype(int)
y=data.iloc[:,3].as_matrix().astype(int)

改成:

x=data.iloc[:,:3].astype(int)
y=data.iloc[:,3].astype(int)

总体代码:

#引入第三方库及数据读取
import pandas as pd
filename='../data/sales_data.xls'
data=pd.read_excel(filename,index_col=u'序号')

#变量赋值,数据是类别标签,先转换为数据
data[data==u'好']=1
data[data==u'是']=1
data[data==u'高']=1 #用1来表示“好”“是”“高”这三个属性
data[data!=1]=-1 #用-1来表示“坏”“否”“低”
x=data.iloc[:,:3].as_matrix().astype(int)
#筛选切片,选出所有行,第0至第2列的数据赋值给x
y=data.iloc[:,3].as_matrix().astype(int)
#选出所有行,第3列的数据赋值给y

#建立模型并训练模型
from sklearn.tree import DecisionTreeClassifier as DTC
dtc=DTC(criterion='entropy')
dtc.fit(x,y)

#可视化决策树
x=pd.DataFrame(x)
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO
with open("tree.dot",'w') as f:
f=export_graphviz(dtc,feature_names=x.columns,out_file=f)
#运行以上代码后,在存放实验数据的路径下会生成一个tree.dot文件

一、决策树可视化(利用graphviz)

1.选择用记事本打开tree.dot文件,添加以下两行代码用来设置字体:
edge[fontname=“SimHei”];
node[fontname=“SimHei”];

2.将文件另存为utf-8格式,文件名仍为tree.dot

3.在官网上下载graphviz的安装包,安装之后将Path变量添加进路径为安装路径的新变量

4.生成pdf:在命令行输入代码:
dot -Tpdf tree.dot -o tree.pdf
dot -Tjpg tree.dot -o tree.jpg
dot -Tpng tree.dot -o tree.png

具体的3种做法:
(1)打开Anaconda Powershell或者Prompt等(任意一个黑窗口),在命令行中,将路径改为tree.dot所在的路径(先转到文件所在的盘,再输入cd 空格 文件所在路径),并输入代码,如图所示:
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低
(2)在tree.dot所在文件夹的空白处,按住shift,点击鼠标右键,然后点击’选择在此处打开Powershell窗口’,此时的路径为tree.dot所在的路径,直接输入代码:dot -Tpdf tree.dot -o tree.pdf即可得到pdf
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低
(3)在tree.dot所在的文件夹下,选中tree.dot文件,点击上方的路径,全选路径,直接输入cmd,然后回车即可直接跳到命令行窗口,然后输入代码即可
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低
二、实验结果
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低
决策树可视化(sklearn、graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低