自己尝试使用简单数据集实现决策树 代码——《机器学习实战》

记录学习过程,每天学会一点点,早日玩转机器学习......(手动呵呵微笑)。

一.核心代码

 1.数据集部分

上图为所给的海洋生物数据,则以1代表可以付出水面、有脚蹼;0代表无法浮出水面、无脚蹼;yes为属于鱼类、no为不属于鱼类

 则创建数据集的代码可以表示为:

from math import log
"""
加载得到简单的鉴定鱼的数据集
"""
def createDataSet():
    #根据所给的数据表构造数据集
    dataSet = [[1,1,'yes'],
               [1,1,'yes'],
               [1,0,'no'],
               [0,1,'no'],
               [0,1,'no']]
    labels = ['no surfacing','flippers']#两个标签:是否浮出水面、是否有蹼
    return dataSet,labels

实例化测试一下结果:

myData,labels = createDataSet()
print(myData)

打印为:

2.计算香农熵的部分

前面几篇博客已经讲过香农熵的计算公式,下面用代码实现一下计算过程,其实无非就是用代码实现一下计算公式,仔细看就能看得懂,相关部分我也做了注释。记住,每一个键值都是记录当前类别在数据集中出现的次数,那一个if语句的意思就是:在遍历的过程中,如果这个键值不存在,就从这一步开始扩展它,记下来,如果存在,则把计数的参数更新一下,即做加一处理,留作下面计算概率。后面就接着计算每一个类别出现的概率,并使用这个概率去计算香农熵:

"""
计算香农熵
"""
def calShannonEnt(dataSet):
    numEntries = len(dataSet)#长度
    labelCounts = {}
#为所有可能类别创建字典,它的键值是最后一列的数值,如果当前键值不存在,则扩展字典并将当前键值加入字典。
#!!!每一个键值都是记录当前类别在数据集中出现的次
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值