knn的缺点是无法给出数据的内在含义,而决策树的主要优势是数据形式非常好理解。
决策树的一个重要任务就是理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,这些机器根据数据创建规则的过程,就是机器学习的过程。专家系统中经常使用决策树
1、决策树的构造
在构造决策树时,需要解决的第一个问题就是,当前数据集上那个特征在划分数据分类是起决定作用。为了找到决定性特征,划分出最好的结果,我们必须评估每个特征。原始数据集会被划分为几个数据子集。这些数据子集会分布在第一个决策点的所有分支上,直到分支上的数据属于同一类型,不然得重新划分。
//创建分支的伪代码函数
检测数据集中的每个子项是否属于同一分类:
if so return 类标签
else
寻找划分数据集的最好特征
划分数据集
创建分支节点
for 每个划分的子集
调用createBranch并增加返回结果到分支节点中 #递归调用
return 分支节点
一些决策树算法采用二分法,本书采用ID3算法划分数据集。
1.1 信息增益
划分数据集的最大原则是:将无序的数据变得更加有序。
在划分数据集之前之后信息发生的变化成为信息增益,知道如何计算信息增益。计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
信息增益(information gain):熵的减少或者是数据无序度的减少
熵(entropy)定义为信息的期望值