python 实现决策原理_决策树原理的python实现

我们已经知道ID3算法是基于信息增益来实现的,下面就根据原理写出代码:

1.首先计算信息熵

from math import log

# 计算数据集的信息熵,注意,该数据的数据类型是list

def calcShannonEnt(dataset):

numEntries = len(dataset) # 样本数,这里的dataSet是列表

labelCounts = {} #定义一个字典,key为类别,值为类别数

for featVec in dataset: # 统计各个类别的个数

currentLabel = featVec[-1] #最后一列是类别

if currentLabel not in labelCounts.keys(): #主要判断类别中的类别有有没有出现过,如果以前没有出现过,这赋值为0,

labelCounts[currentLabel] = 0

labelCounts[currentLabel] += 1 #用于计算每个类别的个数

shannonEnt = 0.0 # 信息熵

for key in labelCounts:

prob = float(labelCounts[key])/numEntries #记得要将数据转Wie浮点型

shannonEnt -= prob * log(prob,2)

return shannonEnt # 信息熵

2.按照给定特征划分数据集,主要用于

标签:currentLabel,labelCounts,python,shannonEnt,dataset,信息熵,类别,原理,决策树

来源: https://www.cnblogs.com/cgmcoding/p/13558050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值