决策树

决策树也是经常使用的数据挖掘算法。

机器学习实战笔记——决策树

这张图所示就是一个决策树。长方形代表判断模块,椭圆形代表终止模块。从判断模块引出的左右箭头称作分支

决策树的一个重要任务是为了理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列,这些机器根据数据集创建规则的过程,就是机器学习的过程。

训练出来的数据可以使用Matplotlib来绘制决策树图。

决策树构造

算法特点:

  • 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据
  • 缺点:可能会产生过拟合的问题
  • 适用数据类型:数值型和标称型。

首先需要学习数学上如何适用信息论划分数据集,然后编写代码将理论应用到具体的数据集上,最后编写代码构建决策树。

在构造决策树时,我们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类时起决定作用。其实就是根据特征进行划分子集,再根据第二特征进行划分。这里面比较重要的是如果排序特征,找特征的依据是是么:

  • 数量最多的特征
  • 按照特征分组最少的特征
  • 按特征,分组之间的距离最大,信息熵最大。

分组的结束条件是数据子集中的数据属于同一个类型,否则就需要进行重新划分数据子集。所以决策树就是一个递归的过程。

检测数据集中每个子项是否属于同一分类:
    If so return 类标签
    else
        寻找数据集的最好特征
        划分数据集
        创建分支节点
            for 每个新划分的子集
                调用自己进行下一轮的划分,并将结果加入到分支节点上
    return 分支节点

 

相关文章: