决策树模型原理及实践

决策树模型

1、决策树原理及介绍

1.1 决策树介绍

决策树是一种常见的分类模型,在金融分控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本能方法。例如在婚恋市场中,女方通常会先看男方是否有房产,如果有房产再看是否有车产,如果有车产再看是否有稳定工作……最后得出是否要深入了解的判断。

决策树的主要优点:

  1. 具有很好的解释性,模型可以生成可以理解的规则。

  2. 可以发现特征的重要程度。

  3. 模型的计算复杂度较低。

决策树的主要缺点:

  1. 模型容易过拟合,需要采用减枝技术处理。

  2. 不能很好利用连续型特征。

  3. 预测能力有限,无法达到其他强监督模型效果。

  4. 方差较高,数据分布的轻微改变很容易造成树结构完全不同。

1.2 决策树构建算法

决策树的构建过程是一个递归过程。函数存在三种返回状态:

(1)当前节点包含的样本全部属于同一类别,无需继续划分;

(2)当前属性集为空或者所有样本在某个属性上的取值相同,无法继续划分;

(3)当前节点包含的样本集合为空,无法划分。

其构建算法如下:

输入: 训练集D= { ( x 1 , y 1 ) , ( x 2 , y 2 ) … … , ( x m , y m ) } \left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right) \ldots \ldots,\left(x_{m}, y_{m}\right)\right\} { (x1,y1),(x2,y2),(xm,ym)}

特征集A= ( a 1 , a 2 , … . , a d ) \left(a_{1}, a_{2}, \ldots ., a_{d}\right) (a1,a2,.,ad)

输出: 以node为根节点的一颗决策树

过程:函数TreeGenerate ( D , A ) (D, A) (D,A)

  1. 生成节点node

  2. if D D D 中样本全部属于同一类别 C C C then:

  3. ---- 将node标记为 C C C 类叶节点:return

  4. if A = A= A= 空集 or D中样本在 A A A 上的取值相同 then:

  5. ---- 将node标记为叶节点,其类别标记为 D D D 中样本数最多的类; return

  6. 从 A 中选择最优划分属性 a ∗ a_{*} a

  7. for a ⋅ ⋅ C 0 C v a··C 0 C^{v} aC0Cv do:

  8. ----为node生成一个分支, 令 D v D_{v} Dv 表示 D D D 中在 a ⋅ ⋅ C 1 C v a··C 1 C^{v} aC1Cv 的样本子集;

  9. ----if D v D_{v} Dv 为空 then:

  10. --------将分支节点标记为叶节点,其类别标记为 D 中样本最多的类; then

  11. ----else:

  12. --------以 TreeGenerate ( D v , A { a ∗ } ) \left(D_{v}, A\left\{a_{*}\right\}\right) (Dv,A{ a}) 为分支节点

1.3 划分选择

从上述伪代码中我们发现,决策树的关键在于line6.从A中选择最优划分属性 a ∗ a_{*} a​,一般我们希望决策树每次划分节点中包含的样本尽量属于同一类别,也就是节点的“纯度”更高。

1.3.1 信息增益

信息熵是一种衡量数据混乱程度的指标,信息熵越小,则数据的“纯度”越高
Ent ⁡ ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k \operatorname{Ent}(D)=-\sum_{k=1}^{|y|} p_{k} \log _{2} p_{k} Ent(D)=k=1ypklog2pk
其中 p k p_{k} pk​代表了第k类样本在D中占有的比例。

假设离散属性 a a a V V V 个可能的取值 { a 1 , a 2 , … . , a V } , \left\{a^{1}, a^{2}, \ldots ., a^{V}\right\}, { a1,a2,.,aV}, 若使用 a a

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值