决策树学习笔记

模型----监督学习中的分类算法
决策树算法的思路:
    利用树的结构,将数据集中的特征(属性)划分为树中的分支节点
    数据集中类别标签对应树的叶节点。
构建决策树的三要素:
    1.特征选择----信息熵或信息增益gini系数来选择特征
    2.决策树的生成---ID3算法(信息增益) C4.5算法(gini系数)
    3.决策树的剪枝---针对决策树产生过拟合
        ---两种剪枝方式:先剪枝、后剪枝
    信息熵:信息的不确定性度量,熵越大不确定性越大,通常每种可能性相同的时候,熵最大的
    结论:在构建决策树的过程中,希望选择信息熵比较小的,因为信息熵小对应的信息纯度越高
          信息的不确定性越小,确定性越大
决策树建树方法:
    第一种方法:基于规则的就建树
        1.明确是哪个属性或特征是根节点或叶子节点----根据顺序选取
        2.随机选择根节点的特征或叶子结点的特征
        3.得到叶子结点的特征
    第二种建树的方法:基于信息熵和信息增益建立决策树
        信息熵:对信息的不确定性度量
        如果每一事件发生的概率都相等(均匀分布),此时熵最大
        熵最大,不确定性越大,确定性越小,信息纯度越低
        熵越小,不确定性越小,确定性越大,信息纯度越高
        如何根据熵建立一颗决策树?
            ---选择熵比较小的特征或者属性作为分支节点
            ---原因:因为熵小,信息纯度越高
            ---定义:事件的不确定性应该是单个取值的不确定性的期望 ,也叫作信息熵,即

                      
            上述若对数的底数取值为 2,就是平常所说的信息单位 bit(比特)

 ID3算法:
        信息增益=总体的信息熵-以某一个特征作为划分标准的信息熵
        计算公式:Gain(A)=I(parent)-H(A)
                  总体信息熵不会改变的
        目的:选择特征或属性进行节点划分
              选取方式:选择信息增益比较大的作为分支节点
        作用:通过节点来划分树结构获取信息量
        例:Gain(age)>Gian(income)>Gain(sex)
              选择方式:优先选择年龄、收入、性别
        算法原理:
              输入:数据集
              输出:决策树
             算法:
                     1.计算信息增益,选择信息增益比较大的特征作为当前的划分节点
                     2.在已有的特征集合中去掉已经选择过的特征
                     3.继续在剩余的节点中计算信息增益比较大的,作为下一个划分节点
                     4.直到所有的节点都划分为叶子节点
                     注意:计算信息增益时候,将所有特征或属性的信息增益计算出来了,只需要排序和选择就可以。
    迭代建树的停止条件:
        1.给定节点所有的样本属于同一个类别
        2.没有剩余的属性用于划分,只需要通过多数表决的方法决定剩余节点
        3.给定一个信息增益的阈值,通过该阈值判断是否迭代停止
            给定迭代次数:在python的sklearn中下属三种情况都是参数,可以动态调整
                max_depth 树的深度
                min_sample_leaf根据叶子结点所包含的元素个数决定是否迭代停止
                min_sample_split根据分支节点含有的样本数决定是否迭代停止
    C4.5算法:
        在ID3算法的基础上增加了信息增益率作为划分节点的依据
        优势:规避掉信息增益比较大或小的时候会倾向于属性多的情形
              对连续值处理非常好的
              对决策树通过剪枝减小复杂度(过拟合)
              能够对不完整数据进行处理
    CART树算法:选择划分的节点是根据gini系数划分
                在Python的sklearn中默认使用gini系数作为划分的准则
                属于一种贪心算法
决策树算法极易产生过拟合的情况:
    解决办法:剪枝技术
              分类技术:先剪枝(预剪枝)和后剪枝
              为什么需要进行剪枝?
                 答:决策树很容易产生过拟合,需要进行剪枝降低决策树的复杂程度
                     根据剪枝前后的分类误差率的变化决定是否进行剪枝
              先剪枝:
                实际生产中比较常见的一种手段。
                在建立决策树的过程中进行剪枝
                通过选择不同的信息不纯度的阈值(信息增益)
                    (1)如果阈值设置的过大,容易产生欠拟合(决策树没有生产完全)
                    (2)如果阈值设置的过小,容易产生过拟合(近似于未剪枝技术)
                    选取的过程更多的是靠经验
              后剪枝:
                决策树已经形成之后,进行剪枝的一种技术
                如果一个节点能够替换一颗子树,根据分类的误差率时候减少来进行评判
                通过充分生长的一棵树中自底向上的进行树的剪枝
                    (1)用新的叶子结点替换原来的子树
                        新的叶子节点的类别根据数据集中少数服从多数的原则选取
                    (2)用子树中最常见的分支节点代替子树
                        **如何评判剪枝效果?MEP最小错误率剪枝技术
                        **选择子树或节点的时候,需要产生若干颗子树或节点计算所有子树或节点的错误率,从中选择错误率较小的那个量
            两种剪枝技术如何选择?
                现在工业界中通常选择先剪枝技术,计算复杂度较小,容易实现
                在理论上如果模型的泛化性能好的话,建议采用后剪枝技术,但是会带来复杂度的提升
            决策树的特点:
                优点:直观、便于理解
                          执行效率高,执行一次可以多次使用
                缺点:对连续值处理不好(Cart树中提供了二分的方法)
                          实际分类中往往只能处理一个字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值