首页 > 其他分享 >基尼系数的直观解释

基尼系数的直观解释

时间:2024-05-16 15:51:57浏览次数:24  
标签:解释 蓝色 数据 模型 分类 紫色 基尼系数 直观

我们在使用分类算法训练数据后,评价分类模型的优劣时,经常会遇到一个词,“基尼系数”。
那么,什么是基尼系数呢?

本文将尝试用最简单的方式介绍什么是“基尼系数”以及它的计算方法和意义。
希望能让大家对基尼系数有个直观的印象,而不仅仅是记住它枯燥的计算公式。

1. 从分类模型开始

首先,先假设有一个分类案例,包含2个种类的数据(紫色和蓝色),每个分类的数据有10个
image.png
上图中的3种不同颜色的直线,代表3种不同参数的分类模型。
从图中可以看出:

  • 绿色的线分类效果最好,完美分割了2个种类的数据
  • 黄色次之,有3个蓝色的数据分类错误
  • 红色的分类效果最差,有8个紫色的数据分类错误

对于上面这种简单的数据(只有2个维度10个数据)和简单的分类模型(线性分类)来说,
我们通过作图可以一眼看出哪个分类模型的效果最好。

而现实中的实际情况,往往是不仅数据量大,数据维度也很多,分类模型也不会仅仅是一条二维直线。
这时,无法像上面那样绘制出二维图形来,那么该如何去定量的评估一个分类模型的好坏呢?

2. 基尼系数

基尼系数就是这样一种指标,通过一个分类模型的基尼系数Gini),来帮助我们判断分类模型的好坏。

2.1. 绿色模型

对于绿色的分类模型:
image.png

分类过程 分类结果 概率
选择 紫色 数据,并且被分类为 紫色 正确 50%
选择 紫色 数据,并且被分类为 蓝色 错误 0%
选择 蓝色 数据,并且被分类为 蓝色 正确 50%
选择 蓝色 数据,并且被分类为 紫色 错误 0%

概率计算方式说明:比如对于表格第一行,【选择 紫色 数据,并且被分类为 紫色】的概率。
首先,【选择 紫色 数据】的概率为50%,因为总共20条数据,紫色数据有10条
其次,【并且被分类为** 紫色**】的概率为100%,因为绿色的模型可以正确分类所有的数据。
所以,【选择 紫色 数据,并且被分类为 紫色】的概率为 50% x 100% = 50%

其余3行的概率同上一样计算。

2.2. 黄色模型

对于黄色的模型:
image.png

分类过程 分类结果 概率
选择 紫色 数据,并且被分类为 紫色 正确 50%
选择 紫色 数据,并且被分类为 蓝色 错误 0%
选择 蓝色 数据,并且被分类为 蓝色 正确 35%
选择 蓝色 数据,并且被分类为 紫色 错误 15%

对于上面表格中的第三行,【选择 蓝色 数据,并且被分类为 蓝色】为什么是35%
首先,【选择 蓝色 数据】的概率为50%,因为总共20条数据,蓝色数据有10条
其次,【并且被分类为 蓝色】的概率是70%,从图中可以看出黄色的模型对于10条蓝色数据,有7条分类正确,有3条被错误分类到紫色的那一类中了。
所以,【选择 蓝色 数据,并且被分类为 蓝色】的概率为 50% x 70% = 35%

表格第四行的15%也是同样方式计算出的。

2.3. 红色模型

最后,看下红色的模型:
image.png

分类过程 分类结果 概率
选择 紫色 数据,并且被分类为 紫色 正确 10%
选择 紫色 数据,并且被分类为 蓝色 错误 40%
选择 蓝色 数据,并且被分类为 蓝色 正确 50%
选择 蓝色 数据,并且被分类为 紫色 错误 0%

计算方式前面已经介绍,这里不再赘述。

2.4. 计算公式

3种不同效果的分类模型的分类效果统计在上面的表格中。
根据这些概率,我们如何给模型打分,从而确定模型好坏呢?

答案就是基尼系数Gini),这时我们再来看看基尼系数的计算公式:
\(Gini = \sum_{i=1}^C p(i)\times (1-p(i))\)
其中,\(C\)是数据的总类别数量,本文的例子中有两类数据,所以 \(C=2\)
\(p(i)\)是选择某个类别\(i\)的数据的概率。

下面来看看本文中的3个模型的基尼系数分别是多少。
我们假设 \(p(1)\)代表选中紫色数据的概率;\(p(2)\)代表选中蓝色数据的概率

那么,对于绿色模型,
绿色线上部分的基尼系数:\(G_{up} = p(1)\times(1-p(1)) + p(2)(1-p(2))\)
绿色线上部分,全是紫色数据,所以 \(p(1) = 1,\quad p(2)=0\);
因此,\(G_{up} = 1\times(1-1)+0\times(1-0) = 0\)
对于绿色线下部分,同理可计算出\(G_{down}=0\)

又因为绿色线上下部分的数据量都是10条,各占总数据量的50%
所以最终绿色模型整体的基尼系数:\(G_{green}=50\% G_{up} + 50\% G_{down} = 0\)

对于黄色模型:
黄色线上部分,10个紫色数据,3个蓝色数据,所以 \(p(1) = \frac{10}{13},\quad p(2)=\frac{3}{13}\),
因此,\(G_{up} = \frac{10}{13}\times(1-\frac{10}{13})+\frac{3}{13}\times(1-\frac{3}{13}) \approx 0.355\)
黄色线下部分,0个紫色数据,7个蓝色数据,所以 \(p(1) = 0,\quad p(2)=1\),所以\(G_{down}=0\)

又因为黄色线上下部分的数据量分别13条7条,各占总数据量的\(\frac{13}{20},\quad \frac{7}{20}\),
所以最终黄色模型整体的基尼系数:\(G_{yellow}=\frac{13}{20} G_{up} + \frac{7}{20} G_{down} \approx 0.23\)

对于红色模型:
和上面同理计算出:\(G_{up}=0\),\(G_{down} \approx 0.494\);
\(G_{red} = \frac{2}{20} \times G_{up} + \frac{18}{20}\times G_{down} \approx 0.444\)

基尼系数是介于0~1的数值,且越小表示效果越好,
因为 \(G_{green}=0<G_{yellow}=0.23<G_{red}=0.444\)
所以 绿色模型 优于 黄色模型 优于 红色模型。

3. 总结

通过比较不同模型的基尼系数的值,不仅可以一下看出分类模型的好坏,还可以根据数值的大小了解究竟好多少。

基尼系数也为我们训练分类模型时提供了一个优化的方向,
一方面,对于不同的分类模型,我们可以通过比较它们的基尼系数,确定哪种模型效果更好;

另一方面,对于同一个分类模型,我们可以通过观察其中每个分类的基尼系数(比如上面的\(G_{up}\)和\(G_{down}\)),
从而确定那个分类的效果比较差,那就是重点优化的方向。

标签:解释,蓝色,数据,模型,分类,紫色,基尼系数,直观
From: https://www.cnblogs.com/wang_yb/p/18196100

相关文章

  • C语言 while (putchar(getchar()) != '!') 解释
    ​ 代码运行到第4行,getchar()需要输入的数据,但是输入的缓冲区没有数据,所以就需要再命令行窗口(黑窗口)输入新的数据​ 这时候getchar()只需要输入1个字符的数据,但是你可以输入多个数据,打回车的时候之前输入的一行数据都会被发送到缓冲区,回车之前都还可以删除刚才输入的数据修改修......
  • 一次grub配置文件的生成解释
    运行grub-mkconfig命令,需要到/usr/sbin目录运行,因为这个目录没有包含到PATH变量中。 执行命令,并输出内容jack@PC:/usr/sbin$sudo./grub-mkconfig-o/boot/grub/grub.cfgGeneratinggrubconfigurationfile...Foundbackgroundimage:/usr/share/images/desktop-b......
  • 解释一下这两行 "pub": "pnpm --filter \"./packages/*\" run pub", "pub:b
    F:\learn-front\code-inspector\package.json这两行命令是用于在JavaScript项目中发布(publish)软件包到npm仓库的脚本定义,常见于使用pnpm作为包管理器的Monorepo(单仓库多项目)结构的项目中。这里具体解释一下每部分的含义:pub:这是一个npm脚本的别名,当在命令行中执行npmrunp......
  • Windows hosts 文件是一个文本文件,用于将主机名与相应的 IP 地址进行映射。这个文件通
    C:\Windows\System32\drivers\etc\hosts是一个计算机上的文件路径,通常用于存储主机名与IP地址之间的映射关系。在Windows操作系统中,这个文件被称为"hosts"文件。这个文件的作用是将主机名映射到相应的IP地址,这样当你在浏览器中输入一个域名时,系统会首先查看这个文件......
  • 这些标识代表了WindowsServer2022SERVERDATACENTER 的不同版本和配置选项。让我逐一解
    这些标识代表了WindowsServer2022的不同版本和配置选项。让我逐一解释它们:WindowsServer2022SERVERSTANDARDCORE:这表示WindowsServer2022的标准版核心安装。它是一个精简的安装版本,只包含基本的操作系统组件和服务,没有图形用户界面。通常用于服务器部署,以减少资......
  • 大白话解释逻辑回归
    记得在我学了线性回归之后的一段时间里,我觉得这个玩意太好用了,可以对世界上很多东西都进行预测,以至于一想到预测就想着拿点数据来进行回归。后来才知道,很多事情不是一条简单的直线可以拟合的。后来又知道,其实线性回归只要稍作修改,还是可以拟合这个世界上大部分事情的。是不是有点......
  • kafka的名词解释
    1.Replica(副本):在Kafka中,每个分区都有多个副本,用于提供数据的冗余备份和高可用性。副本可以分为两种类型:领导者副本(leaderreplica)和追随者副本(followerreplica)。领导者副本:每个分区都有一个领导者副本,它负责处理与客户端的所有读写请求,是分区的主要副本。追随者副本:领导者副本......
  • SpringBoot中全部注解归纳解释
    https://blog.csdn.net/weixin_55772633/article/details/131882825https://www.cnblogs.com/jingzh/p/14620211.html1springboot注解1.1引言1.2基本注解1.3JPA注解1.4SpringMVC相关注解1.5全局异常处理1.6项目中具体配置解析和使用环境1.7Lombok注解1.8数......
  • SQL脚本中存在很多括号,无法直观进行匹配。
    解决方案1:SSMS中找到前括号按下空格或tab,会自动匹配到对应的后括号,如下图。解决方案2:使用在线格式化工具进行格式化,该工具格式化功能更强大且会自动去除多余无意义的括号组。https://tool.oschina.net/codeformat/sql在线代码格式化(oschina.net) ......
  • Python解释器和Pycharm的安装
    Python解释器和Pycharm的安装【一】Python解释器安裝(windows)【1】进入Python官网https://www.python.org【2】选择Windows系统【3】选择解释器版本3.10.11【4】安装解释器(1)双击安装程序选择最下面的选项(2)选择安装包管理工具全部勾上(3)选择安装位置全部勾......