zoukankan      html  css  js  c++  java
  • 《统计学习方法》笔记--决策树

    决策树是一种基本的分类与回归方法,其树模型是描述对实例进行分类的树状结构。

    图1-1 摘自《机器学习》的西瓜分类决策树

    假设给定训练数据集,其中为输入实例,A为特征类别数,为标记类(在下面用表示所标记类别,为数据集D根据标记类别的不同所划分的子集)。

    设特征A(某一特征类别)有n个不同的取值,数据集D根据特征A(某一特征类别)的取值将其划分为n个子集。记子集中属于某标记类别的样本集合为。那么决策树则根据训练数据集构建模型,使其能够对实例进行正确分类。

    决策树的学习通常包括3个步骤:特征选择决策树的生成决策树的修剪

     

    1. 特征选择

    特征选择的关键在于选取对数据具有分类能力的特征,通常采用的准则为信息增益信息增益比

    在引入信息增益和信息增益比之前,先介绍(entropy)和条件熵

    度量了随机变量的不确定性,设有一离散型的随机变量X,其概率分布为,则其熵为

    条件熵,同样先假设有一随机变量(X,Y),其联合概率分布为,则条件熵表示在已知随机变量X的条件下随机变量Y的不确定性,定义为

    明确了熵和条件熵的定义后,将求信息增益则表示,在得知特征X的信息后,类Y信息的不确定性减少程度

    特征A对训练数据集D的信息增益g(D,A)定义为集合D的熵H(D)与特征A给定条件下D的条件熵H(D|A)之差,即

    那么信息增益准则的特征选取方法为:对训练数据集D,计算每一个特征的信息增益,然后选取信息增益最大的分类特征。

     

    信息增益比则是信息增益g(D,A)与训练数据集D关于特征A的值的熵之比,即

    其中,,n是特征A的取值个数,信息增益比解决了信息增益偏向于选择取值较多的特征问题。

     

    2. 决策树的生成

    决策树的生成根据特征选取准则的不同,有两种生成方式:ID3算法C4.5算法

    ID3算法:

    输入:训练数据集合D,特征A集合阈值

    输出:决策树T

    1. 若子集D中的实例属于同一类别,则t为单结点树,并将作为该结点的标记类别,返回T;
    2. 若子集D中的实例不属于同一类别,并且特征A类别集合为空,则t为单结点树,将子集D中实例树最大类别作为该结点的标记类别,返回T;
    3. 若子集D中的实例不属于同一类别,并且特征A类别集合不为空,则重新计算特征A集合中各个特征类别对D的信息增益,选择信息增益最大的特征类别
    4. 如果信息增益小于阈值,则t为单结点树,将子集D中实例树最大类别作为该结点的标记类别,返回T;
    5. 如果信息增益不小于阈值,对的每一可能取值,将子集D划分若干非空子集,对应构成若干个子结点,对第i个子结点,以为训练集,以为特征集,递归地调用(1)至(5)步骤,得到子树,返回

       

      C4.5算法:

      输入:训练数据集合D,特征A集合阈值

      输出:决策树T

    6. 若子集D中的实例属于同一类别,则t为单结点树,并将作为该结点的标记类别,返回T;
    7. 若子集D中的实例不属于同一类别,并且特征A类别集合为空,则t为单结点树,将子集D中实例树最大类别作为该结点的标记类别,返回T;
    8. 若子集D中的实例不属于同一类别,并且特征A类别集合不为空,则重新计算特征A集合中各个特征类别对D的信息增益,选择信息增益最大的特征类别
    9. 如果信息增益比小于阈值,则t为单结点树,将子集D中实例树最大类别作为该结点的标记类别,返回T;
    10. 如果信息增益比不小于阈值,对的每一可能取值,将子集D划分若干非空子集,对应构成若干个子结点,对第i个子结点,以为训练集,以为特征集,递归地调用(1)至(5)步骤,得到子树,返回

       

      ID3和C4.5的算法步骤相似,区别在于ID3计算信息增益而C4.5计算信息增益比。

       

      3. 决策树的剪枝

      决策树的剪枝通常用极小化决策树整体的损失函数代价函数实现。

      设树T的叶结点树为|T|,t是树T的叶结点,该叶结点有个样本点,其中属于类别的样本点有个,为叶结点t上的熵,为参数,则决策树的损失函数可以定义为

      其中,熵

      图3-1 树结点参与损失函数的计算

      决策树的剪枝算法:

      输入:生成算法产生的整个树T,参数

      输出:修剪后的子树

    11. 计算每个结点的熵;
    12. 递归地从树的叶结点向上回缩,设一组叶结点回缩到父结点之前和之后的整体树分别为,其对应的损失函数分别为,如果,则进行剪枝,将其父结点变为新的叶结点;
    13. 重复步骤(2),知道不能继续为止,即能得到损失函数最小的子树

       

      剪枝算法可以结合到决策树的生成算法中,这样可以减少模型生成所消耗的时间。

       

       

       

       

  • 相关阅读:
    巨蟒django之权限9:前端展示修改删除合并&&权限展示
    巨蟒django之权限8:排序&&菜单展开权限归属
    巨蟒django之权限7:动态生成一级&&二级菜单
    巨蟒django之权限6: 权限控制表设计&&登录权限
    巨蟒django之CRM5 学习记录&&课程记录&&班级管理&&私户的数量上限
    巨蟒django之CRM4 一些小功能
    巨蟒django之CRM3 添加和编辑客户&&公户和私户的展示和转换
    巨蟒django之CRM2 展示客户列表&&分页
    巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证
    sysfs接口函数到建立_DEVICE_ATTR
  • 原文地址:https://www.cnblogs.com/lincz/p/11789832.html
Copyright © 2011-2022 走看看