GBDT预备知识
0.参考文献和思维导图
1.预备知识
1.1 决策树CART算法
CART算法包括:选择特征、生成决策树、剪枝。
1.1.1 与C4.5等的算法区别
区别1:C4.5等算法一般都是多叉树,而CART是二叉树。
如图C4.5生成的决策树:

多叉树怎么转换为二叉树:
例如:对于
纹理这个特征而言,可以分为清晰、稍模糊、模糊三叉树,但是如果把这个三叉树改成二叉树,就可以写成清晰和不清晰,接着在「不清晰」中,再分为模糊和稍模糊。
区别2:选择特征的依据不同
要想生成一棵决策树,首先应该选择最优特征。在CART算法中,是通过基尼指数来选择最优特征的,ID3和C4.5是使用信息增益和信息增益比。
1.1.2 基尼指数
假设有 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}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2 Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
显然,这就是样本点被错分的概率期望。如果整个样本集只有一个类别,那么基尼指数就是0,表示样本集纯度达到最高值。反正总共就一个类,那么任意抽取一个样本,自然就知道它的归属类别。
对于二类分类问题
如果样本点属于第一类的概率是 p p p,不属于的概率就是 1 − p 1-p 1−p,代入到这个公式里就是: G i n i ( p ) = p ( 1 − p ) + ( 1 − p ) ( 1 − ( 1 − p ) ) = 2 p ( 1 − p ) \begin{aligned}Gini(p)&=p(1-p)+(1-p)(1-(1-p))\\&=2p(1-p)\end{aligned} Gini(p)=p(1−p)+(1−p)(1−(1−p))=2p(1−p)
然而实际生活中概率 p p p无法知道,只能用估计值,所以有以下:
如果对给定的样本集合 D D D,可以分为两个子集 C 1 C_1 C1和 C 2 C_2 C2: G i n i ( p ) = 1 − ∑ k = 1 2 ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(p)=1-\sum_{k=1}^2\left(\frac{|C_k|}{|D|}\right)^2 Gini(p)=1−k=1∑2(∣D∣∣Ck∣)2,其中 ∣ C k ∣ ∣ D ∣ \frac{|C_k|}{|D|} ∣D∣∣Ck∣就是 p p p的经验值。
之所以单独把二分类的情况列出来,是因为在提出基尼指数的CART算法中用的就是这个,毕竟CART算法生成的是二叉决策树。但其实基尼指数完全可以用到多分类问题中。
如:对于特征A条件下,样本集D的基尼指数为
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)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
这里就是选定了特征A,并且将数据集中按照特征分成了两个数据集,再分别求它们对应的基尼指数。
1.1.3 基尼指数例题
拿水蜜桃来举个例子。一共 10 10 10个桃子,其中 5 5 5个好吃, 5 5 5个不好吃。
那么可以计算出整个数据集的基尼指数: G i n i ( D ) = 2 p ( 1 − p ) = 2 ∗ 1 2 ∗ 1 2 = 0.5 Gini(D)=2p(1-p)=2*\frac{1}{2}*\frac{1}{2}=0.5 Gini(D)=2p(1−p)=2∗21∗21=0.5,分类:好吃和不好吃,两种。
第一个特征,选择甜度特征
按照甜度阈值 ϵ = 0.2 \epsilon=0.2 ϵ=0.2分成两组。
假设,甜度大于 0.2 0.2 0.2的有 6 6 6个桃子,其中 5 5 5个好吃, 1 1 1个不好吃,甜度小于等于 0.2 0.2 0.2的有 4 4 4个桃子,都不好吃,那么我们就可以列出这样一个二叉树。数据集就被分成了 D 1 D_1 D1和 D 2 D_2 D2两个。这里我们把甜度特征标记为 A A A。
如图:

接着来计算甜度特征下的基尼指数:
计算 D 1 D_1 D1数据集的基尼指数: G i n i ( D 1 ) = 2 ∗ 5 6 ∗ 1 6 = 10 36 Gini(D_1)=2*\frac{5}{6}*\frac{1}{6}=\frac{10}{36} Gini(D1)=2∗65∗61=3610
接着计算 D 1 D_1 D1占比的权重为: w 1 = 6 10 w_1=\frac{6}{10} w1=106
计算 D 2 D_2 D2数据集的基尼指数: G i n i ( D 2 ) = 2 ∗ 0 4 ∗ 4 4 = 0 Gini(D_2)=2*\frac{0}{4}*\frac{4}{4}=0 Gini(D2)=2∗40∗44=0
接着计算 D 2 D_2 D2占比的权重为: w 2 = 4 10 w_2=\frac{4}{10} w2=104
计算甜度特征下的基尼指数 G i n i ( D , A ) = 6 10 ∗ 10 36 + 4 10 ∗ 0 = 0.17 Gini(D,A)=\frac{6}{10}*\frac{10}{36}+\frac{4}{10}*0=0.17 Gini(D,A)=106∗3610+104∗0=0.17
第二个特征,选择硬度特征
按照软硬分成两组。
假设,有5个硬桃子,其中2个好吃,3个不好吃,5个软桃子中,有3个好吃,2个不好吃。那么继续列出一个二叉树,这里我们把硬度特征标记为 B B B。

计算 D 1 D_1 D1数据集的基尼指数:
G i n i ( D 1 ) = 2 ∗ 2 5 ∗ 3 5 = 12 25 Gini(D_1)=2*\frac{2}{5}*\frac{3}{5}=\frac{12}{25} Gini(D1)=2∗52∗53=2512
接着计算 D 1 D_1 D1占比的权重为: w 1 = 5 10 w_1=\frac{5}{10} w1=105
计算 D 2 D_2 D2数据集的基尼指数: G i n i ( D 2 ) = 2 ∗ 3 5 ∗ 2 5 = 12 25 Gini(D_2)=2*\frac{3}{5}*\frac{2}{5}=\frac{12}{25} Gini(D2)=2∗53∗52=2512
接着计算 D 2 D_2 D2占比的权重为: w 2 = 5 10 w_2=\frac{5}{10} w2=105
计算甜度特征下的基尼指数: G i n i ( D , B ) = 1 2 ∗ 12 25 + 1 2 ∗ 12 25 = 0.48 Gini(D,B)=\frac{1}{2}*\frac{12}{25}+\frac{1}{2}*\frac{12}{25}=0.48 Gini(D,B)=21∗2512+21∗

文章详细介绍了CART算法的基础知识,包括决策树的概念、CART算法与C4.5的区别、基尼指数的计算及其应用。通过示例展示了如何使用基尼指数选择最优特征来构建分类树,并解释了回归树的生成原理和最小化平方误差的方法。最后提到了CART的剪枝过程。
最低0.47元/天 解锁文章
999

被折叠的 条评论
为什么被折叠?



