机器学习-决策树实现-python

今天翻自己的书库的时候,才发现了之前买的一本《机器学习导论》。随手翻了翻,就直接看到了之前看到的决策树实现的问题理论。

闲来无事,也就得写点代码来play 一下:

决策树的概念想必大家都十分熟悉,特别想我们小时候玩的跳方格的游戏。或者说我们之前玩的你猜我猜的游戏,猜不对继续猜,总有一天你会猜对额

为了确定从哪一个特征来进行判别,我们需要一个衡量标准来分类。

 

1…香农熵

2…信息增益

那我们来实现第一个……香农熵

 

from math import log 
def calcShannonEnt(dataset)
       numEntries =len(dataset):
        labelCounts={}
        for featureVector  in dataset :
        currentLabel=featVec[-1]
        if currentLabel not in labelCounts.keys():
            labelCounts[currentLabel]=0
        labelCounts[currentLabels]+=1
shannonEnt=0.0
for key in labelCounts:
        prob=float(labelCounts[key])/numEntries
        shannonEnt-=prob*log(prob,2)
return shannonEnt

 这个代码借鉴了机器学习实战的代码,事实上该段代码具有可重复利用性。

posted @ 2016-06-15 11:18  shawn-KKT  阅读(330)  评论(0编辑  收藏  举报