决策树和CART算法的精炼详解(尽量写到位,不留"论文债")

本文深入探讨了决策树算法,包括ID3、C4.5和CART算法。讲解了信息熵、条件熵、信息增益等核心概念,并介绍了C4.5中的连续值属性处理、缺失值处理和剪枝策略,以及CART算法的基尼不纯度和二分类应用。
摘要由CSDN通过智能技术生成

1 决策树算法

1.1 决策树简介

1.1.1 什么是决策树

  • 决策树主要有二元分支和多元分支.

  • 决策树是判定树

    • 内部结点是决策节点: 对某个属性的一次测试
    • 分支: 每条边代表一个测试结果.
    • 叶子: 代表某个类或者类的分布
  • 使用决策树进行判别:

    • 决策条件-决策路径-叶子(结果)代表分类
  • 决策树的数学模式解题思路:

    • 贪心的算法 greedy solution
    • 不是最好的树,全局最优解
    • 当前的树里面找最好的树,局部最优解.

1.1.2 决策树的决策依据

  • 决策树的目标:
    • 最快速完成类别的判定
  • 直观思路
    • 应该凸显这种路径: 最有利做出判别
    • 最大减少在类别判定上的不确定性
    • 纯度上升的更快,更快速到达纯度更高的集合
  • 怎么选择优先进行决策的判定属性
    • 好的特征是什么原理?
    • 获得更多信息来减少不确定性
    • 知道的信息越多,信息的不确定性越小

1.2 信息熵和条件熵

1.2.1 信息熵

1.2.1.1 不确定性
  • 信息量的度量就等于不确定性的多少
    • 信息熵高:我们一无所知的事,就需要了解大量的信息
    • 信息熵低:我们对某件事已经有了较多的了解,我们就不需要太多的信息
1.2.1.2 信息熵的公式
  • 对数的运算法则
    l o g a ( m n ) = l o g a m + l o g a n log_a(mn)=log_am+log_an loga(mn)=logam+logan
  • 概率的公式
    p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)
  • 两个事件同时发生的信息等于各自信息的和
    I ( x , y ) = I ( x ) + I ( y ) I(x,y)=I(x)+I(y) I(x,y)=I(x)+I(y)

随机变量 x 的自信息
I ( x ) = − l o g p ( x ) I(x)=-logp(x) I(x)=logp(x)

  • 负号是用来保证信息量是正数或者零
  • 描述的是随机变量的某个事件发生所带来的信息量

信息熵: 传送一个随机变量传输的平均信息量是 I ( x ) = − l o g p ( x ) I(x)=-logp(x) I(x)=logp(x)的期望
H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H\left(X\right)= -\sum_{i=1}^{n}p\left(x_{i}\right)log\left(p\left(x_{i}\right)\right) H(X)=i=1np(xi)log(p(xi))

1.2.1.3 信息熵的解读
  • 随机变量 x 的熵,它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望
  • 随机变量的取值个数越多,状态数也就越多,信息熵就越大,混乱程度就越大

1.2.2 联合熵

H ( X , Y ) = − ∑ x , y p ( x , y ) l o g p ( x , y ) = − ∑ i = 1 n ∑ j = 1 m p ( x i , y i ) l o g p ( x i , y i ) H(X,Y)=-\displaystyle\sum_{x,y}p(x,y)logp(x,y)=-\sum_{i=1}^{n}\sum_{j=1}^{m}p(x_i,y_i)logp(x_i,y_i) H(X,Y)=x,yp(x,y)logp(x,y)=i=1nj=1mp(xi,yi)logp(xi,yi)

1.2.3 条件熵

  • 条件熵 H(Y|X) 表示在已知随机变量 X 的条件下, 随机变量 Y 的不确定性
  • 条件熵 H(Y|X) 定义为 X 给定条件下, Y 的条件概率分布的熵对 X 的数学期望
  • 相当在不同X的信息熵,加上X的值的概率的加权
1.2.3.1 条件熵公式

假设X有n个取值
H ( Y ∣ X ) = ∑ i = 1 n p ( x i ) H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^{n} p(x_i)H(Y|X=x_i) H(YX)=i=1np(xi)H(YX=xi)

见识Y有m个取值
H ( Y ∣ X = x i ) = − ∑ j = 1 m p ( y j ∣ X = x i ) log ⁡ p ( y j ∣ X = x i ) H(Y|X=x_i) = - \sum_{j=1}^{m} p(y_j|X=x_i)\log p(y_j|X=x_i) H(YX=xi)=j=1mp(yjX=xi)logp(yjX=xi)

所以
H ( Y ∣ X ) = ∑ i = 1 n p ( x i ) H ( Y ∣ X = x i ) = ∑ i = 1 n p ( x i ) ( − ∑ j = 1 m p ( y j ∣ X = x i ) log ⁡ p ( y j ∣ X = x i ) ) = − ∑ i = 1 n p ( x i ) ∑ j = 1 m p ( y j ∣ x i ) log ⁡ p ( y j ∣ x i ) H(Y|X)=\sum_{i=1}^{n} p(x_i)H(Y|X=x_i) \\ =\sum_{i=1}^{n} p(x_i)\left(- \sum_{j=1}^{m} p(y_j|X=x_i) \log p(y_j|X=x_i)\right)\\ =-\sum_{i=1}^{n}p(x_i) \sum_{j=1}^{m} p(y_j|x_i) \log p(y_j|x_i) H(YX)=i=1np(xi)H(YX=xi)=i=1np(xi)(j=1mp(y

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值