您的位置:首页 > 编程语言 > Python开发

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

2015-06-09 15:41 302 查看
参考书籍:《机器学习实战》

熵的计算

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] += 1
shannonEnt = 0.0
for key in labelCounts:
prob = float(labelCounts[key]) / numEntries
shannonEnt -= prob * log(prob,2)
return shannonEnt


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

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

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

3.for循环语句

4.if 语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: