您的位置:首页 > 其它

决策树

2016-02-23 18:12 393 查看
决策树:(decision tree)是一种基本的分类和回归方法。 由结点(node)和有向边(directed edge)组成,结点分为内部节点(internal node)和叶节点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。

决策树学习 本质 上是从训练数据集中归纳出一组分类规则。

$$ \dot {x} $$

计算信息熵
#to compute the information entropy
from math import log
def calcShannonEnt(dataSet):
numEntries = len(dataSet)
labelCounts = {}
for featVec in dataSet:
currentLabel = featVec[-1]
if currentLabel not in labelCounts.keys():
labelCounts[currentLabel] = 0
labelCounts[currentLabel] += 1
shannonEnt = 0.0
for key in labelCounts:
prob = float(labelCounts[key]) / numEntries
shannonEnt -= prob * log(prob , 2)
return shannonEnt
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
#reload(trees.py)
myDat,labels = createDataSet()
#print myDat


测试代码

#from trees import *
#import trees
import trees

reload(trees)
myDat,labels = trees.createDataSet()
print myDat

print trees.calcShannonEnt(myDat)

myDat[0][-1] = 'maybe'
print trees.calcShannonEnt(myDat)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: