挖掘建模-分类与预测-决策树

代码来源:Python数据分析与挖掘实战

分析数据:

#-*- coding: utf-8 -*-
#使用ID3决策树算法预测销量高低

import pandas as pd
from sklearn.tree import DecisionTreeClassifier as DTC
from sklearn.tree import export_graphviz    #跨平台的、基于命令行的绘图工具
from sklearn.externals.six import StringIO

filename = '../data/sales_data.xls'
data = pd.read_excel(filename, index_col=u'序号')    #设置序号为索引项,不然会报错

#数据是类别标签,要将它转换为数据
#用1来表示'好','是','高'这三个属性,用-1来表示'坏','否','低'

data[data==u'好'] = 1    #将数据中为好的值修改为1
data[data==u'是'] = 1
data[data==u'高'] = 1
data[data!=1] = -1     #到此处所有值不是1就是-1
#print(data)

x = data.iloc[:,:3].as_matrix().astype(int)    #取天气、是否周末、是否有促销3列数据作为自变量
y = data.iloc[:,3].as_matrix().astype(int)    #取销量数据作为因变量

dtc = DTC(criterion='entropy')     #建立决策树模型,基于信息熵
dtc.fit(x, y)    #训练模型

x = pd.DataFrame(x)
with open('tree.dot', 'w') as f:
     f = export_graphviz(dtc, feature_names=x.columns, out_file=f)

输出:

生成的tree.dot文件在终端使用gedit打开,修改如下:

命令行下执行:
dot -Tpdf tree.dot -o tree.pdf

dot -Tpng tree.dot -o tree.png

然后使用: eog tree.png打开png文件,使用evince tree.pdf打开pdf文件

猜你喜欢

转载自blog.csdn.net/Ericsson_Liu/article/details/81544630
今日推荐