前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >决策树

决策树

作者头像
用户1733462
发布2018-06-01 16:30:56
5490
发布2018-06-01 16:30:56
举报
文章被收录于专栏:数据处理数据处理
  • 决策树归纳的基本算法是贪心算法,它以自顶向下递归各个击破的方式构造决策树。
  • 贪心算法:在每一步选择中都采取在当前状态下最好的选择。
  • 在其生成过程中,分割方法即属性选择度量是关键。通过属性选择度量,选择出最好的将样本分类的属性。
  • 根据分割方法的不同,决策树可以分为两类:基于信息论的方法(较有代表性的是ID3、C4.5算法等)和最小GINI指标方法(常用的有CART,SLIQ及SPRINT算法等)。

前面已经学习了预备知识信息量Gini index

ID3算法

ID3的属性选择度量就是使用信息增益,选择最高信息增益的属性作为当前节点的测试属性。

p是parent node首字母,

IG表示信息增益,

f表示特征,

D_p代表父节点数据集,

D_j表示子节点j的数据集,

N_p表示父节点样本个数

N_j表示子节点j样本个数

下面举个例子

Outlook

Temperature

Humidity

Windy

Play

sunny

hot

high

false

no

sunny

hot

high

true

no

overcast

hot

high

false

yes

rain

mild

high

false

yes

rain

cool

normal

false

yes

rain

cool

normal

true

no

overcast

cool

normal

true

yes

sunny

mild

high

false

no

sunny

cool

normal

false

yes

rain

mild

normal

false

yes

sunny

mild

normal

true

yes

overcast

mild

high

true

yes

overcast

hot

normal

false

yes

rain

mild

high

true

no

可以把上面数据存入excel,然后使用pandas读出来,pandas可以无缝对接excel,简直太方便了

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = pd.read_excel("decision.xlsx")
print df

输出就是下面这样子

现在来计算‘Outlook’特征信息增益

代码语言:javascript
复制
import pandas as pd
import numpy as np
from collections import defaultdict
df = pd.read_excel("decision.xlsx")
#print df.dtypes
#print df.columns
#print df[df.columns[0]]
print df.index,df.shape
def I(future,label):
    df.columns
    d = defaultdict(lambda:[0,0])
    for f,l in zip(df[future], df[label]):
        if l == 'yes':
            d[f][0] += 1
        else:
            d[f][1] += 1
    return d
I('Outlook', 'Play')                
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.10.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ID3算法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档