决策树的初体验

2023-11-06

接下来是三种经典的决策树算法的学习过程:

Step1:信息熵与信息增益
信息熵(information_entropy):是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,…,|y|),则D的信息熵定义为:
这里写图片描述
Ent(D)的值越小,则D的纯度越高。
假定离散属性a有V个可能的取值{ 这里写图片描述},若使用a来对样本集D进行划分,会产生V个分支结点,其中第v个分支节点包含了D中所有在属性a上取值为这里写图片描述的样本,记为这里写图片描述。通过信息熵公式可以计算出这里写图片描述的信息熵,再考虑到不同的分支节点所包含的样本数不同,给分支节点赋予权重|这里写图片描述|/|D|,即样本数越多的分支节点的影响越大。于是,计算出用属性a样本集D进行划分所获得的“信息增益”(information_gain):
这里写图片描述
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。因此,我们可以用信息增益来进行决策树的划分属性选择。ID3决策树学习算法就是以信息增益为准则来选择划分属性。

Step2:ID3算法的弊端以及改进
由信息熵以及信息增益的计算公式,不难知道,信息增益准则对可取值数目较多的属性有所偏好。当每个分支结点包含非常少甚至只有一个样本,这些分支节点的纯度达到最大。然而,这样的决策树不具有泛化能力,无法对新样本进行有效预测。比如,数据的“编号”的信息增益是最大的,但没实际意义。于是,著名的C4.5决策树算法出现了。

Step3:C4.5算法以及信息增益率
信息增益率的公式:
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

决策树的初体验 的相关文章

  • imsi和手机号码的关系

    国际移动用户识别码 IMSI International Mobile Subscriber Identification Number 是区别移动用户的标志 储存在SIM卡中 可用于区别移动用户的有效信息 其总长度不超过15位 同样使用0
  • Python股票量化学习(4)——一个省心的交易策略

    股海无常 难达彼岸 像我们大多数散户 看个财务报表也看不懂 学个技术分析也学不精 更要命的是 明明知道自己不懂还不肯下功夫去学习 盯着个K线就在那里YY 嗯 这个样子感觉要涨 仿佛再不上车就来不及了 于是乎 买 买 买 可结果往往是买了就跌
  • stm32中的系统滴答定时器使用

    系统滴答定时器对于stm32的初学者来说还是非常重要的 因为随着你学习的深入编程过程中肯定会调用延时函数 比如我之前的一些gpio相关的实验中 那么延时函数的编写也是几种方法的 一般开始接触都是让系统循环等待 利用stm32处理程序所用的机
  • 【Go语言教程】(一) 下载、安装、配置

    1 下载 官网安装包下载地址为 https golang org dl 如果打不开可以使用这个地址 https golang google cn dl 找到适合你系统的版本下载 我下载的是windows版本 2 安装 msi文件点击完成安装
  • 基于51单片机直流电机PWM调速设计

    具体实现功能 系统由STC89C52单片机 LCD1602液晶显示屏 霍尔测速传感器 3V直流电机 按键模块构成 具体功能 1 采用霍尔传感器非接触式测电机转速 2 LCD1602液晶显示当前的转速 单位为转 分 RPM 和当前的PWM占空
  • 尝试导出Cities Skyline完整城市模型遇到的问题与解决

    城市天际线是我最喜欢的游戏之一 可以搭建自己的城市 那我很显然一个想法就是把游戏里面的完整城市导出 并且加入到自己喜欢的游戏里面 比如自己搭建一个城市玩赛车游戏 或者在自己的城市里面玩吃鸡游戏 肯定非常爽 然后我开始查找解决方案 首先肯定想
  • 对话泛微:产业数字化时代,我们需要怎样的OA?

    在泛微诞生以后的十年 恰是OA系统的大规模突破 十年间 上百家OA企业的诞生直接将市场推向了鼎盛期 而后又迎来了移动互联网风口 在互联网厂商的冲击之下 传统OA在不断进击的同时 还要进行自我蜕变 成为 新时代OA 作者 思杭 编辑 皮爷 出
  • python中输出到txt文档,python 将print输出的内容保存到txt文件中

    具体代码如下所示 import sys import os class Logger object def init self filename Default log self terminal sys stdout self log o
  • Java语言程序设计(一)计算题

    1 观察下面的程序片断 指出其中的父类和子类 以及父类和子类的各个域和方 法 class SuperClass int data voidsetData intnewData data newData intgetData return d
  • 双目测量原理详解

    双目测距公式解析 看双目测距的时候一个公式就给难住了 网上各种解析很多更是弄得云山雾绕 写下自己的一点理解 自认为非常合理 就是这个公式 点P在成像平面上的两个点Pl Pr的坐标分别是 所谓视差 就是指左右图像上的相同特征点在x坐标上的差值
  • Mac常用的五款思维导图软件,中文版推荐

    第一款 最强思维导图软件 XMind 2021 v11 1 0 for Mac XMind 是Mac创建思维导图的最热门软件 拥有大量的用户群体 长期保持着高下载量的软件 当您考虑您的想法或就某个特定主题的头脑风暴分组时 您偶尔会想到想法
  • 实现用户操作日志记录

    Java记录操作日志 java自带的日志框架是java util logging JUL 从JDK1 4 2002 开始捆绑在JDK中 可以使用JUL来记录操作日志 以下是使用JUL记录事务的示例 java util logging jav
  • 使用Tensorflow的RNN(LSTM)生成音乐(基础)

    跟着Tensorflow的官方教程 搭建一个简单的LSTM模型 生成midi格式的音乐 只是为了熟悉tensorflow机器学习的代码一般格式 在音乐生成的模型上有很多不合理的操作 所以结果也不太好 安装 用的目前最新版Tensorflow
  • SQLServer附加数据库5120错误

    https www cnblogs com yangxiaofei p 5123816 html 装有MSSQL的电脑 需要附加的数据库文件 mdf 及其日志文件 ldf 1 打开SQL Server Management Studio 并
  • 数据库编码 问题 mysql 修改字符集为utf8mb4

    数据库编码 问题 mysql 修改字符集为utf8mb4 问题 当向数据库插入表 或者在表中插入数据时 出现 ERROR 1366 HY000 Incorrect string value xBD xF0 xD3 xB9 for colum
  • golang-reflect(Typeof()和Kind())

    package main import fmt reflect type INT int func main var a INT fmt Println reflect TypeOf a Name INT fmt Println refle
  • 【51单片机实验笔记】前篇(一)遇到的问题汇总(持续更新)

    问题列表 开发环境问题 CH340串口识别失败 22 12 17 Keil5 如何兼容C51和STM32 22 12 17 如何创建C51工程模板 22 12 17 如何修改字体大小 22 12 17 Keil的 0xFD Bug 23 0
  • 如何利用Python抢回在蚂蚁森林把逝去的能量,不用天天担心别人来偷能量了。

    1 蚂蚁森林简介 蚂蚁森林是一项旨在带动公众低碳减排的公益项目 每个人的低碳行为在蚂蚁森林里可计为 绿色能量 绿色能量 积累到一定程度 就可以用手机申请在生态亟需修复的地区种下 一棵真树 或者在生物多样性亟需保护的地区 认领 保护权益 蚂蚁

随机推荐

  • python中模块,包,库的区别和使用

    模块 就是 py文件 里面定义了一些函数和变量 需要的时候就可以导入这些模块 包 在模块之上的概念 为了方便管理而将文件进行打包 包目录下第一个文件便是 init py 然后是一些模块文件和子目录 假如子目录中也有 init py 那么它就
  • java 带超时时间lru_最近最久未使用页面淘汰算法———LRU算法(java实现)

    请珍惜小编劳动成果 该文章为小编原创 转载请注明出处 LRU算法 即Last Recently Used 选择最后一次访问时间距离当前时间最长的一页并淘汰之 即淘汰最长时间没有使用的页 按照最多5块的内存分配情况 实现LRU算法代码如下 p
  • java反序列化失败

    java io EOFException at java io ObjectInputStream PeekInputStream readFully ObjectInputStream java 2638 at java io Objec
  • Spring MVC 提示: Neither BindingResult nor plain target object for bean

    当你开发一个项目 如果你选择的是spring MVC 框架 而你在前台使用spring的标签时 那么你有可能出现在这个情况 javax servlet jsp JspTagException Neither BindingResult no
  • C++中头文件嵌套定义问题

    相信大家在做复杂的C 编程的过程中会被复杂的文件之间的关系所难倒 在编译文件时遇到这个或那个的非语法错误 这就需要仔细检查你的代码模块了 本小白在编写某个C 项目时遇到了这种编译错误 希望可以借鉴给更多的人 避免这种由头文件嵌套定义所导致的
  • Jmeter实战:0基础也能看懂的性能测试(建议收藏)

    经常听到性能 何为性能 从来没做过性能测试的人该如何上手 这篇文章非常适合零基础的同学看 看完之后基本上就能知道性能测试的全流程 性能指标 1 什么是性能测试 在一定情况下 通过工具模拟用户负载系统的响应时间 吞吐量等指标是否满足需求 2
  • Pytorch GPU编号问题

    虽然os environ CUDA VISIBLE DEVICES 能够实现在代码中设置可见的GPU 设备 但是在实际运行中 Pytorch会对这些GPU重新编号 比如 os environ CUDA VISIBLE DEVICES 3 5
  • 什么是虚拟服务器

    什么是虚拟服务器 简单来将 对于一个通过路由器搭建的局域网 当广域网上有对这个局域网共有IP访问时 路由器会将访问转移到局域网内某个特定的电脑上 这个功能是通过对路由器设置完成的 举个例子 如果你想建立一个服务器 供internet 上的用
  • gitee常用指令

    git init 初始化仓库 git status查看当前状态 git pull将本地代码与线上代码同步 git config 查询修改和配置 git log 显示提交日志 git fetch 从远程获取代码库 git branch查看本地
  • 使用Microsoft认知服务进行文本检测和 OCR

    使用Microsoft认知服务进行文本检测和 OCR Microsoft Cognitive Services MCS Microsoft认知服务 这篇博客将介绍 Microsoft Cognitive Services MCS OCR A
  • 用cmake gui配置VS2022中vs2017工具集

    问题描述 vs2022中安装了vs2017 vs2019等工具集 想用cmake gui配置vs2017编译器进行项目生成 选择 Visual Studio 15 2017会提示找不到 选择Visual Studio 17 2022用的就是
  • 基于证据理论的多源数据融合仿真实验matlab代码

    matlab源码链接见文章末尾 基于D S证据理论的数据融合方法的基本思想 D S证据理论是一种不确定性推理方法 所处理的数据信息大多是具有不确定性的 该方法能够摆脱对先验概率的依赖 把难以下手分析和处理的完整问题分解成很多易于处理的子问题
  • 背景图片靠右对齐,并且间距从右算起

    假如右边有个小箭头需要右对齐并且垂直居中 可以写成 background url images test png no repeat right center 如果需要离右边10px呢 可以这样写 background url images
  • Python如何执行JS代码

    前言 爬虫的开发过程中 往往需要对JS进行模拟 简单或者通用的还可以在Python中模拟或者找到对应的第三方库 但是复杂的就可能不好实现了 所以Python执行JS语句就是爬虫开发过程中的一个痛点 而能执行JS语句的第三方库常见的有sele
  • 【学习篇】【C++】【文件操作】

    文件操作 文件的打开方式 一 文本文件 1 1 写文件 1 2 读文件 二 二进制文件 2 1 写文件 2 2 读文件 程序运行时产生的数据都属于临时数据 程序运行完后就会被释放 因此通过文件可以将数据持久化 文件操作需要包含头文件fstr
  • a href=#与 a href=javascript:void(0) 的区别

    a href gt 点击链接后 页面会向上滚到页首 默认锚点为 TOP a href 点击链接后 页面不动 只打开链接 a href 作用同上 不同浏览器会有差异 点击链接后 不想使页面滚到页首 就用href javascript void
  • 十六进制的转换为十进制两种常见方法

    十六进制的转换为十进制两种常见方法 好久以前学的都忘了 正好复习一下 对于十六进制转十进制 第一种 快速法 自己挺喜欢第一种的快捷 比如 012A 0 X 163 1 X 162 2 X 161 10 X 160 298 说明 当中的十六进
  • VS2010中 C++创建DLL图解

    一 DLL的创建 创建项目 Win32 gt Win32项目 名称 MyDLL 选择DLL D gt 完成 1 新建头文件testdll h testdll h代码如下 ifndef TestDll H define TestDll H i
  • postgresql客户名称脱敏

    脱敏规则 1个字符 不脱敏 2个字符 后一个字符脱敏 3个字符 中间一个字符脱敏 4个字符 中间两个字符脱敏 超过4个字符 认为是政企客户 不做脱敏处理 postgresql函数实现 CREATE OR REPLACE FUNCTION f
  • 决策树的初体验

    接下来是三种经典的决策树算法的学习过程 Step1 信息熵与信息增益 信息熵 information entropy 是度量样本集合纯度最常用的一种指标 假定当前样本集合D中第k类样本所占的比例为pk k 1 2 y 则D的信息熵定义为 E