决策树—学习心得

来源:互联网 发布:mac apowersoft 编辑:程序博客网 时间:2024/05/15 17:31

1、先来个正式的定义:决策树是一个树结构(可以是二叉树或非二叉树)。其每个飞叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,知道到达叶子节点,将叶子节点存放的类别作为决策结果。

2、决策数分为分类树和回归树。分别针对应于离散变量和连续变量。

3、整体框架:

决策树的学习过程:

  • 特征选取:从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。
  • 决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树生长。树结构来说,递归结构是最容易理解的方式。
  • 剪枝:决策树容易过拟合,一般需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

4、构造决策树的关键性内容就是进行属性选择度量,即特征选取。

属性选择度量方法有很多,一般使用自顶向下递归分治法,并采用不回溯的贪心策略,一般的方法有ID3和C4.5、CART算法,其中C4.5和CART两种算法从ID3算法中衍生而来。ID3处理离散分布的数据特征,后两种算法处理连续或离散分布的数据特征。

重点来了:

  1. ID3算法:从信息论知识中我们知道,期望值越小,信息增益越大,从而纯度越高。该算法的核心思想是以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。
    设D为用类别对训练元组进行的划分,则D的熵表示为:

    其中pi表示第i个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。
    现在我们假设将训练元组D按属性A进行划分,则A对D划分的期望信息为:

     而信息增益即为两者的差值:

      ID3算法就是在每次需要分裂时,计算每个属性的增益率,然后选择增益率最大的属性进行分裂。

  2. C4.5算法:C4.5算法用信息增益率来选择属性代替ID3的信息增益,其他类似
    C4.5算法首先定义了“分裂信息”,其定义可以表示成:

    其中各符号意义与ID3算法相同,然后,增益率被定义为:

    总结:

    C4.5是ID3的一个改进算法,继承了ID3算法的优点。C4.5算法用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足在树构造过程中进行剪枝;能够完成对连续属性的离散化处理;能够对不完整数据进行处理。C4.5算法产生的分类规则易于理解、准确率较高;但效率低,因树构造过程中,需要对数据集进行多次的顺序扫描和排序。也是因为必须多次数据集扫描,C4.5只适合于能够驻留于内存的数据集。

    CART算法的全称是Classification And Regression Tree,采用的是Gini指数(选Gini指数最小的特征s)作为分裂标准,同时它也是包含后剪枝操作。ID3算法和C4.5算法虽然在对训练样本集的学习中可以尽可能多地挖掘信息,但其生成的决策树分支较大,规模较大。为了简化决策树的规模,提高生成决策树的效率,就出现了根据GINI系数来选择测试属性的决策树算法CART。










0 0