参考Python数据分析与挖掘实战算法
1 ID3算法的基本原理
ID3算法基于信息熵来选择最佳的测试属性。他选择当前样本集中具备最大信息增益值的属性作为测试属性,用信息增益值度量不肯定性:信息增益越大不肯定性越小。所以ID3算法在每一个非叶子节点选择信息增益最大的属性最为测试属性,这样能够获得当前状况下最纯的分析,从而获得较小的决策树。机器学习
显然E(A)越小,Gain(A)的值越大,说明选择测试属性A对于分类提供的信息越大,选择A以后对于分类的不肯定程度越小学习
2 ID3算法的计算流程
假设有如下数据,共34条记录测试
2.1 计算整体信息熵
数据中共34条记录,销量为高的有18条,销量为低的有16条spa
2.2计算各属性的信息熵
是否周末:是周末销量高的有11条,低的有3条,可表示为H(11,3),否周末销量高的有7条,销量低的有13条表示为H(7,13)。则是否周末的信息熵计算公式以下3d
是否有促销:有促销销量高的有15条记录,销量低的有7条记录,可表示为H(15,7),无促销销量高的有3条记录