没有合适的资源?快使用搜索试试~ 我知道了~
决策树,决策树算法及Python实现内含PYTHON源码决策树算法及Python实现内含PYTHON源码
资源推荐
资源详情
资源评论
决策树算法及Python实现
1 什么是
决策树( Tree)是⼀种基本的分类与回归⽅法,本⽂主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表⽰基于特征对数据
进⾏分类的过程。它可以认为是if-then规则的集合。每个内部节点表⽰在属性上的⼀个测试,每个分⽀代表⼀个测试输出,每个叶节点代表
⼀种类别。
决策树的优点:
1)可以⾃学习。在学习过程中不需要使⽤者了解过多的背景知识,只需要对训练进⾏较好的标注,就能进⾏学习。
2)决策树可读性好,具有描述性,有助于⼈⼯分析;
3)效率⾼,决策树只需要⼀次构建,就可以反复使⽤,每⼀次预测的最⼤计算次数不超过决策树的深度。
举⼀个通俗的例⼦,假设⼀位母亲在给⼥⼉介绍对象时,有这么⼀段对话:
母亲:给你介绍个对象。
⼥⼉:年纪多⼤了?
母亲:26。
⼥⼉:长的帅不帅?
母亲:挺帅的。
⼥⼉:收⼊⾼不?
母亲:不算很⾼,中等情况。
⼥⼉:是公务员不?
母亲:是,在税务局上班呢。
⼥⼉:那好,我去见见。
这个⼥⽣的决策过程就是典型的分类决策树。相当于对年龄、外貌、收⼊和是否公务员等特征将男⼈分为两个类别:见或者不见。假设这个
⼥⽣的决策逻辑如下:
上图完整表达了这个⼥孩决定是否见⼀个约会对象的策略,其中绿⾊结点(内部结点)表⽰判断条件,橙⾊结点(叶结点)表⽰决策结果,
箭头表⽰在⼀个判断条件在不同情况下的决策路径,图中红⾊箭头表⽰了上⾯例⼦中⼥孩的决策过程。
这幅图基本可以算是⼀棵决策树,说它“基本可以算”是因为图中的判定条件没有量化,如收⼊⾼中低等等,还不能算是严格意义上的决策
树,如果将所有条件量化,则就变成真正的决策树了。
2 构建决策树
2.1 构建决策树的基本步骤
决策树构建的基本步骤如下:
1. 开始,所有记录看作⼀个节点
2. 遍历每个特征的每⼀种分裂⽅式,找到最好的分裂特征(分裂点)
3. 分裂成两个或多个节点
4. 对分裂后的节点分别继续执⾏2-3步,直到每个节点⾜够“纯”为⽌
如何评估分裂点的好坏?如果⼀个分裂点可以将当前的所有节点分为两类,使得每⼀类都很“纯”,也就是同⼀类的记录较多,那么就是⼀
个好分裂点。
具体实践中,到底选择哪个特征作为当前分裂特征,常⽤的有下⾯三种算法:
ID3:使⽤信息增益g(D,A)进⾏特征选择
C4.5:信息增益率 =g(D,A)/H(A)
CART:基尼系数
⼀个特征的信息增益(或信息增益率,或基尼系数)越⼤,表明特征对样本的熵的减少能⼒更强,这个特征使得数据由不确定性到确定性的能
⼒越强。
2.2 构建决策树例⼦
下⾯就以⼀个经典的打⽹球的例⼦来说明如何构建决策树。我们今天是否去打⽹球(play)主要由天⽓(outlook)、温度
(temperature)、湿度(humidity)、是否有风(windy)来确定。样本中共14条数据。
NO. Outlook temperature humidity windy play
1 sunny hot high FALSE no
2 sunny hot high TRUE no
3 overcast hot high FALSE yes
4 rainy mild high FALSE yes
5 rainy cool normal FALSE yes
6 rainy cool normal TRUE no
7 overcast cool normal TRUE yes
8 sunny mild high FALSE no
9 sunny cool normal FALSE yes
10 rainy mild normal FALSE yes
11 sunny mild normal TRUE yes
12 overcast mild high TRUE yes
13 overcast hot normal FALSE yes
14 rainy mild high TRUE no
下⾯将分别介绍使⽤ID3和C4.5算法构建决策树。
2.2.1 使⽤ID3算法构建决策树
ID3算法是使⽤信息增益来选择特征的。
2.2.1.1 信息增益的计算⽅法
信息增益的计算⽅法如下:
1、计算数据集D的经验熵
其中|D|是数据集中所有样本个数,k是⽬标变量的类别数,|Ck |是该分类下的样本个数。
2、遍历所有特征,对于特征A:
计算特征A对数据集D的经验条件熵H(D|A)
计算特征A的信息增益g(D,A)=H(D)-H(D|A)
选择信息增益最⼤的特征作为当前分裂特征。
2.2.1.2 计算是否打球的经验熵
剩余11页未读,继续阅读
资源评论
emma20080101
- 粉丝: 1077
- 资源: 5281
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功