一、算法简要
决策树的基本理念就是通过不断的条件筛选,从而得到最后的答案。knn算法最大的缺点就是无法给出数据的内在含义,而决策树则在数据形式非常容易理解,有一定的实际意义。
这里所讲到的决策树非叶子节点的建立是依据信息增益和熵的概念,这个可以自己去查。通过计算按特定属性划分数据集前后发生的熵的变化,选择信息增益最大的特征属性作为分叉节点,从而一步一步进行决策树的构造。
二、算法一般流程
1.收集数据:任意方法和途径
2.准备数据:数据必须离散化
3.分析数据:构造树完成后,检查图形是否符合预测
4.训练算法:决策树的构造
5.测试算法:一般将决策树用于分类,可以用错误率衡量
6.使用算法:决策树可以用于任何监督学习算法
三、算法伪代码
1.判断决策树是否构造完毕,否则执行2,是则执行3。有终止条件:所有的类标签完全相同,返回该类标签即可;使用完了所有的特征,仍然不能将数据集划分成包含唯一类别的分组,此时,返回出现次数较多的类别
2.选择时的信息增益最大的特征作为分叉节点,对分叉节点的每个特定值,调用1
3.决策树构造完毕,对测试数据进行分类
四、代码实现与示例
import matplotlib.pyplot as plt
from math import log
import operator
'''c