XGBOOSTXGBOOSTXGBOOST
ID3:
信息增益(information gain)
Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)(1)Gain(D,a)=Ent(D)-\sum_{v=1}^V\dfrac{|D^v|}{|D|}{Ent(D^v)}\quad\quad(1)Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)(1)
其中:Ent(D)=−∑k=1yPklog2PkEnt(D)=-\sum_{k=1}^y{P_klog_2P_k}Ent(D)=−∑k=1yPklog2Pk也称为熵。
\quad\quad决策树的本质是训练数据集中归纳出一组分类规则,我们需要的是一个训练数据矛盾较小的决策树,同时具有很好的泛化能力。Ent(D)Ent(D)Ent(D)的值越小,则DDD的训读就越高,熵表示随机变量不确定性的度量。
表一:贷款申请样本数据表表一:贷款申请样本数据表表一:贷款申请样本数据表
ID | 年龄 | 有工作 | 有自己房子 | 信贷情况 | 类别 |
---|---|---|---|---|---|
1 | 青年 | 否 | 否 | 一般 | 否 |
2 | 青年 | 否 | 否 | 好 | 否 |
3 | 青年 | 是 | 否 | 好 | 是 |
4 | 青年 | 是 | 是 | 一般 | 是 |
5 | 青年 | 否 | 否 | 一般 | 否 |
6 | 中年 | 否 | 否 | 一般 | 否 |
7 | 中年 | 否 | 否 | 好 | 否 |
8 | 中年 | 是 | 是 | 好 | 是 |
9 | 中年 | 否 | 是 | 非常好 | 是 |
10 | 中年 | 否 | 是 | 非常好 | 是 |
11 | 老年 | 否 | 是 | 非常好 | 是 |
12 | 老年 | 否 | 是 | 好 | 是 |
13 | 老年 | 是 | 否 | 好 | 是 |
14 | 老年 | 是 | 否 | 非常好 | 是 |
15 | 老年 | 否 | 否 | 一般 | 否 |
例题一:计算上述个样本的信息增益
① H(D)=−915log2915−615log2615=0.971H(D)=-\dfrac{9}{15}log_2\dfrac{9}{15}-\dfrac{6}{15}log_2\dfrac{6}{15}=0.971H(D)=−159log2159−156log2156=0.971
g(D,A1)=H(D)−[515H(D1)+515H(D2)+515H(D3)]g(D,A_1)=H(D)-[\dfrac{5}{15}H(D_1)+\dfrac{5}{15}H(D_2)+\dfrac{5}{15}H(D_3)]g(D,A1)=H(D)−[155H(D1)+155H(D2)+155H(D3)]
\quad\quad\quad\quad=0.971−[515(−25log225)−35log235)=0.971-[\dfrac{5}{15}(-\dfrac{2}{5}log_2\dfrac{2}{5})-\dfrac{3}{5}log_2\dfrac{3}{5})=0.971−[155(−52log252)−53log253)
\quad\quad\quad\quad\quad\quad\quad\quad+515(−35log235)−25log225)+\dfrac{5}{15}(-\dfrac{3}{5}log_2\dfrac{3}{5})-\dfrac{2}{5}log_2\dfrac{2}{5})+155(−53log253)−52log252)
\quad\quad\quad\quad\quad\quad\quad\quad+515(−45log245)−15log215)]+\dfrac{5}{15}(-\dfrac{4}{5}log_2\dfrac{4}{5})-\dfrac{1}{5}log_2\dfrac{1}{5})]+155(−54log254)−51log251)]
\quad\quad\quad\quad=0.971−0.888=0.971-0.888=0.971−0.888
\quad\quad\quad\quad=0.083=0.083=0.083
②g(D,A2)=H(D)−[515H(D1)+1015H(D2)]g(D,A_2)=H(D)-[\dfrac{5}{15}H(D_1)+\dfrac{10}{15}H(D_2)]g(D,A2)=H(D)−[155H(D1)+1510H(D2)]
\quad\quad\quad\quad\quad=0.971−0.647=0.971-0.647=0.971−0.647
\quad\quad\quad\quad\quad=0.324=0.324=0.324
③g(D,A3)=H(D)−[615H(D1)+915H(D2)]g(D,A_3)=H(D)-[\dfrac{6}{15}H(D_1)+\dfrac{9}{15}H(D_2)]g(D,A3)=H(D)−[156H(D1)+159H(D2)]
\quad\quad\quad\quad\quad=0.971−0.551=0.971-0.551=0.971−0.551
\quad\quad\quad\quad\quad=0.420=0.420=0.420
④g(D,A4)=H(D)−[415H(D1)+615H(D2)+515H(D3)]g(D,A_4)=H(D)-[\dfrac{4}{15}H(D_1)+\dfrac{6}{15}H(D_2)+\dfrac{5}{15}H(D_3)]g(D,A4)=H(D)−[154H(D1)+156H(D2)+155H(D3)]
\quad\quad\quad\quad\quad=0.971−0.608=0.971-0.608=0.971−0.608
\quad\quad\quad\quad\quad=0.363=0.363=0.363
C4.5:
\qquad 特征A对训练数据集D的信息增益比gR(D,A)g_R(D,A)gR(D,A)定义为其信息增益g(D,A)g(D,A)g(D,A)与训练数据集D关于特征A的值的熵HA(D)H_A(D)HA(D)之比即:gainRatio(D,A)=g(D,A)HA(D)(2)gainRatio(D,A)=\frac{g(D,A)}{H_A(D)}\quad\quad(2)gainRatio(D,A)=HA(D)g(D,A)(2)
其中:HA(D)=∑i=1n∣Di∣∣D∣log2∣Di∣∣D∣H_A(D)=\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|}HA(D)=∑i=1n∣D∣∣Di∣log2∣D∣∣Di∣
例如:对年龄求HA(D)H_A(D)HA(D)
则HA1(D)=−515(−25log25−35log35)H_{A_1}(D)=-\dfrac{5}{15}(-\dfrac{2}{5}log\dfrac{2}{5}-\dfrac{3}{5}log\dfrac{3}{5})HA1(D)=−155(−52log52−53log53)
=−515(−35log35−25log25)\quad\quad\quad\quad=-\dfrac{5}{15}(-\dfrac{3}{5}log\dfrac{3}{5}-\dfrac{2}{5}log\dfrac{2}{5})=−155(−53log53−52log52)
=−515(−45log45−15log15)\quad\quad\quad\quad=-\dfrac{5}{15}(-\dfrac{4}{5}log\dfrac{4}{5}-\dfrac{1}{5}log\dfrac{1}{5})=−155(−54log54−51log51)
=0.888\quad\quad\quad\quad=0.888=0.888
则gainRatio(D,A1)=g(D,A1)HA1(D)=0.0830.888=0.093gainRatio(D,A_1)=\dfrac{g(D,A_1)}{H_{A1}(D)}=\dfrac{0.083}{0.888}=0.093gainRatio(D,A1)=HA1(D)g(D,A1)=0.8880.083=0.093
同理:gainRatio(D,A2)=0.3240.647=0.501gainRatio(D,A_2)=\dfrac{0.324}{0.647}=0.501gainRatio(D,A2)=0.6470.324=0.501
gainRatio(D,A3)=0.4200.551=0.762\quad\quad gainRatio(D,A_3)=\dfrac{0.420}{0.551}=0.762gainRatio(D,A3)=0.5510.420=0.762
gainRatio(D,A4)=0.3630.608=0.597\quad\quad gainRatio(D,A_4)=\dfrac{0.363}{0.608}=0.597gainRatio(D,A4)=0.6080.363=0.597
\quad增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选取增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益最高的。
剪枝
\quad预剪枝:在决策树生成过程过程中,在每个节点上划分之前先进行估计,若当前节点的划分不能带来决策树的泛化性能提升,则停止划分并将当前节点标记为叶节点。
\quad后剪枝:是先从训练集中生成一棵完整的决策树,然后自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能的提升,则将该子树替换为叶节点。
\quad决策树的剪枝,往往是通过极小化决策树整体的损失函数或代价函数来实现,决策树学习的损失函数可以定义为:Cα(T)=∑t=1∣T∣NtHt(T)+α∣T∣(3)C_\alpha(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|\quad\quad(3)Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣(3)
其中:∣T∣|T|∣T∣为叶子节点个数,ttt是树∣T∣|T|∣T∣的叶节点,该叶节点有NtN_tNt个样本点,其中kkk类的样本点有NtkN_{tk}Ntk个。
Ht(T)=−∑kNtkNtlog2NtkNt(4)H_t(T)=-\sum_{k}\dfrac{N_{tk}}{N_t}log_2\dfrac{N_{tk}}{N_t}\quad\quad(4)Ht(T)=−k∑NtNtklog2NtNtk(4)
在损失函数中
C(T)=∑t=1∣T∣NtHt(T)=−∑t=1∣T∣∑k=1KNtklog2NtkNt(5)C(T)=\sum_{t=1}^{|T|}N_tH_t(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log_2\dfrac{N_{tk}}{N_t}\quad\quad(5)C(T)=t=1∑∣T∣NtHt(T)=−t=1∑∣T∣k=1∑KNtklog2NtNtk(5)
则Cα(T)=C(T)+α∣T∣C_\alpha(T)=C(T)+\alpha{|T|}Cα(T)=C(T)+α∣T∣
例:∣T∣{|T|}∣T∣其实就是模型的复杂度。
颜色 | 测试人员 | 结果 |
---|---|---|
yellow | adult | 1 |
yellow | child | 0 |
1°1^°1°局部剪枝前,该节点的损失为:Cα(T)=C(T)+α∣T∣=0+2α=2αC_\alpha(T)=C(T)+\alpha{|T|}=0+2\alpha=2\alphaCα(T)=C(T)+α∣T∣=0+2α=2α
2°2^°2°局部剪枝后,该节点的损失为:Cα(T)=C(t)+α∣t∣=C(t)+αC_\alpha(T)=C(t)+\alpha{|t|}=C(t)+\alphaCα(T)=C(t)+α∣t∣=C(t)+α
其中:C(t)=NtHt=2(−12log12−12log12)=2C(t)=N_tH_t=2(-\dfrac{1}{2}log\dfrac{1}{2}-\dfrac{1}{2}log\dfrac{1}{2})=2C(t)=NtHt=2(−21log21−21log21)=2
故:Cα(T)=2+αC_\alpha(T)=2+\alphaCα(T)=2+α,定义α=特征个数2\alpha=\frac{特征个数}{2}α=2特征个数
CART
\quadCART同样是由特征选择树的生成及剪枝组成,既可用于分类也可用于回归,常用Gini系数度量。
\quadCART由两步组成,①决策树的生成基于训练数据生成决策树,生成的树尽量大。②决策树的剪枝,用验证数据集对已经生成的树进行剪枝,并选择最优子树,此时用损失函数最小作为剪枝的标准。
**例:**还以前面表格为例
A1,A2,A3,A4\quad A_1,A_2,A_3,A_4A1,A2,A3,A4分别表示年龄、有工作、有自己房子和信贷情况这四个特征并以1、2、3表示青中老年,以1、2表示有工作和有自己房子的值为是和否,以1、2、3表示信贷情况的值为非常好、好、一般,求特征A的基尼指数。
Gain(D,A1=1)=515[2×25×(1−25)+1015[2×710×(1−710)]=0.44Gain(D,A_1=1)=\frac{5}{15}[2×\frac{2}{5}×(1-\frac{2}{5})+\frac{10}{15}[2×\frac{7}{10}×(1-\frac{7}{10})]=0.44Gain(D,A1=1)=155[2×52×(1−52)+1510[2×107×(1−107)]=0.44
Gain(D,A1=2)=515[2×35×(1−35)+1015[2×610×(1−610)]=0.48Gain(D,A_1=2)=\frac{5}{15}[2×\frac{3}{5}×(1-\frac{3}{5})+\frac{10}{15}[2×\frac{6}{10}×(1-\frac{6}{10})]=0.48Gain(D,A1=2)=155[2×53×(1−53)+1510[2×106×(1−106)]=0.48
Gain(D,A1=3)=515[2×45×(1−45)+1015[2×510×(1−510)]=0.44Gain(D,A_1=3)=\frac{5}{15}[2×\frac{4}{5}×(1-\frac{4}{5})+\frac{10}{15}[2×\frac{5}{10}×(1-\frac{5}{10})]=0.44Gain(D,A1=3)=155[2×54×(1−54)+1510[2×105×(1−105)]=0.44
即:A1、A3A_1、A_3A1、A3都可以,选A1A_1A1青年一类,(中、老年)为一类。
有工作和有自己的房子都是二份,可以不用切分,则信贷情况A4A_4A4:
Gain(D,A4=1)=415×0+1115[2×511×(1−511)]=0.36Gain(D,A_4=1)=\dfrac{4}{15}×0+\dfrac{11}{15}[2×\dfrac{5}{11}×(1-\dfrac{5}{11})]=0.36Gain(D,A4=1)=154×0+1511[2×115×(1−115)]=0.36
Gain(D,A4=2)=0.47Gain(D,A_4=2)=0.47Gain(D,A4=2)=0.47
Gain(D,A4=3)=0.32Gain(D,A_4=3)=0.32Gain(D,A4=3)=0.32
则:Gain(D,A4=3)Gain(D,A_4=3)Gain(D,A4=3)最小,故选为最优切分点。
{
Gain(D,A1=3)=0.44Gain(D,A2=1)=0.32=515×(1×0×2)+1015×(410×610×2)=0.32Gain(D,A3=1)=0.27=615×(1×0×2)+915×(39×69×2)=0.27Gain(D,A4=3)=0.32\begin{cases} Gain(D,A_1=3)=0.44\\&&&&\\ Gain(D,A_2=1)=0.32=\frac{5}{15}×(1×0×2)+\frac{10}{15}×(\frac{4}{10}×\frac{6}{10}×2)=0.32\\&&&&\\ Gain(D,A_3=1)=0.27=\frac{6}{15}×(1×0×2)+\frac{9}{15}×(\frac{3}{9}×\frac{6}{9}×2)=0.27\\&&&&\\ Gain(D,A_4=3)=0.32 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧