Part2—Python实现之构建决策树

1.收集数据

还是以相亲为例,假设有以下数据集,后续将基于该数据集进行代码测试:

2.创建数据集

根据以上表格给出的样本数据,创建数据集:

3.计算熵值

ID3/C4.5算法均需计算样本熵值:

4.选择最好的特征划分数据集

在对每个节点进行划分时,都需要从未选择的特征中选择一个最好的进行数据集的划分;ID3/C4.5算法分别选择信息增益/信息增益比最大的特征对当前节点进行分类;这里再回顾一下相关计算公式:

条件熵:

信息增益:

信息增益比:

比如:按第0个特征("财富"),值为1("有钱")划分样本数据,得到的数据集如下,其中已经将[财富=有钱]的特征剔除;对根节点进行划分时,选择最好的划分特征是第一个,即"人品":

5.构建决策树

在递归生成决策树的过程中,如果某个节点中的样本属于同一类别,则停止划分,返回该节点类别;如果某个节点中的样本不属于同一类别,且特征已选择完毕,也停止划分,以少数服从多数的原则返回样本数最多的类别。

最终,生成的决策树以字典方式表示如下:

到这里,基于ID3/C4.5算法的决策树基本实现完成,但是以字典方式表示的决策树不太直观;下一部分对决策树进行可视化,并训练/测试决策树模型。

Enjoy Coding and Life!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180923G1M0Z700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券