基于香农熵的决策树算法
来源:互联网 发布:百度快速排名软件 编辑:程序博客网 时间:2024/06/05 07:36
基于香农熵的决策树算法
《机器学习实战》一书中有介绍构造决策树的算法。
所谓决策树就是已知一些项特征的信息和项最终分类,求通过特征判断项最终分类的递归决策树。例如书中的例子是判断一个动物是不是鱼类,下面为一个数据集。
def createDataSet(): dataSet = [\ [1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']] labels = ['no surfacing', 'flippers'] return dataSet, labels
书里举的另一个例子是隐形眼镜的问题。书里提供了绘图引擎用于绘制决策树。
算法大致流程是:
1.获得数据集
2.找到一个好的特征划分数据集为两部分
3.递归这一过程直到数据集内全部为同种类
4.打印由上述划分确定的树状结构
那么如何划分数据集,也就是如何确定最佳划分状态?当然是信息量大的划分。信息量可以用香农熵刻画。
具体严格的数学推导我觉得可以用性质刻画定义(数学上很多函数都是先给出性质再解函数方程获得唯一定义,于是干脆用性质代替定义)。
显然U(s)有性质信息量等于各部分信息量之和:
并定义初值条件
那么,只需要求出U(s_i)即可,下面假设
先考虑一个简单的问题,
然后利用相同手法可以得到性质(函数方程)
这就是一个中规中规中矩的函数方程了,依次解决
可以得到信息量的表示方法,也就是香农熵,注意与热力学熵推导过程一模一样,除了常数不同。
决策树代码略
- 基于香农熵的决策树算法
- 决策树 香农熵
- 决策树算法(三)——计算香农熵
- 决策树中基本概念——香农熵
- 香农熵的概念
- 【JAVA实现】基于决策树的ID3算法
- 机器学习_决策树_香农熵和信息增益
- 基于python的sklearn库的决策树算法基本实现
- 基于ID3算法生成决策树
- 决策树算法实例(基于ID3)
- 基于R语言的分类算法之决策树
- 基于R语言的分类算法之CART决策树
- 离散属性的决策树算法实现--基于西瓜2.0数据
- 连续属性的决策树算法实现--基于西瓜3.0数据
- 基于决策树的模型
- 基于决策树的分类
- 机器学习实战 决策树代码 计算香农熵 Error return arrays must be of ArrayType
- 决策树算法的实现
- IO流_字节流复制文本文件案例2
- Spring MVC 入门示例讲解
- Web API性能优化(一)压缩
- LinkedList分析
- scroller机制
- 基于香农熵的决策树算法
- 算法提高 01背包
- 我的 MarkDown 学习笔记
- Ireport 序号自增
- 磁盘命令
- SparkStreaming消费Kafka数据遇到的问题
- Android 自定义View第三弹——继承控件
- 使用Eclipse进行远程调试
- Cetos 7.2+LNMP+WordPress