实验四 决策树

代码地址 Github

题目:

某连锁餐饮企业想了解周末和非周末对销量是否有很大影响,以及天气好坏、是否有促销活动对销量的影响,从而公司的辅助决策。现有单个门店的历史数据。请按要求完成实验。建议使用python 编程实现。

数据集:

文件ex3data.xls 为该实验的数据集,第1-5 列分别表示序号、天气好坏、是否周末、是否有促销和销量高低。

实验要求:

选择ID3、C4.5、CART 三种常见决策树算法中的一种建立决策树模型,并画出决策树。(采用多种算法实现并进行算法的比较分析者,将获得更高分数)

文件的读取:

本次文件不是之前的txt文件,而是excel文件。所以需要重写readfile函数。

def read_xls_file():                            #读取excel文件
    data = xlrd.open_workbook('./ex3data.xls')  #打开文件
    sheet1 = data.sheet_by_index(0)             #获取sheet
    m = sheet1.nrows                            #获取行大小
    n = sheet1.ncols                            #获取列大小
    dataMat = []                         
    label = []                                  #标签
    for i in range(m):                          #枚举每一行
        row_data = sheet1.row_values(i)         #获取一行数据
        del(row_data[0])                        #删除第一列元素
        if(i == 0):                             #标签
           label = row_data                     #获取标签 
        elif(i > 0 ):                           #其他数据      
           dataMat.append(row_data)
    return dataMat,label

得到特征:

这里写图片描述

得到数据:
这里写图片描述

决策树模型

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个类。分类的时候,从根节点开始,当前节点设为根节点,当前节点必定是一种特征,根据实例的该特征的取值,向下移动,直到到达叶节点,将实例分到叶节点对应的类中。

决策树学习

决策树学习算法包含特征选择、决策树的生成与剪枝过程。决策树的学习算法一般是递归地选择最优特征,并用最优特征对数据集进行分割。开始时,构建根节点,选择最优特征,该特征有几种值就分割为几个子集,每个子集分别递归调用此方法,返回节点,返回的节点就是上一层的子节点。直到数据集为空,或者数据集只有一维特征为止。

信息熵

对于一个可能有n种取值的随机变量:
这里写图片描述

其熵为:
这里写图片描述

X的熵与X的值无关,只与分布有关,所以也可以将X的熵记作H(p),即:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机的小粽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值