决策树
决策树也是经常使用的数据挖掘算法。
这张图所示就是一个决策树。长方形代表判断模块,椭圆形代表终止模块。从判断模块引出的左右箭头称作分支。
决策树的一个重要任务是为了理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列,这些机器根据数据集创建规则的过程,就是机器学习的过程。
训练出来的数据可以使用Matplotlib来绘制决策树图。
决策树构造
算法特点:
- 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
- 缺点:可能会产生过拟合的问题。
- 适用数据类型:数值型和标称型。
首先需要学习数学上如何适用信息论划分数据集,然后编写代码将理论应用到具体的数据集上,最后编写代码构建决策树。
在构造决策树时,我们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类时起决定作用。其实就是根据特征进行划分子集,再根据第二特征进行划分。这里面比较重要的是如果排序特征,找特征的依据是是么:
- 数量最多的特征
- 按照特征分组最少的特征
- 按特征,分组之间的距离最大,信息熵最大。
分组的结束条件是数据子集中的数据属于同一个类型,否则就需要进行重新划分数据子集。所以决策树就是一个递归的过程。
检测数据集中每个子项是否属于同一分类:
If so return 类标签
else
寻找数据集的最好特征
划分数据集
创建分支节点
for 每个新划分的子集
调用自己进行下一轮的划分,并将结果加入到分支节点上
return 分支节点