什么是信息增益

news2024/10/2 10:23:52

信息增益(Information Gain) 是一种衡量某个特征在对数据集进行划分时带来的信息量减少的指标。它常用于决策树算法中来选择分裂点,以便将数据集划分为更加纯净的子集。信息增益的概念基于信息熵,信息熵用于衡量数据集的不确定性或混乱程度,而信息增益衡量的是在某个特征下,数据集划分后这种不确定性减少的量。

信息熵的概念

在了解信息增益之前,我们先回顾 信息熵(Entropy) 的定义。信息熵 E ( D ) E(D) E(D) 衡量的是数据集 D D D 中分类的不确定性。其公式为:
E ( D ) = − ∑ k = 1 Y p k log ⁡ p k E(D) = - \sum_{k=1}^Y p_k \log p_k E(D)=k=1Ypklogpk

其中:

  • p k p_k pk 是类别 k k k 的概率(数据集中属于类别 k k k 的样本数除以总样本数)。
  • Y Y Y 是类别的数量。

信息熵的值越大,表示数据集的不确定性越大;信息熵的值越小,表示数据集更加纯净。

信息增益的定义

信息增益(IG) 表示通过使用某个特征 X X X 来划分数据集后,目标变量 Y Y Y 的不确定性(熵)减少的程度。信息增益的计算公式为:
I G ( D , X ) = E ( D ) − E ( D ∣ X ) IG(D, X) = E(D) - E(D|X) IG(D,X)=E(D)E(DX)

其中:

  • E ( D ) E(D) E(D) 是划分之前数据集 D D D 的熵(即数据集中目标变量 Y Y Y 的不确定性)。
  • E ( D ∣ X ) E(D|X) E(DX) 是在特征 X X X 的条件下,划分后的数据集的加权平均熵,表示划分后的数据集的剩余不确定性。

计算信息增益的步骤

  1. 计算原始数据集的熵 E ( D ) E(D) E(D)

    • 首先计算数据集在没有划分时的熵(即数据集中各类样本的熵)。
  2. 根据特征 X X X 进行划分

    • 使用特征 X X X 将数据集划分为多个子集。每个子集对应特征 X X X 的某个取值。
  3. 计算划分后的加权平均熵 E ( D ∣ X ) E(D|X) E(DX)

    • 计算每个子集的熵,并根据每个子集的样本数对其进行加权平均:
      E ( D ∣ X ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ E ( D i ) E(D|X) = \sum_{i=1}^n \frac{|D_i|}{|D|} E(D_i) E(DX)=i=1nDDiE(Di)
      其中 D i D_i Di 是按特征 X X X 划分后的第 i i i 个子集, ∣ D i ∣ |D_i| Di 是子集 D i D_i Di 中的样本数量, ∣ D ∣ |D| D 是原始数据集的样本数量。
  4. 计算信息增益 I G ( D , X ) IG(D, X) IG(D,X)

    • 信息增益就是原始数据集熵和划分后加权平均熵的差值。差值越大,说明该特征 X X X 对目标变量 Y Y Y 的不确定性减少得越多,表示该特征越重要。

举例说明

假设我们有一个简单的二元分类问题,数据集 D D D 包含 10 个样本,目标是分类为“是”或“否”。现在我们有一个特征 X X X,我们希望通过计算信息增益来确定该特征是否适合进行划分。

1. 计算原始数据集的熵 E ( D ) E(D) E(D)

假设在数据集中,有 6 个样本的类别是“是”,4 个样本的类别是“否”,则数据集的熵 E ( D ) E(D) E(D) 为:
E ( D ) = − ( 6 10 log ⁡ 2 6 10 + 4 10 log ⁡ 2 4 10 ) E(D) = - \left( \frac{6}{10} \log_2 \frac{6}{10} + \frac{4}{10} \log_2 \frac{4}{10} \right) E(D)=(106log2106+104log2104)

E ( D ) = − ( 0.6 log ⁡ 2 0.6 + 0.4 log ⁡ 2 0.4 ) E(D) = - \left( 0.6 \log_2 0.6 + 0.4 \log_2 0.4 \right) E(D)=(0.6log20.6+0.4log20.4)

E ( D ) ≈ 0.971 E(D) \approx 0.971 E(D)0.971

2. 根据特征 X X X 进行划分

假设特征 X X X 可以取两个值 X 1 X_1 X1 X 2 X_2 X2,划分后的数据集如下:

  • X = X 1 X = X_1 X=X1 时,数据集包含 5 个样本,其中 4 个类别为“是”,1 个类别为“否”。
  • X = X 2 X = X_2 X=X2 时,数据集包含 5 个样本,其中 2 个类别为“是”,3 个类别为“否”。
3. 计算划分后的加权平均熵 E ( D ∣ X ) E(D|X) E(DX)

首先分别计算两个子集的熵:

  • X 1 X_1 X1 子集:
    E ( D 1 ) = − ( 4 5 log ⁡ 2 4 5 + 1 5 log ⁡ 2 1 5 ) E(D_1) = - \left( \frac{4}{5} \log_2 \frac{4}{5} + \frac{1}{5} \log_2 \frac{1}{5} \right) E(D1)=(54log254+51log251)

    E ( D 1 ) ≈ 0.722 E(D_1) \approx 0.722 E(D1)0.722

  • X 2 X_2 X2 子集:
    E ( D 2 ) = − ( 2 5 log ⁡ 2 2 5 + 3 5 log ⁡ 2 3 5 ) E(D_2) = - \left( \frac{2}{5} \log_2 \frac{2}{5} + \frac{3}{5} \log_2 \frac{3}{5} \right) E(D2)=(52log252+53log253)

    E ( D 2 ) ≈ 0.971 E(D_2) \approx 0.971 E(D2)0.971

现在根据子集样本数,计算加权平均熵:

E ( D ∣ X ) = 5 10 E ( D 1 ) + 5 10 E ( D 2 ) E(D|X) = \frac{5}{10} E(D_1) + \frac{5}{10} E(D_2) E(DX)=105E(D1)+105E(D2)

E ( D ∣ X ) = 0.5 × 0.722 + 0.5 × 0.971 E(D|X) = 0.5 \times 0.722 + 0.5 \times 0.971 E(DX)=0.5×0.722+0.5×0.971

E ( D ∣ X ) = 0.8465 E(D|X) = 0.8465 E(DX)=0.8465

4. 计算信息增益 I G ( D , X ) IG(D, X) IG(D,X)

最后,信息增益为原始熵与划分后的加权平均熵的差:
I G ( D , X ) = E ( D ) − E ( D ∣ X ) IG(D, X) = E(D) - E(D|X) IG(D,X)=E(D)E(DX)

I G ( D , X ) = 0.971 − 0.8465 = 0.1245 IG(D, X) = 0.971 - 0.8465 = 0.1245 IG(D,X)=0.9710.8465=0.1245

结论

  • 该特征 X X X 的信息增益为 0.1245。
  • 信息增益越高,表示该特征越有助于减少数据集的不确定性,因此越适合作为决策树的分裂点。
  • 决策树算法通常会选择信息增益最大的特征来进行数据集的划分。

总结

信息增益用于衡量特征的划分对数据集的不确定性减少程度。通过选择信息增益最大的特征,决策树算法能够有效地构建模型,使得每一步划分都尽可能地提高数据集的纯度。这使得决策树能够做出更加准确的分类决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2184208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

两个向量所在平面的法线,外积,叉积,行列式

偶尔在一个数学题里面看到求两向量所在平面的法线,常规方法可以通过法线与两向量垂直这一特点,列两个方程求解;另外一种方法可以通过求解两个向量的叉积,用矩阵行列式 (determinant) 的方式,之前还没见过,在…

正则表达式调试工具实战

正则表达式调试工具实战 1、新建工程QWidget工程工程名RegexTool 如果QT不会配置,请参考我的博客,QT配置 Widget.cpp 默认内容如下 2、主界面设计 三行两列,每行采用HBoxLayout作为行布局控件,内部一个Lable控件和一个TextEdit控件,采用VBoxLayout 控件包裹三个HBoxLa…

JWT | JWT 漏洞介绍

关注这个漏洞的其他相关笔记:JWT 漏洞 - 学习手册-CSDN博客 0x01:JWT 漏洞介绍 JWT(Json Web Token)是用于在网络应用环境间传递声明的一种基于 JSON 的开放标准。它通过使用 JSON 对象进行安全的信息传输,可以用于身…

ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

激活函数ReLU,Sigmoid,tanh,softmax性质讲解及使用matplotlib绘制

Sigmoid及tanh sigmoid及tanh的函数图像较为相似,它们的公式如下 Sigmoid公式 tanh公式 Sigmoid及tanh性质解析 Sigmoid和tanh作为激活函数都可以有效完成非线性映射的功效,其中Sigmoid经常作为2分类的神经网络的输出层的激活函数,由于其非线性映射会将输出值转换到0-1的区间…

心觉:潜意识开发为何失败?99%的人卡在理性与感性学习的误区

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作187/1000天 小时候看武侠剧的时候,经常看到剧中有武林高手把绝世武功传给某个涉世未深的铁憨憨主角,比如《天…

四、Drf认证组件

四、Drf认证组件 4.1 快速使用 from django.shortcuts import render,HttpResponse from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import BaseAuthentication from rest_framework.exception…

win11 升级报 0x80073713 错误

安装错误 - 0x80073713 通常是由于系统文件损坏或 Windows Update 组件异常引起的。‌ 这个问题可能阻止您的系统正常接收和安装更新,影响系统的稳定性和安全性。 可以尝试如下如下方法: 首先,您可以尝试使用命令提示符运行系统文件检查器…

资源《Arduino 扩展板2-矩阵按钮 》说明。

资源链接: Arduino 扩展板2-矩阵按钮 1.文件明细 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件主要有16个按钮…

wgan的实现的伪代码,和原理,dcgan,模型坍塌 em距离 js kl散

原文地址 https://blog.csdn.net/Keep_Trying_Go/article/details/130471766 伪代码详细看这个, 特别注意点:gan(xnosize) 生成器 是 输入噪声 ,而不是全部噪声生成的 特别注意点:gan(xnosize) 生成器 是 输入噪声 &#…

vue3使用Teleport 控制台报警告:Invalid Teleport target on mount: null (object)

Failed to locate Teleport target with selector “.demon”. Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree main.…

基于SSM+小程序的选课管理系统2(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 ​ 教师的账号和密码可以注册,管理员的账号和密码可由系统开发者在数据库中设置,学生的账号和密码可以由注册获得。 1、管理员的主要功能为学生资料、教师资料的添…

如何升级OCAT

如何升级OCAT 一. 从官网下载OCAT 官网下载地址链接:https://github.com/ic005k/OCAuxiliaryTools/releases 目前下载下来版本为0.8.8,但RapidEFI显示最新版本已经为1.0.1。 为了防止OC版本过低导致进不了系统,需要对OCAT进行升级。![在这里…

.NET 一款支持冰蝎的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

探索 PixiJS:强大的 2D 图形渲染库

探索 PixiJS:强大的 2D 图形渲染库 演示地址 演示地址 源码地址 源码地址 获取更多 获取更多 随着 Web 技术的发展,越来越多的开发者希望在网页中实现丰富的视觉效果和动画。PixiJS 作为一个高性能的 2D 渲染库,凭借其强大的功能和易用性…

《NoSQL》非关系型数据库MongoDB 学习笔记!

Mongo基础: 使用数据库: 使用use 命令 后面跟着要使用的数据库名字即可, 例如:use cities, 值得注意的是, mongo中不像mysql, 还需要先创建数据库,后访问, mongo中,你无…

媒介坊:在数字化时代,企业如何在竞争激烈的市场中脱颖而出

在当今的数字化时代,企业如何在竞争激烈的市场中脱颖而出,成为消费者关注的焦点?软文投放作为一种高效的营销手段,正受到越来越多企业的青睐。而媒介坊,作为一站式软文投放平台,正是帮助企业实现这一目标的…

Android Camera2 与 Camera API技术探究和RAW数据采集

Android Camera2 Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口(API),它取代了之前的 Camera API。以下是关于 Android Camera2 的一些主要信息: 主要特点: 强大的控制能力:提供…

JavaWeb——Vue组件库Element(4/6):案例:基本页面布局(基本框架、页面布局、CSS样式、完善布局、效果展示,含完整代码)

目录 步骤 基本页面布局 基本框架 页面布局 CSS样式 完善布局 效果展示 完整代码 Element 的基本使用方式以及常见的组件已经了解完了,接下来要完成一个案例,通过这个案例让大家知道如何基于 Element 中的各个组件制作一个完整的页面。 案例&am…

Labview helper

IMAQ Advanced Setup Learn Geometric Pattern 2 VI 参数说明Curve Extraction Mode (0)指定VI如何识别图像中的曲线。如果您希望VI不对图像中对象的均匀性或图像背景做出任何假设,请将此选项设置为正常。如果您希望VI假定图像中的对象或图像背景由均匀的像素值组成…