首页 > 其他分享 >机器学习之——基尼指数的计算

机器学习之——基尼指数的计算

时间:2024-09-06 16:53:08浏览次数:4  
标签:学习 机器 指数 样本 基尼 信息熵 例题 数据

0 前言

  • 本文主要介绍基尼指数的计算公式及计算方法,并举出相关例题帮助理解。
  • 读者需要提前了解:信息熵
  • 数据集:贷款.CSV

1 基尼指数简述

  • 基尼指数(Gini Index)是一个在多个领域都有应用的重要指标,但其主要应用之一是在决策树算法中,用于衡量数据集的不纯度或混乱程度

  • 基尼指数也被称为基尼不纯度,表示在样本集合中一个随机选中的样本被分错的概率。
    基尼值越小,表示集合中被选中的样本被分错的概率越小,即集合的纯度越高;反之,基尼指数越大,集合越不纯。

  • 若使用基尼指数构建决策树时,基尼指数构建的决策树是二叉树。这种二叉树结构使得CART(Classification and Regression Trees)算法在分类和回归任务中都具有较好的性能,因为它能够较为高效地降低数据集的不纯度,并生成易于理解和解释的模型。

2 基尼指数与信息熵

如果你了解信息熵(它表示了随机变量的不确定度,对于一组数据来说,越随机,不确定性就越高,信息熵越大;不确定性越低,信息熵就越小),你可能会发现信息熵和基尼指数有些相似。

3 公式

image
image

  • D表示总的样本数据集。
  • A表示选定的特征。
  • D1和D2分别表示根据特征A的某个值(通常是阈值或分类点)将数据集D分成的两个子集。
  • |D|、|D1|和|D2|分别表示数据集D、D1和D2中的样本数量。
  • Gini(D)、Gini(D1)和Gini(D2)分别表示数据集D、D1和D2的基尼指数。
  • 注:计算Gini(D,A)时,数据集D只能分为两个子数据集。

4 例题

4.1 样本基尼指数的计算

4.4.1 例题一

假设有一个数据集D包含以下样本:

类别 个数
类别A: 5个样本
类别B: 3个样本
类别C: 2个样本
  • 计算样本总数
    样本总数:5+3+2=10。

  • 计算每个类别的比例
    image

  • 计算平方和
    image
    image

  • 计算基尼指数
    image

4.1.2 例题二

笔者使用贷款数据集D,详细请见前言。
image

4.1.3 例题三

笔者使用贷款数据集D,详细请见前言。
image

4.2 特征A条件下基尼指数的计算

4.2.1 例题一

笔者使用贷款数据集D,详细请见前言。
image

image

image

5 计算程序

稍后再补

6 结语

如有错误请指正,禁止商用。

标签:学习,机器,指数,样本,基尼,信息熵,例题,数据
From: https://www.cnblogs.com/hello-nullptr/p/18396795

相关文章

  • 基于Python的机器学习系列(28):PyTorch中的张量基础
            在本篇中,我们将介绍PyTorch中的张量基础,包括如何将NumPy数组转换为PyTorch张量、创建张量、以及进行基本的张量操作。确认PyTorch版本        首先,确认您使用的PyTorch版本:importtorchprint(torch.__version__)将NumPy数组转换为PyTorch张量 ......
  • Kubernetes学习指南:保姆级实操手册07——calico安装、metric-server安装
    七、Kubernetes学习指南:保姆级实操手册07——calico安装、metric-server安装一、calicoCalico是一个开源的虚拟化网络方案,支持基础的Pod网络通信和网络策略功能。官方文档:https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart1、calico安装###在Master控......
  • 2024 年学习人工智能的免费认证课程
    1.生成式AI简介https://imp.i384100.net/LXYmq32.Python语言https://imp.i384100.net/5gmXXo3.统计和Rhttps://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF4.数据科学:机器学习https://youtu.be/GwIo3gDZCVQ?si=yID8mdGA1-D8gDiy5.数学与统计https://matlabacade......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设英语自主学习平台。本设计主要实现集人性化、高效率、便捷等优点于一身的英语自......
  • prometheus学习笔记之其他常用服务自动发现
    一、consul_sd_configsConsulSD配置允许从Consul的CatalogAPI检索抓取目标1.部署Consul 安装参考文档:https://developer.hashicorp.com/consul/install#linux,确认自己的操作系统和安装环境及版本,根据文档下载并安装unzip-qconsul_1.12.2_linux_amd64.zip#由于下载比......
  • Mybatis学习笔记(已完结)
    Mybatis-011.框架​ 框架相当于是一个脚手架,内部已经写好了很多代码,我们只要其基础上进行开发就可以提高我们的开发效率。​框架阶段学习:①先去学习如何使用框架②然后再使用熟练的情况下去猜测内部的原理③通过源码去验证自己的猜测。2.Mybatis介绍MyBatis是一款优......
  • 大型语言模型(LLMs)是怎样“学习”的?一封给网络工程师的大模型指南
    数字时代,人工智能(AI)及其相关技术正日益成为许多领域的热门话题。其中,生成式人工智能(GenAI)和大型语言模型(LLMs)引起了广泛的兴趣和讨论。然而,尽管这些术语在科技界和专业领域中频繁出现,网络工程师对其的理解却不多。什么是生成式人工智能和大型语言模型?本文将为大家介绍大......
  • 学习C语言结构体(结构体的前世今生)
    1、首先我将使用DevC++这个软件(其实随意一个C++软件都可以)来演示一下结构体的使用方法。这里已经写了一个最简单的HelloWorld!程序。2、对于C语言的数据来说最重要的就是两个功能,一个是定义数据,一个是引用数据。既然结构体也是数据类型,那么他就和其他的数据类型差不多。也分......
  • 电话机器人外呼系统效果好吗
    嘉单科技yyzkd8电话机器人外呼系统是现在市面上的一款帮你代替真人自动拨打电话,自动筛选客户的一个软件。简单来说就是帮你把打出来的意向客户自动推送到你的微信上面,你人工重点跟进有意向的客户就可以了。嘉单科技电话机器人外呼系统好用吗?效果怎么样?①高效率低成本:电话......
  • 测试驱动开发(TDD)学习分享-上篇
    1.概述1.1什么是TDD测试驱动开发(TDD)是一种增量式软件开发技术。简单地说,就是在没有失败的单元测试的前提下不可以写产品代码。这些测试要很小,而且要自动化。用测试来驱动其实很合理。相对于直接写产品代码,TDD的实践者们会先用测试来表达他们希望产品代码会有什么样的行......