机器学习 - 决策树(下)- CART 以及与 ID3、C4.5的比较

机器学习 - 决策树(下)- CART 以及与 ID3、C4.5的比较

  • CART

    CART(Classification and Regression Tree),分类与回归树。CART假设决策树为二叉树,递归的二分每个特征,既可以做回归,也可以做分类。

  • 回归树

    损失函数采用平方误差最小化。

    • ① 选择最优切分变量 x ( j ) x_{(j)} x(j) 、切分点 s s s,切分点将数据划分为 R 1 , R 2 R_1,R_2 R1,R2,求解:

      j , s m i n [ c 1 m i n ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + c 2 m i n ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \mathop{}_{j,s}^{min}[\mathop{}_{c_1}^{min}\sum_{x_i∈R_1(j,s)}(y_i-c_1)^2+\mathop{}_{c_2}^{min}\sum_{x_i∈R_2(j,s)}(y_i-c_2)^2] j,smin[c1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2]

      得出最优解 j 1 ∗ , x 1 ∗ j_1^*,x_1^* j1,x1

    • ② 根据 j 1 ∗ , x 1 ∗ j_1^*,x_1^* j1,x1 划分区域 R 1 , R 2 R_1,R_2 R1,R2 并计算其相应的输出值:

      R 1 ( j 1 ∗ , x 1 ∗ ) = { x ∣ x ( j ) ≤ s } R_1(j_1^*,x_1^*)=\{x|x^{(j)}\le s\} R1(j1,x1)={xx(j)s} R 2 ( j 1 ∗ , x 1 ∗ ) = { x ∣ x ( j ) > s } R_2(j_1^*,x_1^*)=\{x|x^{(j)}>s\} R2(j1,x1)={xx(j)>s}

      c m − = 1 N ∑ x i ∈ R m ( j , s ) y i , x ∈ R m , m = 1 , 2 \mathop{}_{c_m}^{-}=\frac{1}{N}\sum_{x_i∈R_m(j,s)}y_i,x∈R_m,m=1,2 cm=N1xiRm(j,s)yixRm,m=1,2

    • ③ 继续对两个子区域重复 ① ② 步骤,直至满足条件

    • ④ 将输入空间划分为 M 个区域 R 1 , R 2 , . . . R M R_1,R_2,...R_M R1,R2,...RM,生成决策树

      f ( x ) = ∑ m = 1 M c m − I ( x ∈ R m ) f(x)=\sum_{m=1}^{M}\mathop{}_{c_m}^{-}I(x∈R_m) f(x)=m=1McmI(xRm)

  • 分类树

    CART 的分类树与 ID3,C4.5 类似,但衡量最优特征的标准有差异。分类树中使用基尼指数选择最优特征,同时决定该特征的最优切分点。

    1. 基尼( G i n i Gini Gini)指数

      分类问题中,假设有 K K K 个类,样本点属于第 k k k 类的概率为 P k P_k Pk,则 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}^{K}P_k(1-P_k)=1-\sum_{k=1}^{K}P_k^2 Gini(P)=k=1KPk(1Pk)=1k=1KPk2

      ∙ \bullet 对于二分类问题: G i n i ( P ) = 2 P ( 1 − P ) Gini(P)=2P(1-P) Gini(P)=2P(1P)

      ∙ \bullet 对于样本集合 D: G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^{K}(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2

    2. 在特征 A 条件下

      G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

      G i n i ( D ) Gini(D) Gini(D) 表示集合 D 的不确定性; G i n i ( D , A ) Gini(D,A) Gini(D,A)表示经 A 划分后 D 的不确定性

      G i n i ( D , A ) Gini(D,A) Gini(D,A) 值最小的特征。

  • 剪枝

    CART 的剪枝分为两步:① 先剪枝形成 子树序列;② 后通过交叉验证选择 最优子树

    1. 剪枝

      C α ( T ) = C ( T ) + α ∣ T ∣ C_α(T)=C(T)+α|T| Cα(T)=C(T)+αT 为预测误差。

      从完整树 T 0 T_0 T0 开始,对 T 0 T_0 T0 中所有内部(非叶子)结点 t t t

      ∙ \bullet t t t 为单结点树(此时 ∣ T ∣ = 1 |T|=1 T=1),损失等于 C α ( T ) = C ( T ) + α C_α(T)=C(T)+α Cα(T)=C(T)+α

      ∙ \bullet t t t 为根结点的子树 T t T_t Tt,损失等于 C α ( T t ) = C ( T t ) + α ∣ T t ∣ C_α(T_t)=C(T_t)+α|T_t| Cα(Tt)=C(Tt)+αTt

      { 当 α = 0 及 α 充 分 小 时 , 有 C α ( T t ) &lt; C α ( t ) 当 α ↗ , 在 某 一 α 值 时 有 C α ( T t ) = C α ( t ) 当 α 继 续 ↗ 时 , 不 等 式 反 向 , 有 C α ( T t ) &gt; C α ( t ) \begin{cases} 当 α=0 及 α 充分小时,有 C_α(T_t)&lt;C_α(t)\\ 当 α\nearrow,在某一 α 值时有 C_α(T_t)=C_α(t)\\ 当 α 继续\nearrow 时,不等式反向,有 C_α(T_t)&gt;C_α(t)\\ \end{cases} α=0αCα(Tt)<Cα(t)ααCα(Tt)=Cα(t)αCα(Tt)>Cα(t)

      ∙ \bullet 只要 α = C ( t ) − C ( T t ) ∣ T t ∣ − 1 α=\frac{C(t)-C(T_t)}{|T_t|-1} α=Tt1C(t)C(Tt),那么 T t T_t Tt t t t 就有相同的损失值,此时 t t t 的结点少,所以可以将 T t T_t Tt 减去。所以计算 g ( t ) = C ( t ) − C ( T t ) ∣ T t ∣ − 1 g(t)=\frac{C(t)-C(T_t)}{|T_t|-1} g(t)=Tt1C(t)C(Tt)

      ∙ \bullet T 0 T_0 T0 中减去 g ( t ) g(t) g(t) 最小的 T t T_t Tt ,将得到的子树作为 T 1 T_1 T1,同时将最小的 g ( t ) g(t) g(t) 设为 α 1 α_1 α1 T 1 T_1 T1 为区间 [ α 1 , α 2 ) [α_1,α_2) [α1,α2) 的最优子树。

      ∙ \bullet 如此重复剪枝,直至根结点,得到子树序列 [ T 0 , T 1 , . . . , T n ] [T_0,T_1,...,T_n] [T0,T1,...,Tn],过程中 α m ↗ , m = 1 , 2 , . . , n α_m \nearrow,m=1,2,..,n αm,m=1,2,..,n

    2. 选择

      从子树序列 [ T 0 , T 1 , . . . , T n ] [T_0,T_1,...,T_n] [T0,T1,...,Tn] 中通过交叉验证选取最优的子树。

  • 决策树特点总结

    本文作为决策树的第三部分,在这里对决策树的特点进行总结。

    1. 决策树属于非参数方法,无需先验假设;
    2. 最佳树属于 NP 完全问题,普遍使用贪心算法;
    3. 构建树的复杂度低,建立后预测的速度快;
    4. 相对容易解释,在简单数据集上性能也不错;
    5. 是学习离散值的典型算法;
    6. 对噪声干扰具有很好的鲁棒性;
    7. 冗余属性不会对精度造成不利影响;
    8. 大多是自顶向下划分的,数据量变少,容易过拟合;
    9. 因为使用分治策略,导致子树可能重复多次;
    10. 可看作区域划分,产生决策边界进而预测。
  • ID3,C4.5,CART 比较

    1. ID3 因为使用信息增益,所以偏向于取值较多的属性作为路径。而数据集中的连续型特征所具有的取值个数是非常多的,所以 ID3 也不适合处理连续性数据,对离散型特征可以适用。
    2. C4.5 使用信息增益率,解决了 ID3 的问题,既可以处理离散特征,也可以处理连续特征。
    3. CART 构建的是二叉树。假设对离散特征取值有 x , y , x {x,y,x} x,y,x,则在该属性上的划分有三种情况{{x,y},{z}},{{x,z},y},{{y,z},x}),空集和全集的划分除外;对于连续值处理引进“分裂点”的思想,假设样本集中某个属性共 n n n 个连续值,则有 n − 1 n-1 n1 个分裂点,每个“分裂点”为相邻两个连续值的均值 1 2 ( a [ i ] + a [ i + 1 ] ) \frac{1}{2}(a[i] + a[i+1]) 21(a[i]+a[i+1])。既可以处理离散值也可以处理连续值,既可以用来做回归,也可以用来做分类,应用面更广。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值