瓜书学习之路(二)

决策树

注意事项

本文仅供自己学习参考用,如有错误,请联系本人删除或修改。谢谢各位。

基本流程

决策树是基于树结构

ID3决策树

信息熵

度量样本集合纯度最常用的一种指标定义如下
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D) = -\sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=k=1ypklog2pk

    Ent(D)的值越小,D的纯度越高。

D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) ⋯ ( x m , y m ) 表 示 样 本 集 合 , ∣ y ∣ 表 示 样 本 类 别 综 述 p k 表 示 第 K 类 样 本 所 占 比 例 , 且 0 ≤ p k ≤ 1 D= {(x_1, y_1),(x_2, y_2),(x_3,y_3)\cdots(x_m,y_m)}表示样本集合, |y|表示样本类别综述 p_k表示第K类样本所占比例,且0\le p_k \le 1 D=(x1,y1),(x2,y2),(x3,y3)(xm,ym)ypkK0pk1

证明

0 ≤ E n t ( D ) ≤ l o g 2 ∣ y ∣ 0 \le Ent(D) \le log_2|y| 0Ent(D)log2y

求Ent(D)最大值:

假设为n分类问题 |y| = n  

E n t ( D ) = f ( x 1 , ⋯   , x n ) = − ∑ k = 1 n x k l o g 2 x k Ent(D) = f(x_1, \cdots, x_n) = - \sum_{k=1}^{n}x_klog_2x_k Ent(D)=f(x1,,xn)=k=1nxklog2xk
其 中 0 ≤ x k ≤ 1 , ∑ k = 1 n x k = 1 其中 0 \le x_k \le 1, \sum_{k=1}^{n}x_k = 1 0xk1,k=1nxk=1
p k = x k p_k = x_k pk=xk p k 是 第 k 类 样 本 所 占 比 例 , 所 以 p_k是第k类样本所占比例,所以 pkk

假设仅考虑以下约束
∑ k = 1 n x k = 1 \sum_{k=1}^{n}x_k =1 k=1nxk=1
对 f ( x 1 ⋯ x n ) 求 最 大 值 对f(x_1 \cdots x_n)求最大值 f(x1xn)
m i n ∑ k = 1 n x k l o g 2 x k 等 同 于 n 个 x l o g 2 x 之 和 min\sum_{k=1}^{n}x_klog_2x_k 等同于n个xlog_2x之和 mink=1nxklog2xknxlog2x
( x l o g 2 x ) " 二 阶 导 数 恒 大 于 零 , 则 证 明 x l o g 2 x 是 凸 函 数 , 同 理 n l o g 2 x 也 为 凸 函 数 , 也 可 用 H e s s i a n 矩 阵 正 定 性 证 明 (xlog_2x)^" 二阶导数恒大于零,则证明xlog_2x是凸函数,同理nlog_2x也为凸函数,也可用Hessian矩阵正定性证明 (xlog2x)"xlog2xnlog2xHessian
所 以 m i n ∑ k = 1 n x k l o g 2 x k 也 为 凸 函 数 所以 min\sum_{k=1}^{n}x_klog_2x_k也为凸函数 mink=1nxklog2xk
凸优化问题,满足KKT条件的点为最优解。即
m i n ∑ k = 1 n x k l o g 2 x k min\sum_{k=1}^{n}x_klog_2x_k mink=1nxklog2xk存在最小值点,则
对 f ( x 1 ⋯ x n ) 存 在 最 大 值 对f(x_1 \cdots x_n)存在最大值 f(x1xn)
K K T 可 见 最 优 化 基 础 理 论 与 方 法 \mathbf KKT 可见最优化基础理论与方法 KKT
根据拉格朗日函数的一阶导数为0 可以找出最优化的点,满足KKT的点
拉格朗日乘子法

L ( x 1 , x 2 , ⋯   , x n , λ ) = ∑ k = 1 n x k l o g 2 x k + λ ( ∑ k = 1 n x k − 1 ) λ 为 拉 格 朗 日 乘 子 L(x_1,x_2, \cdots, x_n, \lambda) = \sum_{k=1}^{n}x_klog_2x_k + \lambda(\sum_{k=1}^{n}x_k - 1) \lambda为拉格朗日乘子 L(x1,x2,,xn,λ)=k=1nxklog2xk+λ(k=1nxk1)λ
求上式的一阶偏导,并等于0
δ L ( x 1 , ⋯   , x n ) δ x 1 = δ L δ x 1 [ ∑ k = 1 n x k l o g 2 x k + λ ( ∑ k = 1 n x k − 1 ) ] {{\delta L(x_1, \cdots , x_n)}\over{\delta}x_1} ={{\delta L}\over{\delta}x_1 }[{\sum_{k=1}^{n}x_klog_2x_k + \lambda(\sum_{k=1}^{n}x_k - 1)}] δx1δL(x1,,xn)=δx1δL[k=1nxklog2xk+λ(k=1nxk1)]
= l o g 2 x 1 + x 1 ⋅ 1 x 1 l n 2 + λ = {log_2 x_1} + {x_1 · {1}\over{x_1ln2}} + \lambda =log2x1+x1ln2x11+λ
= l o g 2 x 1 + 1 l n 2 + λ = {log_2 x_1} + {{1}\over{ln2}} + \lambda =log2x1+ln21+λ
令一阶偏导为0
l o g 2 x 1 + 1 l n 2 + λ = 0 {log_2 x_1} + {{1}\over{ln2}} + \lambda = 0 log2x1+ln21+λ=0
l o g 2 x 1 + 1 l n 2 = − λ {log_2 x_1} + {{1}\over{ln2}} = - \lambda log2x1+ln21=λ
同 理 证 明 x 2 , x 3 同理证明x_2,x_3 x2,x3
l o g 2 x 2 + 1 l n 2 = − λ {log_2 x_2} + {{1}\over{ln2}} = - \lambda log2x2+ln21=λ
⋯ \cdots
l o g 2 x n + 1 l n 2 = − λ {log_2 x_n} + {{1}\over{ln2}} = - \lambda log2xn+ln21=λ
得 x 1 = x 2 = ⋯ = x n 得 x_1 = x_2 = \cdots = x_n x1=x2==xn
对 λ 求 偏 导 对\lambda求偏导 λ
δ L ( x 1 , ⋯   , x n , λ ) δ λ = δ L δ λ [ ∑ k = 1 n x k l o g 2 x k + λ ( ∑ k = 1 n x k − 1 ) ] {{\delta L(x_1, \cdots , x_n, \lambda)}\over{\delta \lambda}} = {{\delta L}\over{\delta}\lambda }[{\sum_{k=1}^{n}x_klog_2x_k + \lambda(\sum_{k=1}^{n}x_k - 1)}] δλδL(x1,,xn,λ)=δλδL[k=1nxklog2xk+λ(k=1nxk1)]
令一阶为0
∑ k = 1 n x k − 1 = 0 \sum_{k=1}^{n}x_k - 1 = 0 k=1nxk1=0
解 的 x 1 = x 2 = ⋯ = x n = 1 n 解的 x_1 = x_2 = \cdots = x_n = {1 \over n} x1=x2==xn=n1

E n t ( D ) = f ( 1 n , ⋯   , 1 n ) = − ∑ k = 1 n 1 n l o g 2 1 n = l o g 2 n Ent(D) = f({1 \over n}, \cdots, {1 \over n}) = - \sum_{k=1}^{n}{1 \over n}log_2{1 \over n} = log_2 n Ent(D)=f(n1,,n1)=k=1nn1log2n1=log2n
所 有 在 满 足 约 束 条 件 下 , 最 大 值 为 l o g 2 n 所有在满足约束条件下,最大值为log_2 n log2n

同理证明Ent(D)最小值,求Ent(D)的最小值,就是求N个一元函数的加和,求每个一元函数的最小值就是求Ent的最小值。求一阶二阶导数
求 g ′ ( x n ) = − l o g 2 x n − 1 l n 2 求 g^{'}(x_n) = - {{log_2 x_n} - {{1}\over{ln2}}} g(xn)=log2xnln21
求 g ′ ′ ( x n ) = − 1 x 1 l n 2 求 g^{''}(x_n) = - {{1}\over{x_1{ln2}}} g(xn)=x1ln21
因 为 0 ≤ x n ≤ 1 , g ′ ′ ( x n ) < 0 因为0 \le x_n \le 1, {g^{''}(x_n) < 0} 0xn1,g(xn)<0
所以单调递减,最小值在边界 0 或者 1
g ( x n ) = 0 即 最 小 值 E n t ( D ) = 0 g(x_n) = 0 即 最小值Ent(D) = 0 g(xn)=0Ent(D)=0
0 ≤ E n t ( D ) ≤ 1 0 \le Ent(D) \le 1 0Ent(D)1

条件熵
在已知样本属性x的取值下,度量样本集合纯度的指标

H ( D ∣ x ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) H(D|x) = \sum_{v=1}^{V}{{|D^v|} \over {|D|}}Ent(D^v) H(Dx)=v=1VDDvEnt(Dv)
其 中 , x 表 示 样 本 的 某 个 属 性 , 假 定 x 有 V 个 可 能 的 取 值 x 1 , ⋯   , x V , 样 本 集 合 中 在 属 性 x 上 取 值 为 a V 的 样 本 记 D v 其中, x表示样本的某个属性,假定x有V个可能的取值{x^1, \cdots, x^V},样本集合中在属性x上取值为a^V的样本记D^v ,xxVx1,,xVxaVDv
E n t ( D v ) 表 示 D v 的 信 息 熵 H ( D ∣ x ) 的 值 越 小 , 纯 度 越 高 Ent(D^v)表示D^v的信息熵 H(D|x)的值越小,纯度越高 Ent(Dv)DvH(Dx)
条件熵是在已知部分信息的基础上的信息熵

ID3决策树

以信息增益为准则来选择划分属性的决策树
信息增益

G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D, a) = Ent(D) - \sum_{v=1}^{V}{{|D^v|} \over {|D|}}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
= E n t ( D ) − H ( D ∣ a ) = Ent(D) - H(D|a) =Ent(D)H(Da)
信息熵减去条件熵

ID3对可取值数目较多的属性 友好

G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D, a) = Ent(D) - \sum_{v=1}^{V}{{|D^v|} \over {|D|}}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ ( − ∑ k = 1 n x k l o g 2 x k ) Gain(D, a) = Ent(D) - \sum_{v=1}^{V}{{|D^v|} \over {|D|}}{(-\sum_{k=1}^{n}x_klog_2x_k)} Gain(D,a)=Ent(D)v=1VDDv(k=1nxklog2xk)
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ ∑ k = 1 n x k l o g 2 x k Gain(D, a) = Ent(D) - \sum_{v=1}^{V}{{|D^v|} \over {|D|}}{\sum_{k=1}^{n}x_klog_2x_k} Gain(D,a)=Ent(D)v=1VDDvk=1nxklog2xk
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ − ( ∑ k = 1 n ∣ D k v ∣ ∣ D v ∣ l o g 2 ∣ D k v ∣ ∣ D v ∣ ) Gain(D, a) = Ent(D) - \sum_{v=1}^{V}{{|D^v|} \over {|D|}}{-({\sum_{k=1}^{n}{|D_{k}^{v}| \over |D^v|}log_2{|D_{k}^{v}| \over |D^v|}})} Gain(D,a)=Ent(D)v=1VDDv(k=1nDvDkvlog2DvDkv)
D k v 是 集 合 D 中 属 性 为 x 上 取 值 为 a v 且 类 别 为 k 的 样 本 D_{k}^{v}是集合D中属性为x上取值为a^v且类别为k的样本 DkvDxavk
极 端 想 法 , 某 属 性 的 v 取 值 等 于 样 本 集 合 数 D 即 v = ∣ D ∣ , 则 ∣ D k v ∣ ∣ D v ∣ = 1 极端想法,某属性的v取值等于样本集合数D即 v = |D| ,则{|D_{k}^{v}|\over |D^v|} = 1 vDv=DDvDkv=1

信 息 熵 恒 大 于 零 , 0 ≤ − ( ∑ k = 1 n ∣ D k v ∣ ∣ D v ∣ l o g 2 ∣ D k v ∣ ∣ D v ∣ ) 信息熵恒大于零, 0 \le{-({\sum_{k=1}^{n}{|D_{k}^{v}| \over |D^v|}log_2{|D_{k}^{v}| \over |D^v|}})} 0(k=1nDvDkvlog2DvDkv)
所 以 0 ≤ ∑ v = 1 V ∣ D v ∣ ∣ D ∣ − ( ∑ k = 1 n ∣ D k v ∣ ∣ D v ∣ l o g 2 ∣ D k v ∣ ∣ D v ∣ ) 所以0 \le \sum_{v=1}^{V}{{|D^v|} \over {|D|}}{-({\sum_{k=1}^{n}{|D_{k}^{v}| \over |D^v|}log_2{|D_{k}^{v}| \over |D^v|}})} 0v=1VDDv(k=1nDvDkvlog2DvDkv)
当上式取最小值时,Gain(D,a) = Ent(D) 信息增益取到最大值。如果我们选择信息增益最大作为属性划分的话就会选择属性a来作为划分,会产生过拟合现象,所以加上惩罚项 就是C4.5

C4.5决策树

以信息增益率为准则来划分属性

G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain_ratio(D, a) = {Gain(D, a) \over IV(a)} Gainratio(D,a)=IV(a)Gain(D,a)
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a) = - {{\sum_{v=1}^{V}}{|D^v| \over {|D|}}log_2{|D^v| \over {|D|}}} IV(a)=v=1VDDvlog2DDv
IV(a) 等同于信息熵, 如果信息熵越大,惩罚项也越大,分母也大。
增益率准则对可取值数目较少的属性有所偏好。C4.5先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的

CART决策树

以基尼指数为准备来选择划分属性的决策树
基尼值
从集合D中随机抽取两个样本。其类别标记不一致的概率。因此基尼值越小,D的纯度越高

G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k ( 1 − p k ) Gini(D) = \sum_{k=1}^{|y|} \sum_{{k^{'}} \ne k} {p_k}{p^{'}_k} = \sum_{k=1}^{|y|} \sum_{{k^{'}} \ne k} {p_k}{(1 - {p_k})} Gini(D)=k=1yk=kpkpk=k=1yk=kpk(1pk)
= 1 − ∑ k = 1 ∣ y ∣ p k 2 = 1- {\sum_{k=1}^{|y|}p_k^{2}} =1k=1ypk2

G i n i i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini_index(D, a) = \sum_{v=1}^{V}{|D^v| \over |D|}{Gini(D^v)} Giniindex(D,a)=v=1VDDvGini(Dv)

分类算法CART
1.  根据基尼指数公式找出基尼指数最小的属性a
2.  计算属性a所有可能取值的基尼值,取最小的尼基值的点作为划分点,将D划分为D1和D2两个集合

其 中 D 1 = k ′ , D 2 = k = 1 − k ′ , D 1 是 k ′ = k 的 样 本 , D 2 是 k ′ ≠ k 其中D1 = {k^{'}} , D2= {k} = 1 - {k^{'}}, D1是{{k^{'}} = k}的样本, D2是{{k^{'}} \ne k} D1=k,D2=k=1kD1k=kD2k=k
3. 对集合D1和D2重复上述1,2过程直至结束。

回归算法CART
1.根据一下公式找出最优划分特征和最优划分点
2.公式自己百度,打不出来
3.根据划分点将集合D划分开
4.如此重复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值