【深度学习-基尼值与基尼系数增益构建决策树】
在决策树排序过程中,可以根据基尼值和基尼系数增益来确定哪些特征需要先决策、哪些后决策,构建一棵最有的决策树。本文主要介绍了如果使用基尼系数增益来构建决策树,针对相同系数增益的特征可以随意选择一种特征,当特征选择完成之后,需要根据已经重新分类的特征重新计算基尼系数,最终基于所有特征完成决策树的构建。
前言
在决策树排序过程中,可以根据基尼值和基尼系数增益来确定哪些特征需要先决策、哪些后决策,构建一棵最有的决策树。
一、基尼值、基尼系数增益计算公式
基尼值:从数据集中随机抽取两个样本,其类别标记不一致的概率,基尼值越小,数据集纯度越高。
G
i
n
i
(
D
)
=
∑
k
=
1
y
∑
k
′
≠
k
p
k
p
k
′
=
1
−
∑
k
=
1
y
p
k
2
Gini(D)=\sum_{k=1}^y\sum_{k'≠k}p_kp_k'=1-\sum_{k=1}^yp_k^2
Gini(D)=k=1∑yk′=k∑pkpk′=1−k=1∑ypk2
基尼指数:选择使划分后基尼系数最小的属性作为最优化分属性
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\frac{|D^v|}{|D|}Gini(D^v)
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
基尼增益:选择基尼增益最大的点进行优化划分
二、案例
1.引入是否拖欠贷款数据
2.计算基尼值和基尼指数
1.开始将所有记录看做是一个节点,此时拖欠贷款的数量是3,不拖欠贷款的数量是7,因此
G
i
n
i
(
D
)
=
1
−
(
3
10
)
2
−
(
7
10
)
2
=
0.42
Gini(D)=1-(\frac{3}{10})^2-(\frac{7}{10})^2=0.42
Gini(D)=1−(103)2−(107)2=0.42
2、遍历每个变量的每一种分割方式,找到最好的分割点
基于是否有房,有两个分类(有房、无房),见下表
有房 | 没房 | 总数 | |
---|---|---|---|
拖欠贷款 | 0 | 3 | 3 |
不拖欠贷款 | 3 | 4 | 7 |
有房的基尼系数增益
G
i
n
i
(
有房
)
=
1
−
(
0
3
)
2
−
(
3
3
)
2
=
0
Gini(有房)=1-(\frac{0}{3})^2-(\frac{3}{3})^2=0
Gini(有房)=1−(30)2−(33)2=0
无房的基尼系数增益
G
i
n
i
(
无房
)
=
1
−
(
3
7
)
2
−
(
4
7
)
2
=
0.4898
Gini(无房)=1-(\frac{3}{7})^2-(\frac{4}{7})^2=0.4898
Gini(无房)=1−(73)2−(74)2=0.4898
是否有房的基尼系数增益
{
是否有房
}
=
0.42
−
7
10
∗
0.4898
−
3
10
∗
0
=
0.077
\{是否有房\}=0.42-\frac{7}{10}*0.4898-\frac{3}{10}*0=0.077
{是否有房}=0.42−107∗0.4898−103∗0=0.077
基于婚姻状况,有三个分类(单身、已婚、离婚),见下表
(1)已婚:
已婚 | 其他 | 总数 | |
---|---|---|---|
拖欠贷款 | 0 | 3 | 3 |
不拖欠贷款 | 4 | 3 | 7 |
G
i
n
i
(
已婚
)
=
1
−
(
0
4
)
2
−
(
4
4
)
2
=
0
Gini(已婚)=1-(\frac{0}{4})^2-(\frac{4}{4})^2=0
Gini(已婚)=1−(40)2−(44)2=0
G
i
n
i
(
其他
)
=
1
−
(
3
6
)
2
−
(
3
6
)
2
=
0.5
Gini(其他)=1-(\frac{3}{6})^2-(\frac{3}{6})^2=0.5
Gini(其他)=1−(63)2−(63)2=0.5
G
i
n
i
(
已婚、其他
)
=
0.42
−
4
10
∗
0
−
6
10
∗
0.5
=
0.12
Gini(已婚、其他)=0.42-\frac{4}{10}*0-\frac{6}{10}*0.5=0.12
Gini(已婚、其他)=0.42−104∗0−106∗0.5=0.12
(2)单身:
单身 | 其他 | 总数 | |
---|---|---|---|
拖欠贷款 | 2 | 1 | 3 |
不拖欠贷款 | 2 | 5 | 7 |
G
i
n
i
(
单身
)
=
1
−
(
2
4
)
2
−
(
2
4
)
2
=
0.5
Gini(单身)=1-(\frac{2}{4})^2-(\frac{2}{4})^2=0.5
Gini(单身)=1−(42)2−(42)2=0.5
G
i
n
i
(
其他
)
=
1
−
(
1
6
)
2
−
(
5
6
)
2
=
0.27
Gini(其他)=1-(\frac{1}{6})^2-(\frac{5}{6})^2=0.27
Gini(其他)=1−(61)2−(65)2=0.27
G
i
n
i
(
单身、其他
)
=
0.42
−
4
10
∗
0.5
−
6
10
∗
0.27
=
0.058
Gini(单身、其他)=0.42-\frac{4}{10}*0.5-\frac{6}{10}*0.27=0.058
Gini(单身、其他)=0.42−104∗0.5−106∗0.27=0.058
(3)离婚:
离婚 | 其他 | 总数 | |
---|---|---|---|
拖欠贷款 | 1 | 2 | 3 |
不拖欠贷款 | 1 | 6 | 7 |
G
i
n
i
(
离婚
)
=
1
−
(
1
2
)
2
−
(
1
2
)
2
=
0.5
Gini(离婚)=1-(\frac{1}{2})^2-(\frac{1}{2})^2=0.5
Gini(离婚)=1−(21)2−(21)2=0.5
G
i
n
i
(
其他
)
=
1
−
(
2
8
)
2
−
(
6
8
)
2
=
0.375
Gini(其他)=1-(\frac{2}{8})^2-(\frac{6}{8})^2=0.375
Gini(其他)=1−(82)2−(86)2=0.375
G
i
n
i
(
离婚、其他
)
=
0.42
−
2
10
∗
0.5
−
8
10
∗
0.27
=
0.104
Gini(离婚、其他)=0.42-\frac{2}{10}*0.5-\frac{8}{10}*0.27=0.104
Gini(离婚、其他)=0.42−102∗0.5−108∗0.27=0.104
取 G i n i Gini Gini 的最大值,即 G i n i ( 已婚、其他 ) = 0.12 Gini(已婚、其他)=0.12 Gini(已婚、其他)=0.12
基于收入情况,是一个连续值,因此需要对该特征进行处理,按照升序排列,见下表
是否拖欠贷款 | no | no | no | yes | yes | yes | no | no | no | no |
---|---|---|---|---|---|---|---|---|---|---|
收入 | 60 | 70 | 75 | 85 | 90 | 95 | 100 | 120 | 125 | 220 |
相邻中值点 | 65 | 72.5 | 80 | 87.7 | 92.5 | 97.5 | 110 | 122.5 | 172.5 | |
G i n i Gini Gini 系数增益 | 0.02 | 0.045 | 0.077 | 0.003 | 0.02 | 0.12 | 0.077 | 0.045 | 0.02 |
通过计算, G i n i Gini Gini 的最大值为0.12,因此在决策树排序时可以按照婚姻状况或者收入来进行决策,这里选择婚姻状况首先来决策。比如:
总结
本文主要介绍了如果使用基尼系数增益来构建决策树,针对相同系数增益的特征可以随意选择一种特征,当特征选择完成之后,需要根据已经重新分类的特征重新计算基尼系数,最终基于所有特征完成决策树的构建
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)