基尼指数计算例题决策树
什么是决策树?
决策树是一种常见的机器学习算法,它通过将训练数据集划分为不同类别,来构建一个决策树模型,用于预测新数据的类别。决策树的节点表示数据的属性或特征,而边表示这些属性或特征之间的关系。决策树的最终节点是类别标签或者是一个叶子节点。
什么是基尼指数?
基尼指数是用于评估数据集纯度或不确定性的指标,它是一个度量指标,用于度量随机变量的不确定度。在分类问题中,基尼指数越小,则纯度越高,数据集越纯。在决策树算法中,基尼指数用于选择最优属性的划分点。
基尼指数计算例题
现在我们来看一个关于基尼指数的计算例题:
假设我们有一个数据集,它包含10个样本数据,每个样本数据包含两个特征x和y,以及一个类别标签,如下所示:
样本编号 | x特征 | y特征 | 类别标签 |
1 | 1 | 2 | A |
2 | 2 | 1 | A |
3 | 2 | 3 | B |
4 | 3 | 1 | B |
5 | 1 | 1 | B |
6 | 3 | 3 | A |
7 | 2 | 2 | A |
8 | 1 | 3 | A |
9 | 3 | 2 | B |
10 | 2 | 1 | B |
现在我们要使用基尼指数来选择x和y中的最优属性划分点,使得决策树的节点纯度最大。我们首先需要计算数据集的基尼指数,公式如下所示:
$$Gini(D) = 1 - \\sum_{k=1}^{|y|}{(\\frac {|C_k|}{|D|})^2}$$其中,D表示数据集,y表示数据集中的类别标签集合,|y|表示类别标签的个数,Ck表示属于第k个类别标签的样本数据集合,|Ck|表示第k个类别标签的样本数据个数。按照公式,我们可以先计算出数据集的类别分布情况如下:
- A类别标签:4个(样本1,样本2,样本6和样本7)
- B类别标签:6个(样本3,样本4,样本5,样本8,样本9和样本10)
因此,我们可将上述数据集的基尼指数计算出来:
$$Gini(D) = 1 - (\\frac {4}{10})^2 - (\\frac {6}{10})^2 = 0.48$$接下来,我们可以计算在x和y两个特征上的基尼指数。假设我们是要选择x特征为划分点,我们可以将数据集划分为以下两个子数据集:
- x=1的子数据集:包含3个样本数据(样本1,样本5和样本8)
- x>=2的子数据集:包含7个样本数据(样本2,样本3,样本4,样本6,样本7,样本9和样本10)
我们可以在上述两个子数据集上分别计算基尼指数,并根据公式,将它们加权平均起来,作为在x特征上的基尼指数。具体而言,基尼指数计算公式如下所示:
$$Gini(D,x) = \\sum_{v=1}^{|V|}(\\frac {|D^v|}{|D|}Gini(D^v))$$其中,x表示要划分的特征,V表示x特征的取值集合,|V|表示取值的个数,Dv表示在x特征上取值为v的子数据集。按照公式,我们可以先计算出划分后的两个子数据集的类别分布情况如下:
- x=1的子数据集:包含3个样本数据,纯度为1
- x>=2的子数据集:
- A类别标签:3个(样本7,样本2和样本6)
- B类别标签:4个(样本10,样本4,样本9和样本3)
- Gini(D^v) = 1 - (\\frac {3}{7})^2 - (\\frac {4}{7})^2 = 0.49
因此,我们可将在x特征上的基尼指数计算出来:
$$Gini(D,x) = \\frac {3}{10} \imes 1 + \\frac {7}{10} \imes 0.49 = 0.544$$同理,我们也可以在y特征上重复上述计算过程,将在y特征上的基尼指数计算出来:
$$Gini(D,y) = \\sum_{v=1}^{|V|}(\\frac {|D^v|}{|D|}Gini(D^v))$$其中,y=1的子数据集和y=3的子数据集都只包含了一个样本数据,所以它们的基尼指数为0。因此,我们可将在y特征上的基尼指数计算出来:
$$Gini(D,y) = \\frac {2}{10} \imes 0 + \\frac {8}{10} \imes 0.375 = 0.3$$由于在y特征上的基尼指数最小,因此我们可选择y特征作为划分点,构建决策树模型,其分类结果如下所示:

上述所述,便是关于基尼指数计算例题决策树的全部内容。