小孩都看得懂的基尼不纯度

全文共 1343 字,16 幅图,

预计阅读时间 8 分钟。

本文是「小孩都看得懂」系列的第十一篇,本系列的特点是极少公式没有代码只有图画只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!

  1. 小孩都看得懂的神经网络

  2. 小孩都看得懂的推荐系统

  3. 小孩都看得懂的逐步提升

  4. 小孩都看得懂的聚类

  5. 小孩都看得懂的主成分分析

  6. 小孩都看得懂的循环神经网络

  7. 小孩都看得懂的 Embedding

  8. 小孩都看得懂的熵、交叉熵和 KL 散度

  9. 小孩都看得懂的 p-value

  10. 小孩都看得懂的假设检验

  11. 小孩都看得懂的基尼不纯度

0

定义

基尼不纯度 (Gini Impurity) 用来度量数据集的多样性 (diversity)。小孩肯定读不懂这句话,那么接着看下面。

1

提问:下面那组数据集看起来更多样?

回答:右边,因为里面形状更多一些。

2

如果你回答右图更多样,那么你的直觉是对的。这个模糊的“多样性”概念用精确的数学语言来定义就是基尼不纯度。

基尼不纯度是一个数,当它数值越大,对应的数据集越多样,即越不纯。左右两图的基尼不纯度分别为 0.42 和 0.7,右边大些,因此数据多样些。

3

不严谨举例

接下来计算上面两个 Gini 数值。方法就是从数据集中任意选两个数据 (组成一对) 然后看它们是否同异,

拿左图举例,选取 10 对,有 4 对中元素不同,那么"Gini" 数为 4/10 = 0.4。注意引号 “Gini” 表示这不是精确的基尼不纯度的数学定义,因为这只是一次实验,但是这个 “Gini” 可以用量化基尼不纯度。

同理看右图,选取 10 对,有 7 对中元素不同,那么"Gini" 数为 7/10 = 0.7。

右图 “Gini” 大,因此数据更多样,符合直觉,因为右边数据类别多,因此任选两个而它们不同的概率当然大些。

下面来看看严谨计算。

4

严谨计算

拿右图举例,首先画出所有对的 10 × 10 网格图。

每对中元素一样有下图这么多情况,16 + 9 + 4 + 1 = 30 中情况。

每对中元素不一样有下图这么多情况,100 减去 30 等于 70 种情况。

那么“不一样的比例”就等于

70 / 100 = 0.7

整套计算流程总结于下图,和上面唯一不同的是做了单位化,即把正方形网格的边用 1 表示,而不是 10,那么每对种含有蓝色元素、红色元素、绿色元素和黄色元素的概率为 0.4, 0.3, 0.2, 0.1。

5

复习

如果上面计算过程都看懂了,那么拿左图的例子再复习一边。

6

推广

机器学习注重推广能力 (generalization),人类学习同样注重,回想上面基尼不纯度的具体计算过程,很轻易的就能写出其通用数学公式,如下图所示:

看到这里,很多人会说,这个公式我在学决策树时见过,就是

没错,就是上面这个公式。当时光看公式缺少直觉,带着上面的图像联想这个公司是不是觉得太自然了。

7

练习

趁热打铁做几个练习,前两个已经计算过。

如果数据集里 10 个元素都一样,那么其基尼不纯度为 0, 也就说该数据集纯纯的。

如果数据集里 10 个元素都不一样,那么其基尼不纯度为 0.9, 也就说该数据集杂杂的。

基尼不纯度有可能为 1 么?不可能,但当数据集中数据无限多而又都不一样时,那么基尼不纯度接近 1。如下面公式,当 n 无限大,基尼不纯度为 1。

8

应用

基尼不纯度可用在决策树做分裂的指标。当用树来分类时,每次分裂越能分类数据越好,而越能分类数据这个能力就可以用基尼不纯度来度量。

小孩们都懂了么?

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值