决策树python实现
2019-04-14 本文已影响0人
simple的课
参考书籍:机器学习--周志华 / 数据挖掘导论 / 统计学习方法
参考代码链接:https://blog.csdn.net/weixin_40683253/article/details/81941583#commentsedit
博主还非常nice地给我发了数据集,感谢!
1. 概念
决策树是基于树结构来进行决策的。根结点包含样本全集,叶结点对应于决策结果。其他的每个结点对应于一个属性测试,每个结点包含的样本集合根据属性测试的结果被划分到子节点中。
属性:{色泽,根蒂,敲声,纹理,脐部,触感}
属性值: eg:色泽={青绿,乌黑,浅白}
2. 最优划分属性选择算法
信息熵(information entropy):D的信息熵:
为当前样本集合D中第类样本所占的比例。
的值越小,则D的纯度越高。
ID3算法:以信息增益(information gain)为准则来选择划分属性。
属性a对样本集D进行划分所获得的信息增益:
表示D中所有在属性a上取值为的样本。
信息增益越大,使用属性a来进行划分所获得的纯度提升越大。选取信息增益最大的属性作为划分属性。
C4.5算法:以增益率则来选择最优划分属性(先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的)
增益率:
CART算法:以基尼指数(来选择划分属性。
基尼值:
3. python实现
1. 需要用到的工具import 2. 主函数 3. 数据处理并导入 4. 建立决策树 5. 如果每条数据只包含分类结果,则选择分类结果count最大的输出,这是一种特殊情况 6. 利用信息增益最大的原则选择划分属性 7. step6中计算信息增益的时候需要用到的信息熵 8. 在step6中计算信息增益需要用到的函数。完整代码: