分类算法-----决策树(ID3)算法原理和Python实现
来源:互联网 发布:手甲钩淘宝 编辑:程序博客网 时间:2024/05/22 11:37
参考Python数据分析与挖掘实战
1 ID3算法的基本原理
ID3算法基于信息熵来选择最佳的测试属性。他选择当前样本集中具有最大信息增益值的属性做为测试属性,
用信息增益值度量不确定性:信息增益越大不确定性越小。因此ID3算法在每个非叶子节点选择信息增益最
大的属性最为测试属性,这样可以得到当前情况下最纯的分析,从而得到较小的决策树。
显然E(A)越小,Gain(A)的值越大,说明选择测试属性A对于分类提供的信息越大,选择A之后对于分类的不确定程度越小
2 ID3算法的计算流程
假设有以下数据,共34条记录
2.1 计算总体信息熵
数据中共34条记录,销量为高的有18条,销量为低的有16条
2.2计算各属性的信息熵
是否周末:是周末销量高的有11条,低的有3条,可表示为H(11,3),否周末销量高的有7条,销量低的有13条
可表示为H(7,13)。则是否周末的信息熵计算公式如下
是否有促销:有促销销量高的有15条记录,销量低的有7条记录,可表示为H(15,7),无促销销量高的有3条记录,
销量低的有9条记录,可表示为H(3,9),则是否有促销属性的信息熵计算如下:
2.3 计算各商品的信息增益
由以上结果可得是否周末的信息增益最大,最为根节点,如此循环往复直到没有新的节点分支
2.4 生成决策树
从上图就可以看出销售高低和各个属性之间的关系
2.5 ID3算法的缺点
由于ID3算法采用了信息增益做为选择测试属性的标准,会偏向于选择取值较多的,即所谓的高分支属性,而这一类属性并不一定
是最优的属性,同时ID3算法只能处理离散值,对于连续的属性在分类之前需要进行离散化,为了解决倾向于选择高度分之的问题
人们采用了信息增益率做为测试属性的标准,这种算法就是改进的C4.5算法。
3 ID3算法的Python实现
参考机器学习实战
0 0
- 分类算法-----决策树(ID3)算法原理和Python实现
- 决策树分类ID3算法的Python实现
- 决策树分类算法-ID3算法原理
- python实现决策树(ID3算法)
- ID3决策树算法(python实现)
- 决策树(ID3算法)Python实现
- python实现决策树ID3算法
- Python实现ID3算法决策树
- Python实现决策树算法ID3
- 决策树ID3 算法python实现
- ID3分类决策树算法
- Python实现决策树算法 C4.5和ID3算法
- ID3决策树的算法原理与python实现
- 文本分类算法之决策树.ID3实现
- 决策树ID3分类算法的C++实现
- 决策树ID3分类算法的C++实现
- 决策树ID3分类算法的C++实现
- 分类决策树简介及ID3算法实现
- JavaScript之原型
- 中国开源项目哪家强?看看阿里,百度,腾讯,360等都开...
- Chrome调整CSS盒模型自动生成代码
- JDK8 lambda表达式
- Pthread
- 分类算法-----决策树(ID3)算法原理和Python实现
- UGUI和NGUI多个按钮事件方法(for循环添加)
- linux nobody用户是什么 nobody用户介绍
- Android 中的属性动画 --- 1(基本用法)
- extjs-3.4.1多选下拉框实现
- 蓝桥杯:幸运数
- CodeForces 23B Party (思维题)
- SSM(十三) 将dubbo暴露出HTTP服务
- Linux下安装mysql