基尼不纯度简介 - Gini Impurity

基尼不纯度Gini Impurity是理解决策树和随机森林分类算法的一个重要概念。我们先看看下面的一个简单例子 -

假如我们有以下的数据集

 

 我们如何选择一个很好的分割值把上面的5个蓝点和5个绿点完美的分开呢?通过观察,我们选择分隔值x=2

 

 如果我们选取x=1.5呢?

 

 这样做的结果是左边是4个蓝点,右边是5个绿点和1个蓝点。很显然,这种划分没有上面的好,可是我们如何定量地比较划分结果的好坏呢?

为了解决这个问题,人们引入了基尼不纯度这个概念,英文名称是Gini Impurity。接下来我们看看它是怎么计算出来的。

1. 随机从数据集中选出一个点

2. 计算数据集中数据分布概率:由于数据集中共有5个蓝点和5个绿点,所以随机选取的数据点有50%的可能性是蓝点,50%的可能性是绿点

3. 计算我们把上面随机选取的数据点分错类的概率(这个概率就是基尼不纯度Gini Impurity):直觉告诉我们这个分错类的概率是0.5,因此使用随机分类的基尼不纯度就是0.5

这是一个最简单的情况,如果我们的数据集中有C个分类,一个数据点正好是第i个分类的概率是p(i),那么计算基尼不纯度的公式就是

 

 使用这个公式计算前面随机分类的例子,我们还是得到同样的结果0.5

 

 如果我们使用x=2进行分类,相对应的基尼不纯度是多少呢?

 

使用x=2进行分类的决策树会有左右2给分支,左边有5个蓝点,右边有5个绿点。套用上面的公式,我们分别得到左右分支的基尼不纯度:

 

 因为这个一个完美的分类,因此这个不纯度为0,这也是最理想的分类结果。

我们再看看使用x=1.5进行分类的情况 -

因为左边分支只有4个蓝点,没有绿点,因此它的基尼不纯度为0;而右边分支有5个绿点1个蓝点,因此基尼不纯度为:

 

 

 有了上面的计算,我们应该如何选择最好的分类方法呢?

对应选择x=1.5的情况,我们知道在分类前的基尼不纯度为0.5,分类后左边分支为0,右边分支为0.278。如果我们考虑到2个分支各自拥有的数据点个数,我们得到一个加权平均值:

 

 跟分类前的基尼不纯度0.5相比,我们可以认为这个不纯度在分类后被降低了0.5 - 0.167 = 0.333,因此又把它称作基尼增益(Gini Gain)。基尼增益值越高,说明我们的分类效果越好。

posted @ 2020-05-27 07:12  吕汉鸿  阅读(11057)  评论(0编辑  收藏  举报
Save on your hotel - hotelscombined.com