决策树Decision Trees - Introduction(ID3)

你在一生中遇到各种不同的人,在有了一些经验后,你知道自己喜欢哪种类型的人。于是在遇见新人类时,很多时候你可以判断自己是否喜欢它们,通过经验知道的,然后不通过大脑感觉。我们通过建立相似的机制。

我们来假设你遇到了一些人,你不希望vmpires成为你的未来的朋友,所以你做出以下的列表,判断他们是否是吸血鬼。


观察这个数据集后,我们画出一个树来判断是否是吸血鬼


因为画出这棵树可以帮助我们做出选择,所以我们称之为“Decision Tree”,这棵树必须满足所给数据集中的所有数据,并且我们也希望它可以满足以后的所有输入。

但如何构造出这棵树呢?以上的树是通过所及观察画出的。

通过观察我们得出以下结论:

        所有with pale complexion的人都不是吸血鬼

        所有有ruddy complexion和吃garlic的人都不是吸血鬼,如果他们不吃大蒜则是吸血鬼

        所有有average complexion的人,并且他们没有影子或不知道是否有影子的是吸血鬼,否则如果有影子则不是吸血鬼

这是我们通过简单数据判断出的决策树,这种随机的猜测在巨大的数据集上是行不通的,我们需要更加系统的步骤来解决这个问题。

那我们来用贪心算法尝试解决一下!

首先通过看数据集,决定选择哪一个属性作为树的根节点.... 这是个二分类问题,所以在决策树的最后我们可以有两种可能的解决方式,所以每个输入的例子可以分类为真或假两类。这里用P表示positive,是吸血鬼,N表示negative,不是吸血鬼。

我们想要那些把数据分为同类的属性,也就是说,P或N各自存在于一个子集,也就可以区分是否是吸血鬼,这就将是叶子节点。



检查每个特征,观察哪一个在相同集合中有最多的元素,此时找到了shadow?这个属性


shadow这个属性,可以决定一个人是否是吸血鬼,但是如果不清楚是否有shadow则不能判断这个人是否是吸血鬼,我们需要另一个特征在shadow=?时将数据集分开。

当shadow=?时,我们分析得知garlic这个属性将其划分为同质子集,区分了最多的元素。


此时的决策树长这样:


这棵树比我们之前随机选特征得出的树更加简单,所以我们发现贪心算法帮助我们获得更好的结果。但这是正确的方式去做吗?

不是,因为数据集很庞大,我们不需要最终将属性区分到同质集中,我们可能会发现所有的属性元素在同质集中是零个。

ID3 Algorithm

现在我们用ID3算法生成决策树,这运用了Information gain这个概念,是通过entropy熵定义的,熵是在信息理论学中的根本quantity

想象这有通过某个特征区分的两个分类


我们观察到,左边的P和N有相同的数量,所以这不能给我们提供任何判断的提示,但是右边的P大于N,所以它可能会指引我们到P,所以这两个中我们会考虑右边的分类。

所以,我们并不直接给它们打零分,我们说,如果一个分类中P和N有相同的数量的有更高的熵值,最混乱,另一个分类中只有P或只有N,它的熵最低,值为0,表示最不混乱。以下我们可以看到这个图,P/(P+N)和熵值的图

所以,当P=N时,也就是P/(P+N)=0.5时,熵值最大为1,如果P=K(某个int值)&N=0,熵值为0

那计算出这个熵值,得出这个图有没有数学方程呢?幸运的是,这个曲线可以通过以下方差获得:

y=-x\log_2 x -(1-x)log_2 (1-x)

我们可以把x的取值P/(P+N)代入这个熵的形式

Entropy=-\frac{P}{P+N} log_2 (\frac{P}{P+N})-(1-\frac{P}{P+N})log_2 (\frac{P}{P+N})

Entropy=-\frac{P}{P+N}-(\frac{N}{P+N})log_2 (\frac{N}{P+N})

公式中的P 和 N就是根据该特征划分的Ps和Ns的数量,同时我们也想从属性中获取信息熵Information gain,也定义为IG。

IG(Attribute)=Entropy of attribute - Weighted average of Entropy of each child set

IG(S,A)=Entropy(S)-\sum_{t\in T}p(t)Entropy(t)

举个例子



知道了信息熵和熵之后,我们来构建决策树

我们计算出最大的IG信息熵是shadow属性,将其作为根节点


此时我们需要决定另一个属性划分Shadow=?的子集


接着算出garlic的 IG值最大,画出的树如下:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容