一 、什么是决策树?
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。
决策树的任务是为了理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,并创建规则。
二 、决策树的构建
(1)计算信息增益
划分数据集的最大原则是:将无序的数据变的更加有序;所以我们要计算信息增益。
信息增益:划分数据集之前、之后信息发生的变化,我们计算每个特征值划分的数据集获得熵,与原始的数据熵相比获得增量。信息增量最高的特征就是最好的选择。
信息熵的计算公式为:
其中 D 表示训练数据集,c 表示数据类别数,Pi 表示类别 i 样本数量占所有样本的比例。
数据集样例
Python代码实现如下(计算给定数据集的信息熵):
def calcShannonEnt(dataSet):
numEntries = len(dataSet)#数组长度5
labelCounts = {}
for featVec in dataSet: