当前位置: 首页 > news >正文

算法-决策树

决策树基础知识:

决策树是一种监督学习算法 ,在机器学习与数据挖掘领域常用,用于分类和回归任务 ,可直观呈现决策逻辑,像流程图一样逐步对样本分类或预测数值

根节点:起始点,包含全部样本,全部数据

叶子节点:终点,输出最终决策结果,最后输出为0就不可分了

构造决策树的核心难点是 “如何选特征、切分数据”,需通过熵和信息增益量化特征的分类价值

算法:

熵:熵是表示随机变量不确定性的度量;不确定性越大,得到的熵值也就越大,所以熵值越小越好

熵计算公式:H(X)=- ∑ pi * logpi, (i=1,2, ... , n)

信息增益:表示特征X使得类Y的不确定性减少的程度。熵值越大越好。

信息增益:用特征 A 分类后,数据不确定性(熵)的下降幅度。增益越大,特征分类价值越高,优先选作节点。

例如:

由图可知,play为标签,剩下的为特征,总熵根据上边的计算公式为:-(9/14log2 9/14+5/14log2 5/14)=0.94

特征一

(sunny)熵:-(2/5log2 2/5+3/5log2 3/5)=0.971

(overcast)熵为0,纯类别,没有不确定性

(rainy)熵:-(3/5log2 3/5+2/5log2 2/5)=0.971

加权为:5/14*0.971+4/14*0+5/14*0.971=0.694

信息增益为:0.94-0.694=0.246

特征二特征三特征四,同理

最后比较信息增益,信息增益最大的为大当家(决策树里为了方便我们把第一个节点称为大当家,第二个称为二当家以此类推)

这里我们以第一个特征为例,假设第一个特征为大当家,我们求二当家:

temperature中对应大当家sunny有hot(2个),mild(2个),cool(1个),当sunny对应hot时,特征为yes的有0个熵为0,sunny对应mild的有1个yes1个no,所以熵为1,SUNNY对应cool的有1个yes,所以熵为0,加权为:5/14(2/5*0+2/5*1*+1/5*0)=0.14,信息增益为:0.694-0.14=0.554

以此类推,求接下来的信息增益,那个信息增益最大,便将他作为二当家,注意的是:二当家加权时要加两遍权。

例:

总体熵为:-(2/5log2/5+3/5log3/5)=0.971

特征一熵:-(2/3log2/3+1/3log1/3)=0.918,否的为0,纯类别

                加权平均为:3/5*0.918+2/5*0=0.551

                信息增益为:0.971-0.551=0.420

特征二熵为:-(2/4log2/4+2/4log2/4)=1,否的为0,

               加权平均为:4/5*1+1/5*0=0.8

               信息增益为:0.971-0.8=0.171

根据信息增益比较,我们选择特征一作为大当家可以更好地划分。

求二当家:熵为0,否的已经纯了,就不用计算了

所以信息增益为:0.918-0=0.918

分层选筛子,每层选当前最能筛纯的特征,让最终结果清晰、可解释!

http://www.dtcms.com/a/337274.html

相关文章:

  • 从决策树基础到熵与信息增益
  • 网络间的通用语言TCP/IP-网络中的通用规则1
  • 本地文件上传到gitee仓库的详细步骤
  • sem_post函数的定义及作用
  • 【81页PPT】国内某知名大型制药企业制药数字化转型项目汇报方案(附下载方式)
  • 无人设备遥控器之操控信号精度篇
  • 【68页PPT】MES系统数字化工厂解决方案(附下载方式)
  • 深入剖析以太坊虚拟机(EVM):区块链世界的计算引擎
  • go 多版本共存【goup + alias方案】
  • React diff Vue diff介绍
  • 【2025CVPR-目标检测方向】RaCFormer:通过基于查询的雷达-相机融合实现高质量的 3D 目标检测
  • 牛子图论进阶
  • TEST_
  • Linux系统启动原理及故障排除
  • 场外个股期权的行权日是t+多少个交易日?
  • 【牛客刷题】最大公约数与最小公倍数:算法详解与实现
  • linux中的hostpath卷与nfs卷以及静态持久卷的区别
  • JAiRouter 架构揭秘:一个面向 AI 时代的响应式网关设计
  • Flutter 自定义 Switch 切换组件完全指南
  • 技术经典场景之协议转换
  • IR-CUT与CCD CMOS的关系
  • 国标:开展环境卫生满意度调查
  • 【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)
  • 【笔记】和各大AI大语言模型合作写项目—slirp.go
  • 之前说的要写的TCP高性能服务器,今天来了
  • 算法题打卡力扣第26. 删除有序数组中的重复项(easy))
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(4):31-40语法
  • 在react props中在参数中定义参数类型
  • Leetcode 16 java
  • 发布npmjs组件库