决策树
来源:互联网 发布:淘宝网创立时间 编辑:程序博客网 时间:2024/06/06 18:31
决策是机器学习中分类算法中一种,因为经实验样本训练出一个类似树形的决策规则而由此得名。这种分类算法虽然简单,但是在人类的模式识别中也经常用到,比如给出一个矩形,我们首先判断这是一个平面图形,进而判断这个图形每两条边平行,并且长和宽相等,最终得出矩形。这个算法有一个缺点,就是不能自学习,即只能识别已经学习到的模式,对于新的模式,此算法很可能无法正确做出判断。
在讲到决策树之前,给出信息熵及相关的一些概念,这些主要用于如何挑选局部最优的决策规则,当然还有其它一些衡量决策规则的方法,在此不一一列举,有兴趣的读者可以自行查找相关论文。
1 信息熵
1.1 信息熵的定义:
信息论中的信息熵的数学表达式H(x) = - E[log_2 P(x)] = E[- log_2 P(x) ] ,其中x是随机变量,实际中只能取x_1,x_2,... x_n这样至多可数个观察值,从公式可以知道,信息熵实际是g(x)=-log_2 P(x)的数学期望,它的意义是指观察者对某一个事件结果的未知程度。信息熵越大,对观察者来说结果的不确定越大,从中获取到有用的信息越没有价值;反之,信息熵越小,对观察者来说结果的不确定越小,从中获取到有用的信息越有价值。举个例子,比如现在要猜一个字,如果主持人提示说:
1 这个字有15个笔划
2 这个字是左右结构
3 这个字是'火'字旁
听到这些,你可以还是不知道这个字是什么,也就是说这个字很难猜,或者从这三条信息中无法获得明确的结果,这以认为三条信息价值较小。
但是如果主持人提示说:
1 这个是有15个笔划
2 这个字是火字旁
3 这个字的英文是'Entropy'
听到这些,你立马会想到'熵'字了,以上三条给出的信息提示很明确,很容易就确定是熵字,因此以上三条信息价值很大。
1.2 信息熵的特性:
1 非负性:
H(x) > 0
2 下面引入几个和熵有关的计算
2.1 联合熵:
x , y 是两个随机变量,则这两个随机变量的联合熵
H(x,y) = - E[ log_2 P(x,y)] = E[ -log_2 P(x,y)] = \SUM{ - P(x,y) * log_2 P(x,y) }
2.2 条件熵
x, y 是两个随机变量,见这两个随机变量的条件熵
H(x|y) = - E[ log_2 P(x|y)] = E[ -log_2 P(x|y)] = \SUM { - P(x,y) * log_2 P(x|y) }
信息熵,联合熵,以及条件熵之间的关系:
H(x,y) – H(x) = H(y|x)
上式可这样理解:引入x后y不确定性可看做,x和y两个变量的不确认性中扣除x自身的不确定性。
由上式可以推论:
H(x,y) = H(y|x) + H(x) ,由于H(x) >= 0 ,可得
H(x,y) > = H(y|x)
意思是说:明确部分变量后的不确定性,比什么都不知道的不确定性要小。(虽然看似一句废话,但是在后面还是很有用的)
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- Service基础之调用系统电话管理器
- 数据结构实现之栈
- LeetCode 136:Single Number
- iOS-Core Foundation框架到Foundation桥接的三种方式
- BootStrap入门教程 (四)
- 决策树
- 一步一步在Windows下用MinGW编译x264(x264-snapshot-20160119-2245)
- 数据结构实现之队列
- Codeforce 445E
- Android 回调机制
- jq与dom对象相互转换
- Django传递数据给JS
- Spring4.0学习笔记008——AOP的配置(基于注解)
- 【费用流模型】BZOJ2668 UVA1317 UVA1486 UVA1104