决策树算法[3]

决策树算法梳理

1 信息论基础

  • 如果一个随机变量 X X X的可能取值为 X = x 1 , x 2 , … , x k X = {x1, x2,…, xk} X=x1,x2,,xk,其概率分布为 P ( X = x i ) = p i ( i = 1 , 2 , . . . , n ) P(X = xi) = pi(i = 1,2, ..., n) P(X=xi)=pii=1,2,...,n,则随机变量X的熵定义为:

    H ( X ) = − ∑ x p ( x ) log ⁡ p ( x ) = ∑ x p ( x ) log ⁡ 1 p ( x ) H(X)=-\sum_xp(x)\log p(x)=\sum_xp(x)\log \frac{1}{p(x)} H(X)=xp(x)logp(x)=xp(x)logp(x)1
    由定义知,当随机变量为均匀分布时,熵最大,且 0 ≤ H ( X ) ≤ log ⁡ n 0 \leq H(X)\leq\log n 0H(X)logn

    熵(entropy):表示随机变量不确定性的度量(熵越大,随机变量的不确定性就越大)

  • 联和熵

    将一维随机变量分布推广到多维随机变量分布
    H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) = − ∑ i = 1 n ∑ i = 1 m p ( x i , y i ) log ⁡ p ( x i , y i ) H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y)=-\sum_{i=1}^n\sum_{i=1}^mp(x_i,y_i)\log p(x_i,y_i) H(X,Y)=x,yp(x,y)logp(x,y)=i=1ni=1mp(xi,yi)logp(xi,yi)

  • 条件熵

    条件熵 H ( Y ∣ X ) H(Y|X) H(YX) 表示在已知随机变量 X 的条件下随机变量$ Y$ 的不确定性 .随机变量 X X X给定的条件下随机变量Y的条件熵 H ( Y ∣ X ) H(Y|X) H(YX),定义为: X X X给定的条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望
    H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) =    − ∑ x p ( x ) ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) = − ∑ x ∑ y p ( x , y ) log ⁡ p ( y ∣ x ) H(Y|X)=\sum_xp(x)H(Y|X=x)\\=\ \ -\sum_xp(x)\sum_yp(y|x)\log p(y|x)\\=-\sum_x\sum_yp(x,y)\log p(y|x) H(YX)=xp(x)H(YX=x)=  xp(x)yp(yx)logp(yx)=xyp(x,y)logp(yx)
    条件熵 H ( Y ∣ X ) H(Y|X) H(YX)相当于联合熵 H ( X , Y ) H(X,Y) H(X,Y) 减去单独的熵 H ( X ) H(X) H(X) ,即:
    H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(YX)=H(X,Y)H(X)

​ 证明:
H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x ) p ( y ∣ x ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) − ∑ x , y p ( x , y ) log ⁡ p ( x ) = H ( Y ∣ X ) − ∑ x ∑ y p ( x , y ) log ⁡ p ( x ) = H ( Y ∣ X ) − ∑ x log ⁡ p ( x ) ∑ y log ⁡ p ( x , y ) = H ( Y ∣ X ) − H ( X ) \begin{aligned} H(X,Y) &= -\sum_{x,y}p(x,y)\log p(x,y) \\&=-\sum_{x,y}p(x,y)\log p(x)p(y|x) \\&=-\sum_{x,y}p(x,y)\log p(y|x)-\sum_{x,y}p(x,y)\log p(x) \\ &= H(Y|X)-\sum_x\sum_yp(x,y)\log p(x)\\&=H(Y|X) - \sum_x\log p(x)\sum_y\log p(x,y) \\&=H(Y|X) - H(X) \end{aligned} H(X,Y)=x,yp(x,y)logp(x,y)=x,yp(x,y)logp(x)p(yx)=x,yp(x,y)logp(yx)x,yp(x,y)logp(x)=H(YX)xyp(x,y)logp(x)=H(YX)xlogp(x)ylogp(x,y)=H(YX)H(X)

描述 X 和 Y 所需的信息是描述 X 自己所需的信息,加上给定 X 的条件下具体化 Y 所需的额外信息

  • 信息增益

    表示:得知特征X的信息而使得类Y的信息的不确定性减少的程度

    定义:特征A对训练数据D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差:
    g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
    信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的)

  • 信息增益比

    信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题

    特征A对训练数据D的信息增益比 g R ( D , A ) g_R(D,A) gR(D,A)定义为:

    ​ 其信息增益 g ( D , A ) g(D,A) g(D,A)与训练数据集D关于特征A的值得熵 H A ( D ) H_A(D) HA(D)之比
    g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A) = \frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
    其中:
    H A ( D ) = − ∑ j i = 1 n ∣ D i ∣ ∣ D ∣ log ⁡ 2 ∣ D i ∣ ∣ D ∣    n 是 特 征 取 值 的 个 数 H_A(D) = -\sum_{ji=1}^n\frac{|D_i|}{|D|}\log_2 \frac{|D_i|}{|D|} \ \ n是特征取值的个数 HA(D)=ji=1nDDilog2DDi  n

  • 基尼不纯度

    从一个数据集中随机选取子项,度量其被错误的划分到其他组里的概率。(书上解释)

    一个随机事件变成它的对立事件的概率(简单理解)
    G i n i ( p ) = ∑ k = 1 K P k ( 1 − P k ) = 1 − ∑ k = 1 K P k 2 Gini(p) = \sum_{k=1}^KP_k(1-P_k) = 1-\sum_{k=1}^KP_k^2 Gini(p)=k=1KPk(1Pk)=1k=1KPk2

    参考:[详解机器学习中的熵、条件熵、相对熵和交叉熵]

2 .决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景

  • ID3算法

    在决策树上各个节点上应用信息增益准则选择特征,递归地构建决策

  • C4.5

    C4.5算法与ID3算法相似,C4.5算法对ID3算法进行了改进,C4.5在生成的过程中,用信息增益比来进行选择特征

  • CART分类树

    基尼指数最小化准则进行特征选择

3 回归树原理

回归树是可以用于回归的决策树模型,一个回归树对应着输入空间(即特征空间)的一个划分以及在划分单元上的输出值.与分类树不同的是,回归树对输入空间的划分采用一种启发式的方法,会遍历所有输入变量,找到最优的切分变量j和最优的切分点s,即选择第j个特征 x j x_j xj和它的取值s将输入空间划分为两部分,然后重复这个操作。

参考:决策树(分类树、回归树)

  • 回归树是采用最大均方误差来划分节点,并且每个节点样本的均值作为测试样本的回归预测值;而分类树是采用信息增益或者是信息增益比来划分节点,每个节点样本的类别情况投票决定测试样本的类别。我们可以看到,这两者的区别主要在于划分方式与工作模式。回归树采用最大均方误差这种对数据精确处理的方式,输出连续变量,可以更好地给我们的数据进行预测;而分类树使用一个非常宽泛的信息增益这个变量,更好的从整体把握这个数据集的分类

参考:经典的决策树算法

4 决策树防止过拟合手段

  • 剪枝(pruning)
    1. 预剪枝:预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。
    2. 后剪枝:后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点

参考:机器学习(六)决策树优化-剪枝

5 模型评估

6 sklearn 参数详解,python绘制决策树

'''
scikit-learn中有两类决策树,它们均采用优化的CART决策树算法。
'''
from sklearn.tree import DecisionTreeRegressor
'''
回归决策树
'''
DecisionTreeRegressor(criterion="mse",
                         splitter="best",
                         max_depth=None,
                         min_samples_split=2,
                         min_samples_leaf=1,
                         min_weight_fraction_leaf=0.,
                         max_features=None,
                         random_state=None,
                         max_leaf_nodes=None,
                         min_impurity_decrease=0.,
                         min_impurity_split=None,
                         presort=False)
'''
方法:
1.fit(X,y):训练模型。
2.predict(X):预测。
'''
 
from sklearn.tree import DecisionTreeClassifier
'''
分类决策树
'''
DecisionTreeClassifier(criterion="gini",
                 splitter="best",
                 max_depth=None,
                 min_samples_split=2,
                 min_samples_leaf=1,
                 min_weight_fraction_leaf=0.,
                 max_features=None,
                 random_state=None,
                 max_leaf_nodes=None,
                 min_impurity_decrease=0.,
                 min_impurity_split=None,
                 class_weight=None,
                 presort=False)
'''
方法:
1.fit(X,y):训练模型。
2.predict(X):预测
3.predict_log_poba(X):预测X为各个类别的概率对数值。
4.predict_proba(X):预测X为各个类别的概率值。
'''

参考:机器学习sklearn中决策树模型参数释义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值