机器学习(22)---信息熵、纯度、条件熵、信息增益

2023-10-12 22:04

本文主要是介绍机器学习(22)---信息熵、纯度、条件熵、信息增益,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1、信息熵
    • 2、信息增益
    • 3、例题分析


1、信息熵

 1. 信息熵(information entropy)是度量样本集合纯度最常用的一种指标。信息的混乱程度越大,不确定性越大,信息熵越大;对于纯度,就是信息熵越大,纯度越低。

 2. 纯度的通俗理解:一个盒子里只有白球,说明这个盒子很纯,纯度很高。一个集合里只有一类样本,比如表示男女的样本集合 U = U= U={男,男,…},都是男的,那么就说这个集合纯度很高。

 3. 信息熵公式如下所示,其中 n n n表示随机变量的可能取值数, x x x表示随机变量, p ( x ) p(x) p(x)表示随机变量的概率函数。

在这里插入图片描述

2、信息增益

 1. 条件熵:在 X X X给定条件下, Y Y Y的条件概率分布的熵对 X X X的数学期望。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
 同理可知:
在这里插入图片描述

 2. 信息增益:以某特征划分数据集前后的熵的差值。熵 A A A-条件熵 B B B,是信息量的差值,表示此条件对于信息熵减少的程度。也就是说,一开始是 A A 状态,用了条件后变成了 B B B状态,则条件引起的变化是 A − B A-B AB,即信息增益。
 熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合 D D D划分效果的好坏。
结论:好的条件就是信息增益越大越好,即变化完后熵越小越好(熵代表混乱程度,最大程度地减小了混乱)。因此我们在树分叉的时候,应优先使用信息增益最大的属性,这样降低了复杂度,也简化了后边的逻辑。

 3. 信息增益的公式如下。其中 A A A就是一个特征, D D D是原始的数据集, D ∣ A D∣A DA是在 A A A分类下的数据集。

在这里插入图片描述

3、例题分析

1. 例子分析信息熵

在这里插入图片描述
在这里插入图片描述
2. 例子分析信息增益

编号身高(特征1)颜值(特征2)喜欢喝酒程度(特征3)是否渣男(分类结果)
113
221
333
423
512

 身高、颜值、喝酒都是特征,是否渣男是分类结果。我们来算已知 A A A事件为身高情况下的信息增益:

在这里插入图片描述

这篇关于机器学习(22)---信息熵、纯度、条件熵、信息增益的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198769

相关文章

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法