600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 决策树可视化(sklearn graphviz)——python数据分析与挖掘实战 5-2 决策树预测销售量高低

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

时间:2019-01-27 23:21:44

相关推荐

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

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

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 pdfilename='../data/sales_data.xls'data=pd.read_excel(filename,index_col=u'序号')#变量赋值,数据是类别标签,先转换为数据data[data==u'好']=1data[data==u'是']=1data[data==u'高']=1 #用1来表示“好”“是”“高”这三个属性data[data!=1]=-1 #用-1来表示“坏”“否”“低”x=data.iloc[:,:3].as_matrix().astype(int)#筛选切片,选出所有行,第0至第2列的数据赋值给xy=data.iloc[:,3].as_matrix().astype(int)#选出所有行,第3列的数据赋值给y#建立模型并训练模型from sklearn.tree import DecisionTreeClassifier as DTCdtc=DTC(criterion='entropy')dtc.fit(x,y)#可视化决策树x=pd.DataFrame(x)from sklearn.tree import export_graphvizfrom sklearn.externals.six import StringIOwith 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 空格 文件所在路径),并输入代码,如图所示:

(2)在tree.dot所在文件夹的空白处,按住shift,点击鼠标右键,然后点击’选择在此处打开Powershell窗口’,此时的路径为tree.dot所在的路径,直接输入代码:dot -Tpdf tree.dot -o tree.pdf即可得到pdf

(3)在tree.dot所在的文件夹下,选中tree.dot文件,点击上方的路径,全选路径,直接输入cmd,然后回车即可直接跳到命令行窗口,然后输入代码即可

二、实验结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。