导语:今天这篇文章也是我们的志愿编辑写出来的文章哦,稳重介绍了如何在python3中实现自己的决策树算法并画出来!另外,小编Tom邀请你一起搞事情!
预备知识:信息增益,香农熵
编程使用库:numpy,matplotlib
算法应用:挑选隐形眼镜和生物物种的分类
决策树顾名思义,就是一棵可以用来帮助机器来做决策的树形结构
那么依照这个思路我们可以对相关的分类问题进行一样的处理,寻找特征,然后判断条件,最终得到结果。那么决策树实现方面需要面对那些问题呢?
构造决策树只需要在特征方面进行分析,而要想分析特征就需要数据的分析从而挑选出哪个特征作为根以及哪个特征作为结点。
因此,数据的分析就需要引入两个概念香农熵和信息增益
香农熵就是信息的期望值
信息的定义公式
熵就是所有类别所有可能值包含的信息期望值
对于上述公式具体的数学意义,读者可以自行查阅相关资料。而我们接下要做的就是实现它的数学公式
之前我们已经实现了香农熵,后面,我们需要使用这个香农熵。那么如何使用呢?
最简单的做法就是在一个列表中计算所有特征的熵。
在计算过程中,我们去除其中一个特征,然后计算剩余的特征的熵。
这一部分可以作为一个函数,就是划分数据集。
代码如下:
划分之后的数据集
目前我们实现了两个函数,也就是两个小工具。两个工具可以只在意输入数据和输出结果。具体实现不必过多理会。
那么接下我们重点关注如何用工具构造我们的决策树
思路:
代码如下:
如图:
绘制决策树可以在构造好的决策树的字典中通过递归实现算法。因为不涉及过多决策树思想。所以读者自行实现或者下载代码参考。
如图:
如上图,我们实际上已经实现了对于隐形眼镜的决策分类。后续我们只需要导入数据和相关调用代码即可
这里需要注意的是,决策树一旦构建好之后,我们可以将它存储到文件中,这样下一次测试数据,就无需再一次跑数据生成决策树。
参考代码: