决策树的Python代码分析(一)

来源:互联网 发布:一个网络协议主要由 编辑:程序博客网 时间:2024/05/22 15:44

参考书籍:《机器学习实战》


熵的计算

from math import log
def calcShannonEnt(dataSet):numEntries = len(dataSet)                               //求dataset的元素个数,dataSet的类型是列表        labelCounts = {}                                        //创建空列表for featVec in dataSet:                                 //对dataSet的每一个元素进行处理currentLabel = featVec[-1]                      //将dataSet的每一个元素的最后一个元素选择出来,dataSet的元素也是列表if currentLabel not in labelCounts.keys():      //对字典的keys方法了解labelCounts[currentLabel] = 0           //若没有该键,则使用字典的自动添加进行添加值为0的项,取0是因为下一行代码labelCounts[currentLabel] += 1shannonEnt = 0.0for key in labelCounts:prob = float(labelCounts[key]) / numEntriesshannonEnt -= prob * log(prob,2)return shannonEnt

熵的计算的代码很容易理解,主要掌握有

1.字典的自动添加能力,字典的keys方法;

2.列表的len的方法,取最后的元素使用-1这个索引值

3.for循环语句

4.if 语句


0 0
原创粉丝点击