集成学习之GBDT预备知识

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

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=1Kpk(1pk)=1k=1Kpk2

显然,这就是样本点被错分的概率期望。如果整个样本集只有一个类别,那么基尼指数就是0,表示样本集纯度达到最高值。反正总共就一个类,那么任意抽取一个样本,自然就知道它的归属类别。

对于二类分类问题
如果样本点属于第一类的概率是 p p p,不属于的概率就是 1 − p 1-p 1p,代入到这个公式里就是: 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(1p)+(1p)(1(1p))=2p(1p)
然而实际生活中概率 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)=1k=12(DCk)2,其中 ∣ C k ∣ ∣ D ∣ \frac{|C_k|}{|D|} DCk就是 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)=DD1Gini(D1)+DD2Gini(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(1p)=22121=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)=26561=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)=24044=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)=1063610+1040=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)=25253=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)=25352=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)=212512+21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值