1.收集数据
还是以相亲为例,假设有以下数据集,后续将基于该数据集进行代码测试:
2.创建数据集
根据以上表格给出的样本数据,创建数据集:
3.计算熵值
ID3/C4.5算法均需计算样本熵值:
4.选择最好的特征划分数据集
在对每个节点进行划分时,都需要从未选择的特征中选择一个最好的进行数据集的划分;ID3/C4.5算法分别选择信息增益/信息增益比最大的特征对当前节点进行分类;这里再回顾一下相关计算公式:
条件熵:
信息增益:
信息增益比:
比如:按第0个特征("财富"),值为1("有钱")划分样本数据,得到的数据集如下,其中已经将[财富=有钱]的特征剔除;对根节点进行划分时,选择最好的划分特征是第一个,即"人品":
5.构建决策树
在递归生成决策树的过程中,如果某个节点中的样本属于同一类别,则停止划分,返回该节点类别;如果某个节点中的样本不属于同一类别,且特征已选择完毕,也停止划分,以少数服从多数的原则返回样本数最多的类别。
最终,生成的决策树以字典方式表示如下:
到这里,基于ID3/C4.5算法的决策树基本实现完成,但是以字典方式表示的决策树不太直观;下一部分对决策树进行可视化,并训练/测试决策树模型。
Enjoy Coding and Life!
领取专属 10元无门槛券
私享最新 技术干货