决策树
来源:互联网 发布:tcp 长连接 java 框架 编辑:程序博客网 时间:2024/06/05 21:00
ID3
公式
设D为用类别对训练元组进行的划分,则D的熵(entropy)表示为:
info(D)=−∑i=1npilogpi(1)
现在我们假设将训练元组D按属性A进行划分,则A对D划分的期望信息为:
infoA(D)=∑i=jv|Dj||D|info(Dj)(2)
信息增益:
gain(A)=info(D)−infoA(D)(3) ID3算法就是在每次需要分裂时,计算每个属性的增益率,然后选择增益率最大的属性进行分裂。下面我们继续用SNS社区中不真实账号检测的例子说明如何使用ID3算法构造决策树。
例子
其中s、m和l分别表示小、中和大。
设L、F、H和R表示日志密度、好友密度、是否使用真实头像和账号是否真实,下面计算各属性的信息增益:
因此日志密度的信息增益是0.276。
用同样方法得到H和F的信息增益分别为0.033和0.553。
因为F具有最大的信息增益,所以第一次分裂选择F为分裂属性。
C4.5算法
ID3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。ID3的后继算法C4.5使用增益率(gain ratio)的信息增益扩充,试图克服这个偏倚。
公式
C4.5算法首先定义了“分裂信息”,其定义可以表示成:
其中各符号意义与ID3算法相同,然后,增益率被定义为:
例子
C4.5选择具有最大增益率的属性作为分裂属性,其具体应用与ID3类似,不再赘述。
CART
CART算法采用一种二分递归分割的技术,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树。
决策树分为分类决策树(目标变量为分类型数值)和回归决策树(目标变量为连续型变量)。分类决策树叶节点所含样本中,其输出变量的众数就是分类结果;回归树的叶节点所含样本中,其输出变量的平均值就是预测结果。
公式
1)分类:基尼系数:
Gini(P)=∑i=1nPi(1−Pi)=1−∑i=1nP2i(6)
现在我们假设将训练元组D按属性A进行划分,则A对D划分的基尼系数为:
GiniA(D)=∑j=12|Dj||D|Gini(Dj)(7)
2)回归:回归方差:
σ=∑i=1n(xi−u)2−−−−−−−−−−√=∑i=1nx2i−u2−−−−−−−−−√(8)
u 是均值,方差越大,表示该节点的数据越分散,预测的效果就越差。
现在我们假设将训练元组D按属性A进行划分,则A对D划分的回归方差为:
Gain(D)=∑j=12σ(Dj)(9)
例子
以属性“职业”为例,一共有三个离散值,“学生”、“老师”、“上班族”。该属性有三种划分的方案,分别为{“学生”}、{“老师”、“上班族”},{“老师”}、{“学生”、“上班族”},{“上班族”}、{“学生”、“老师”},分别计算三种划分方案的子节点GINI值或者样本方差,选择最优的划分方法
第一种划分方法:{“学生”}、{“老师”、“上班族”}:
预测是否已婚(分类),根据(7):
预测年龄(回归),根据(9):
运用相同的算法,求出下面的数据。
第二种划分方法:{“老师”}、{“学生”、“上班族”}:
预测是否已婚(分类),根据(7):
预测年龄(回归),根据(9):
第三种划分方法:{“上班族”}、{“学生”、“老师”}:
预测是否已婚(分类),根据(7):
预测年龄(回归),根据(9):
综上,如果想预测是否已婚,则选择{“上班族”}、{“学生”、“老师”}的划分方法,如果想预测年龄,则选择{“老师”}、{“学生”、“上班族”}的划分方法。
剪枝
待续。。。。
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- R语言编程技术(1)
- spark-streaming 编程(六)mapwithState
- ActivityMQ 事务
- 小米抢购限流峰值系统「大秒」架构解密2
- 移动敏捷开发介绍
- 决策树
- [Java]复习笔记(二)--环境变量
- Debug与Release版本的区别
- 12.持久化RDB、AOF
- 滴滴校招 餐馆最大收益问题
- 我的新博客地址以及文章列表
- Java中常见的WEB服务器介绍
- 关于sql模糊查询的下划线问题
- 奥威Power-BI软件之城投集团-项目延期明细