编程语言
首页 > 编程语言> > 决策树原理的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