机器学习(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事件为身高情况下的信息增益:

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

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

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

相关文章

MySQL锁学习笔记

锁 事务的隔离性由锁来实现。 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我…

论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】

文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…

Spring中注入的使用

目录 一、什么是注入(Injection) 1.1 为什么要注入 二、注入的基本使用 三、Spring注入原理分析 一、什么是注入(Injection) 注入就是通过Spring的配置文件,为所创建对象的成员变量进行赋值 1.1 为什么要注入 书接上…

Linux:进程控制

目录 一、进程创建 写时拷贝 二、进程终止 echo $? 如何终止进程 _exit与exit 三、进程等待 进程等待的必要性 进程等待的操作 wait waitpid status 异常退出情况 status相关宏 options 四、进程程序替换 1、关于进程程序替换 2、如何进行进程程序替换 程序…

函数防抖(javaScript)

防抖说明 (1)防抖的目的: 当多次执行某一个动作的时候,限制函数调用的次数,节约资源。 (2)防抖的概念: 函数防抖(debounce):就是指触发事件后&…

Python中图像相似性度量方法汇总

1. 引言 在当前到处充满着图像的世界里,测量和量化图像之间的相似性已经成为一项关键的任务。无论是图像检索、内容推荐还是视觉搜索,图像相似性方法在现代计算机视觉的应用中都发挥着关键的作用。 幸运的是,Python提供了大量的工具和库&am…

想要精通算法和SQL的成长之路 - 分割数组的最大值

想要精通算法和SQL的成长之路 - 分割数组的最大值 前言一. 分割数组的最大值1.1 二分法 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 分割数组的最大值 原题链接 首先面对这个题目,我们可以捕获几个关键词: 非负整数。非空连续子数组。 那么我…

BIM轻量化技术简介

BIM轻量化技术是指在工程建筑的BIM模型建立之后(利用专业的BIM建模软件,比如Autodesk Revit, Bentley MicroStation, DS Catia等),通过对BIM模型的压缩处理等技术手段,让BIM可以在各类WEB浏览器、移动App上被使用的技术…

【RTOS学习】优先级 | Tick | 任务状态 | 空闲任务 | 任务调度

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 优先级 | Tick | 任务状态 | 空闲任务 | 任务调度 🏀优先级⚽任务管理 🏀T…

LockSupport-park和unpark编码实战

package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.LockSupport;/*** author zhou* version 1.0* date 2023/10/16 9:11 下午*/ public class LockSupportDemo {public static void main(String[] args) {…

软考高项第四版教材整合管理(第8章)重点内容

序:距离2023下半年软考还有18天,来不及看书的小伙伴看过来啦,一起过一下重点,开始之前,建议大家将下面的过程组矩阵图熟记!!! 第8章 项目整合管理 项目整合管理包括识别、定义、组…

node教程

文章目录 1.node入门 1.node入门 node是什么? node.js是一个开源的,跨平台的JS运行环境(其实可以理解为是一款应用程序,是一款软件,可以运行JS) node作用: 1.开发服务器应用

【LeetCode热题100】--169.多数元素

169.多数元素 使用哈希表&#xff1a; class Solution {public int majorityElement(int[] nums) {int n nums.length;int m n/2;Map<Integer,Integer> map new HashMap<>(); //定义一个hashfor(int num:nums){Integer count map.get(num); //Map.get() 方法…

8、docker 安装 nginx

1、下载镜像 docker pull nginx 2、本机创建目录 1&#xff09;创建nginx挂载目录 mkdir /usr/local/nginx 2&#xff09;进入nginx目录 cd /usr/local/nginx 3&#xff09;创建 www和logs目录 mkdir -p www logs 3、创建nginx容器 此容器用于复制配置文件&#xff0c;复…

[Spring] SpringMVC 简介(三)

目录 九、SpringMVC 中的 AJAX 请求 1、简单示例 2、RequestBody&#xff08;重点关注“赋值形式”&#xff09; 3、ResponseBody&#xff08;经常用&#xff09; 4、为什么不用手动接收 JSON 字符串、转换 JSON 字符串 5、RestController 十、文件上传与下载 1、Respo…

将中文名格式化输出为英文名

要求&#xff1a; 编写Java程序&#xff0c;输入样式为&#xff1a;Zhong wen ming的人名&#xff0c;以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母&#xff1b;例如输入”Willian Jefferson Clinton“,输出形式为&#xff1a;Clinton,Willian.J public static …

【仪器仪表专题】案例:测试充电芯片保护时间测试10小时后电子负载自动下线是为什么?

测试充电芯片保护时间有两种办法,一种是使用真实的电池让充电芯片一直充电(可以通过降充电电流、修改时间参数或是并电池增加容量的方式)。另一种是使用电子负载的CV模式模拟电池(需要增加一个芯片NTC电阻来避免充电芯片发生NTC错误)。 为了最完整的还原这个过程,我采取…

IDEA实现远程Debug调试

一、 前提   需要准备JDK1.8环境&#xff0c;安装IDEA(版本不限) 二、 IDEA中如何实现远程Debug模式 (1)、创建demo项目 1.File一>New一>project… 2.Maven Archetype一>填写Name一>选择jdk1.8一>选择Web一>创建 (2)、配置Idea 找到Remote Jvm Debug java…

【Vue 2】Props

Prop大小写 Prop的命名规则有camelCase&#xff0c;驼峰命名和kebab-case&#xff0c;短横线分隔。 由于HTML对大小写不敏感&#xff0c;所以浏览器会把大写字母解释为小写字母。 当我们使用camelCase命名prop时&#xff0c;在Dom中的template模板使用该prop就需要换成对应的…

交叉熵Loss多分类问题实战(手写数字)

1、import所需要的torch库和包 2、加载mnist手写数字数据集&#xff0c;划分训练集和测试集&#xff0c;转化数据格式&#xff0c;batch_size设置为200 3、定义三层线性网络参数w&#xff0c;b&#xff0c;设置求导信息 4、初始化参数&#xff0c;这一步比较关键&#xff0c;…