决策树算法

                  决策树算法

  决策树是一种基本的分类与回归算法,其实就是if-then的集合。

  主要包括三个部分:

  (1)    特征选择

  (2)    决策树的生成

  (3)    决策树的剪枝

 

  决策树由结点和有向边组成。结点有两种类型:内部结点和叶子结点。内部结点表示一个特征或者属性。叶子结点表示一个类。决策树学习的损失函数通常是正则化的极大似然函数。

  常用的算法有ID3,C4.5,CART算法。

 

ID3

  ID3算法只能适应于离散属性,不能用于连续属性。

  特征选择的方式是信息增益。 不确定性减少的程度

  信息增益=经验熵-经验条件熵。

  即g(D/A)=H(D)-H(D/A)

  迭代终止条件:

  (1)    所有的特征都用了,没有特征可以继续来进行特征选择

  (2)    当前特征集中的最大的信息增益小于我们设定的阈值。

  ID3算法使用了信息增益。信息增益的缺点是:对取值数目比较多的属性有偏好。一个特征的信息增益越大,表明属性对样本熵减少的能力越强,不确定性变成确定性的能力越强。用信息增益训练出来的决策树深度很浅的树。

 

C4.5

  与ID3不同之处就是:特征选择使用的是信息增益比,同时可以对连续属性进行处理。

  1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

  2) 在树构造过程中进行剪枝;

  3) 能够完成对连续属性的离散化处理;

  4) 能够对不完整数据进行处理。

  连续属性的一般处理方式:

  将连续属性的属性值进行排序,如[x1,x2,x3....xn],将连续属性离散化,最简单的方式就是取相邻两个值的终点作为属性划分点,即[(x1+x2)/2, (x2+x3)/2....]。每次划分的时候对划分点进行遍历,选取最佳的划分点。


CART

  回归树:损失函数:最小均方误差。

  回归树基本流程:

  (1)    选择最优变量与最优切分点。使得均方误差最小

  (2)    确定每个区域的输出值

  (3)    继续对划分的两个子区域调用(1)(2),直到满足停止条件。

  (4)    将输入空间划分成M个区域,生成决策树。


  分类树:分类树使用基尼指数选择最优特征,同时决定该特征的最优二值切分点。

  CART算法分类流程:

  输入:训练数据集,停止计算的条件

 (1)    计算现有特征对该数据集的基尼指数。

 (2)    选择基尼指数最下的特征及其对应的最好的切分点。

 (3)    递归调用(1)(2),直到满足停止条件

 (4)    生成CART决策树。

  算法停止计算的条件是:结点中样本个数小于预定阈值,或者样本集的基尼指数小于预定阈值,或者没有更多的特征。 如果此时该叶子结点的纯度还不是很高,只能使用多数表决法。

  CART剪枝算法基于代价复杂度思想:就是不断剪枝,构造出不同的子树序列,对不同的子树序列交叉验证,判断出好的子树序列。


总结:

  决策树停止条件:

  (1)特征集合都用完了。

  (2)当前集合最大信息增益/信息增益比/基尼指数小于阈值。

  (3)当前节点中的样本数目已经小于限定的最小值。

  决策树的优缺点:

  相对于其他数据挖掘算法,决策树在以下几个方面拥有优势: 

  •    决策树易于理解和实现人们在通过解释后都有能力去理解决策树所表达的意义。

  •    对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。

  •    能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。

  •    在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

  •    对缺失值不敏感

      可以处理不相关特征数据

  •    效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度


决策树的缺点

1)连续性的字段比较难预测。

2)对有时间顺序的数据,需要很多预处理的工作。

3)当类别太多时,错误可能就会增加的比较快。

4)一般的算法分类的时候,只是根据一个字段来分类。

5)在处理特征关联性比较强的数据时表现得不是太好


决策树的学习策略:正则化的极大似然估计

决策树损失函数:对数似然损失


决策树进行特征选择的三种方式:信息增益,信息增益比,基尼指数。分别用在不同的算法中,信息增益与信息增益比的联系与区别。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值