python实现分类决策树ID3和C4.5算法

本文介绍了ID3算法及其局限,包括信息熵、条件熵和信息增益的概念,并展示了Python代码实现。接着讨论了数据离散化、决策树剪枝策略。还介绍了C4.5算法作为ID3的改进,如何处理连续特征、过拟合、缺失值问题,并对比了C4.5与CART回归树的区别。
ID3算法介绍
  • ID3算法全称为迭代二叉树3代算法(Iterative Dichotomiser 3)
  • 该算法要先进行特征选择,再生成决策树,其中特征选择是基于“信息增益”最大的原则进行的。
  • 但由于决策树完全基于训练集生成的,有可能对训练集过于“依赖”,即产生过拟合现象。因此在生成决策树后,需要对决策树进行剪枝。剪枝有两种形式,分别为前剪枝(Pre-Pruning)和后剪枝(Post-Pruning),一般采用后剪枝。
信息熵、条件熵和信息增益
  • 信息熵:来自于香农定理,表示信息集合所含信息的平均不确定性。信息熵越大,表示不确定性越大,所含的信息量也就越大。
    x 1 , x 2 , x 3 , . . . x n {x_1, x_2, x_3, ...x_n} x1,x2,x3,...xn为信息集合X的n个取值,则 x i x_i xi的概率: P ( X = i ) = p i , i = 1 , 2 , 3 , . . . , n P(X=i) = p_i, i=1,2,3,...,n P(X=i)=pi,i=1,2,3,...,n
    信息集合X的信息熵为: H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X) =- \sum_{i=1}^{n}{p_i}\log{p_i} H(X)=i=1npilogpi

  • 条件熵:指已知某个随机变量的情况下,信息集合的信息熵。
    设信息集合X中有 y 1 , y 2 , y 3 , . . . y m {y_1, y_2, y_3, ...y_m} y1,y2,y3,...ym组成的随机变量集合Y,则随机变量(X,Y)的联合概率分布为 P ( x = i , y = j ) = p i j P(x=i,y=j) = p_{ij} P(x=i,y=j)=pij条件熵: H ( X ∣ Y ) = ∑ j = 1 m p ( y j ) H ( X ∣ y j ) H(X|Y) = \sum_{j=1}^m{p(y_j)H(X|y_j)} H(XY)=j=1mp(yj)H(Xyj) H ( X ∣ y j ) = − ∑ j = 1 m p ( y j ) ∑ i = 1 n p ( x i ∣ y j ) log ⁡ p ( x i ∣ y j ) H(X|y_j) = - \sum_{j=1}^m{p(y_j)}\sum_{i=1}^n{p(x_i|y_j)}\log{p(x_i|y_j)} H(Xyj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值