CART决策树-基尼指数(全网最详解)
基尼指数(Gini Index)表示从数据集中随机抽取两个样本,它们类别标记不一致的概率。Gini系数D∑k1Kpk1−pk1−∑k1Kpk2Gini系数(D)= \sum_{k=1}^{K} p_k(1-p_k)=1-\sum_{k=1}^{K} p^{2}_kGini系数Dk1∑Kpk1−pk1−k1∑Kpk2Gini指数DA∣D1∣∣D∣Gini系数。
CART决策树基尼指数是CART(Classification And Regression Tree)算法中用于分类任务的一种评估指标,主要用于衡量数据集的不纯度或不确定性。以下是关于CART决策树基尼指数的详细解释:
一、基尼指数的定义
基尼指数(Gini Index)表示从数据集中随机抽取两个样本,它们类别标记不一致的概率。对于一个包含K个类别的数据集D,其基尼指数的计算公式为:
G
i
n
i
系数
(
D
)
=
∑
k
=
1
K
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
Gini系数(D)= \sum_{k=1}^{K} p_k(1-p_k)=1-\sum_{k=1}^{K} p^{2}_k
Gini系数(D)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
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)
其中, p k p_k pk表示类别k在数据集D中的比例。基尼指数的取值范围在[0, 1]之间,值越小表示数据集的纯度越高,即属于同一类别的样本占比越大。
二、基尼指数在CART决策树中的应用
在构建CART分类树时,算法会根据基尼指数来选择最优的特征进行数据集的分割。具体步骤如下:
- 计算基尼指数:对于每个特征,算法会尝试所有可能的切分点,并计算切分后左右子集的基尼指数。
- 选择最佳切分:选择使得划分后基尼指数加权和最小的那个特征和切分点作为最优划分。加权和是根据子集大小(样本数量)来计算的。
- 递归构建树:以选定的特征和阈值进行数据集的分割,然后对每个子集重复上述过程,直至满足停止条件(如节点中的样本都属于同一类别、达到预设的最大深度、节点中的样本数低于某个阈值等)。
三、基尼指数与CART决策树的构建
CART决策树的构建过程是一个递归的过程,通过不断选择最优特征和切分点来分割数据集,直到满足停止条件。基尼指数在这个过程中起到了关键作用,它帮助算法选择出能够最大程度降低数据集不纯度的特征和切分点。下面我们举例说明。
例:
1.计算每个子集的基尼系数:
首先计算各特征的基尼指数,选择最优特征以及其最优切分点。分别以
A
1
A_1
A1,
A
2
A_2
A2,
A
3
A_3
A3,
A
4
A_4
A4表示年龄、有工作、有自己的房子和信贷情况4个特征,并以1,2,3表示年龄的值为青年、中年和老年,以1,2表示有工作和有自己的房子的值为是和否,以1,2,3表示信贷情况的值为非常好、好和一般.
对于子集
A
1
A_1
A1,我们计算其基尼指数Gini(
A
1
A_1
A1),这涉及到计算
A
1
A_1
A1中每个类别的比例,并代入基尼指数公式。
同理,对于子集
A
2
A_2
A2,
A
3
A_3
A3,
A
4
A_4
A4,我们计算Gini(
A
2
A_2
A2,
A
3
A_3
A3,
A
4
A_4
A4)。
特征
A
1
A_1
A1(年龄)的基尼系数:
首先我们代入公式:
G
i
n
i
(
D
)
=
∑
k
=
1
K
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
Gini(D)= \sum_{k=1}^{K} p_k(1-p_k)=1-\sum_{k=1}^{K} p^{2}_k
Gini(D)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
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)
青年(5人,2人贷款)的基尼系数:
G
i
n
i
系数
(
D
1
)
=
2
5
∗
(
1
−
2
5
)
+
3
5
∗
(
1
−
3
5
)
=
0.48
Gini系数(D_1)=\frac{2}{5}*(1-\frac{2}{5})+\frac{3}{5}*(1-\frac{3}{5})=0.48
Gini系数(D1)=52∗(1−52)+53∗(1−53)=0.48
G
i
n
i
系数
(
D
1
)
=
2
∗
2
5
∗
(
1
−
2
5
)
=
0.48
Gini系数(D_1)=2*\frac{2}{5}*(1-\frac{2}{5})=0.48
Gini系数(D1)=2∗52∗(1−52)=0.48
如果是类别是二分类,则基尼系数:
p
(
1
−
p
)
+
(
1
−
p
)
p
=
2
p
(
1
−
p
)
p(1-p)+(1-p)p=2p(1-p)
p(1−p)+(1−p)p=2p(1−p)
非青年(10人,7人贷款)的基尼系数:
G
i
n
i
系数
(
D
2
)
=
2
∗
7
10
∗
(
1
−
7
10
)
=
0.42
Gini系数(D_2)=2*\frac{7}{10}*(1-\frac{7}{10})=0.42
Gini系数(D2)=2∗107∗(1−107)=0.42
2.计算基尼指数
在
A
1
=
1
A_1=1
A1=1(青年)条件下,D的基尼指数:
G
i
n
i
指数
(
D
,
A
1
=
1
)
=
5
15
∗
0.48
+
10
15
∗
0.42
=
0.44
Gini指数(D,A_1=1)=\frac{5}{15}*0.48+\frac{10}{15}*0.42=0.44
Gini指数(D,A1=1)=155∗0.48+1510∗0.42=0.44
总公式为:
G
i
n
i
指数
(
D
,
A
1
=
1
)
=
5
15
∗
[
2
∗
2
5
∗
(
1
−
2
5
)
]
+
10
15
∗
[
2
∗
7
10
∗
(
1
−
7
10
]
=
0.44
Gini指数(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.44
Gini指数(D,A1=1)=155∗[2∗52∗(1−52)]+1510∗[2∗107∗(1−107]=0.44
在
A
1
=
2
A_1=2
A1=2(中年)条件下,D的基尼指数:
G
i
n
i
指数
(
D
,
A
1
=
2
)
=
5
15
∗
[
2
∗
3
5
∗
(
1
−
3
5
)
]
+
10
15
∗
[
2
∗
6
10
∗
(
1
−
6
10
]
=
0.48
Gini指数(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.48
Gini指数(D,A1=2)=155∗[2∗53∗(1−53)]+1510∗[2∗106∗(1−106]=0.48
在
A
1
=
3
A_1=3
A1=3条件下,D的基尼:
G
i
n
i
指数
(
D
,
A
1
=
3
)
=
5
15
∗
[
2
∗
4
5
∗
(
1
−
4
5
)
]
+
10
15
∗
[
2
∗
5
10
∗
(
1
−
5
10
]
=
0.44
Gini指数(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.44
Gini指数(D,A1=3)=155∗[2∗54∗(1−54)]+1510∗[2∗105∗(1−105]=0.44
3.选择最优特征
由于 G i n i 指数 ( D , A 1 = 1 ) Gini指数(D,A_1=1) Gini指数(D,A1=1)和 G i n i 指数 ( D , A 1 = 3 ) Gini指数(D,A_1=3) Gini指数(D,A1=3)相等,且最小,所以 A 1 = 1 A_1=1 A1=1和 A 1 = 3 A_1=3 A1=3都可以选作 A 1 A_1 A1的最优切点。
4.其余基尼指数
同理:
求特征
A
2
A_2
A2和
A
3
A_3
A3的基尼指数:
G
i
n
i
(
D
,
A
2
=
1
)
=
0.32
Gini(D, A_2=1)=0.32
Gini(D,A2=1)=0.32
G
i
n
i
(
D
,
A
3
=
1
)
=
0.27
Gini(D,A_3=1)=0.27
Gini(D,A3=1)=0.27
由于
A
2
A_2
A2和
A
3
A_3
A3只有一个切分点,所以它们就是最优切分点。
求特征
A
4
A_4
A4的基尼指数:
G
i
n
i
(
D
,
A
4
=
1
)
=
0.36
Gini(D,A_4=1)=0.36
Gini(D,A4=1)=0.36
G
i
n
i
(
D
,
A
4
=
2
)
=
0.47
Gini(D,A_4=2)=0.47
Gini(D,A4=2)=0.47
G
i
n
i
(
D
,
A
4
=
3
)
=
0.32
Gini(D, A_4=3)=0.32
Gini(D,A4=3)=0.32
G
i
n
i
(
D
,
A
4
=
3
)
Gini(D,A_4=3)
Gini(D,A4=3)最小,所以
A
4
=
3
A_4=3
A4=3为A的最优切分点。
5.构建决策树
在 A 1 A_1 A1, A 2 A_2 A2, A 3 A_3 A3, A 4 A_4 A4几个特征中, G i n i ( D , A 3 = 1 ) = 0.27 Gini(D,A_3=1)=0.27 Gini(D,A3=1)=0.27最小,所以选择特征 A 3 A_3 A3为最优特征, A 3 = 1 A_3=1 A3=1为其最优切分点,于是根结点生成两个子结点,一个是叶结点.对另一个结点继续使用以上方法在 A 1 A_1 A1, A 2 A_2 A2, A 4 A_4 A4中选择最优特征及其最优切分点,结果是 A 2 = 1 A_2=1 A2=1依此计算得知,所得结点都是叶结点.
四、总结
基尼指数是CART决策树中用于分类任务的重要评估指标,它通过衡量数据集的不纯度来帮助算法选择最优的特征和切分点进行数据集的分割。在构建CART分类树时,基尼指数起到了关键作用,确保了决策树的准确性和泛化能力。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)