
数据挖掘实验——决策树归纳
实验报告改的,仅供参考,可拿去水作业
一、实验目的
决策树分类法是一种简单但却广泛使用的分类技术。本实验主要目的是培养学生能够掌握决策树归纳法,并用python程序实现决策树分类法对数据进行分类。
二、实验要求
学习掌握数据分类方法中的决策树归纳法。
三、实验内容
就餐饮企业而言,经常会碰到这样的问题:如何基于天气(好天气:1,坏天气:-1)、节假日(是周末:1,不是周末:-1)和是否有促销(有促销:1,没有促销:-1)等影响因素,对菜品销量进行预测。根据下表给定的餐饮销量数据,使用基于信息熵的决策树算法(ID3算法)对菜品销量的高低进行预测。
要求:需要对所构建的决策树进行可视化,可以直接调用决策树相关函数。
参考资料:
[1]https://blog.csdn.net/weixin_48077303/article/details/115178755
[2]https://www.cnblogs.com/lifz-ml/p/15526494.html
[3]https://www.csdn.net/tags/MtjaEgxsMTYzMDMtYmxvZwO0O0OO0O0O.html
[4]https://zhuanlan.zhihu.com/p/403848058
表1 餐饮销量数据
序号 |
天气 |
是否周末 |
是否有促销 |
销量 |
1 |
-1 |
1 |
1 |
高 |
2 |
-1 |
1 |
1 |
高 |
3 |
-1 |
1 |
1 |
高 |
4 |
-1 |
-1 |
1 |
高 |
5 |
-1 |
1 |
1 |
高 |
6 |
-1 |
-1 |
1 |
高 |
7 |
-1 |
1 |
-1 |
高 |
8 |
1 |
1 |
1 |
高 |
9 |
1 |
1 |
-1 |
高 |
10 |
1 |
1 |
1 |
高 |
11 |
1 |
1 |
1 |
高 |
12 |
1 |
1 |
1 |
高 |
13 |
1 |
1 |
1 |
高 |
14 |
-1 |
1 |
1 |
低 |
15 |
1 |
-1 |
1 |
高 |
16 |
1 |
-1 |
1 |
高 |
17 |
1 |
-1 |
1 |
高 |
18 |
1 |
-1 |
1 |
高 |
19 |
1 |
-1 |
-1 |
高 |
20 |
-1 |
-1 |
-1 |
低 |
21 |
-1 |
-1 |
1 |
低 |
22 |
-1 |
-1 |
1 |
低 |
23 |
-1 |
-1 |
1 |
低 |
24 |
-1 |
-1 |
-1 |
低 |
25 |
-1 |
1 |
-1 |
低 |
26 |
1 |
-1 |
1 |
低 |
27 |
1 |
-1 |
1 |
低 |
28 |
-1 |
-1 |
-1 |
低 |
29 |
-1 |
-1 |
-1 |
低 |
30 |
1 |
-1 |
-1 |
低 |
31 |
-1 |
1 |
-1 |
低 |
32 |
1 |
-1 |
1 |
低 |
33 |
1 |
-1 |
-1 |
低 |
34 |
1 |
-1 |
-1 |
低 |
四、实验结果和分析
代码部分
import pandas as pd
inputfile = './sales_data.xls'
data = pd.read_excel(inputfile, index_col=u'序号') # 导入数据以序号为索引列
data[data == u'高'] = 1 # 把高和非高换为1和-1
data[data != 1] = -1
x = data.iloc[:, :3].values.astype(int)
y = data.iloc[:, 3].values.astype(int)
print('x:')
print(x)
print("")
print('y:')
print(y)
from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy') # 建立决策树模型,基于信息熵
dtc.fit(x, y) # 训练模型
# 导入相关函数,可视化决策树。
from sklearn.tree import export_graphviz
x = pd.DataFrame(x)
x = pd.DataFrame(x)
with open("./tree.dot", 'w') as f:
f = export_graphviz(dtc, feature_names=x.columns, out_file=f)
运行结果
x:
[[-1 -1 -1]
[-1 1 1]
[-1 1 1]
[-1 1 1]
[-1 -1 1]
[-1 1 1]
[-1 -1 1]
[-1 1 -1]
[ 1 1 1]
[ 1 1 -1]
[ 1 1 1]
[ 1 1 1]
[ 1 1 1]
[ 1 1 1]
[-1 1 1]
[ 1 -1 1]
[ 1 -1 1]
[ 1 -1 1]
[ 1 -1 1]
[ 1 -1 -1]
[-1 -1 -1]
[-1 -1 1]
[-1 -1 1]
[-1 -1 1]
[-1 -1 -1]
[-1 1 -1]
[ 1 -1 1]
[ 1 -1 1]
[-1 -1 -1]
[-1 -1 -1]
[ 1 -1 -1]
[-1 1 -1]
[ 1 -1 1]
[ 1 -1 -1]
[ 1 -1 -1]]
y:
[-1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
Process finished with exit code 0
实验分析


更多推荐
所有评论(0)