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

机器学习——决策树

标题:决策树


概念:决策树通过对训练样本的学习,建立分类规则,依据规则对新样本数据分类预测,属于有监督学习。

“有监督:x,y

 无监督 x”。
核心:所有数据从根节点一步步落到叶子节点 。

由于决策数,它是根据一个特征来进行输出的,所以它要比逻辑回归、线性回归还有 KN 算法它们的执行的速度都要快。或者说不是说是根据一个特征,或者说有五个特征,如果有一个特征它符合要求,那就给它输出,但是之前的逻辑回归线性回归 n 算法。都是。有很多特征,或者有很多 x 值,然后都符合才行,所以它就是这个方面的不一样的点。

 根节点: 第一个节点。

非叶子节点: 中间节点。

叶子节点: 最终结果节点。

 

需要考虑的问题:

  1. 哪个节点作为根节点?哪些节点作为中间节点?哪些节点作为叶子节点?
  2. 节点如何分裂?
  3. 节点分裂标准的依据?

决策树分类标准相关,包括:

  1. ID3 算法
  2. C4.5 算法
  3. CART 决策树

 

 ID3 算法中熵值相关内容:

衡量标准涉及熵值,熵值是对随机变量不确定性、物体内部混乱程度的度量

给出熵值计算公式 

pi是概率 

A集合:[1, 1, 1, 1, 1, 1,1,1,2,2]  
B集合:[0, 1, 2, 3, 4, 5,6,7,8,9]  A集合熵值:−2/10×log₂(2/10)−8/10×log₂(8/10) = 0.722  
B集合熵值:−1/10×log₂(1/10)×10 = 3.322  显然B的熵值更大,更加混乱。  

 

一、ID3 算法:  熵:熵值越小,该节点越“纯”。  第一遍遍历:  
1.标签(结果是否外出打球)的熵(类别熵):  
14 天中,9 天打球,5 天不打球,熵为:  
-⅑ log₂⅑ - ⅕ log₂⅕ = 0.940  
计算对数的 Python 程序:  
import math  
result = -9/14*math.log(9/14, 2) - 5/14*math.log(5/14, 2)  

 

2.基于天气的划分  outlook(天气属性)分支:  
- sunny(晴天):对应结果 [yes, yes, no, no, no]  
- overcast(阴天):对应结果 [yes, yes, yes, yes]  
- rainy(雨天):对应结果 [yes, yes, yes, no, no]  
属性熵:  
晴天【5 天】的熵:  
-⅖ log₂⅖ - ⅗ log₂⅗ = 0.971  Overcast(阴天)【4 天】的熵:  
-⅘ log₂⅘ = 0  雨天【5 天】的熵:  
-⅗ log₂⅗ - ⅖ log₂⅖ = 0.971  
那么,天气对应标签结果的熵为:  公式:H(X) = -∑ pᵢ * log pᵢ, i=1,2,…,n  熵值计算:  
5/14×0.971 + 4/14×0 + 5/14×0.971 = 0.693  

增益相关内容:

  • 计算结果:信息增益为 \(0.940 - 0.693 = 0.247\)
  • 概念解释:信息增益(information gain)是特征选择重要指标,描述特征为系统带来信息量(熵),度量信息不确定性减少程度;若一特征带来信息量最大,最关键,会选作划分数据集特征 。
3.基于温度的划分  temperature(温度)分支:  
- hot(炎热)【4 天】:结果 [yes, yes, no, no]  
- mild(温和)【6 天】:结果 [yes, yes, yes, yes, no, no]  
- cool(凉爽)【4 天】:结果 [yes, yes, yes, no]  各子节点熵:  
Hot【4 天】的熵:-⅖ log₂⅖ - ⅖ log₂⅖ = 1.000  
Mild【6 天】的熵:-⅘ log₂⅘ - ⅖ log₂⅖ = 0.918  
Cool【4 天】的熵:-¾ log₂¾ - ¼ log₂¼ = 0.811  熵值计算:4/14×1 + 6/14×0.918 + 4/14×0.811 = 0.911  
信息增益:0.940 - 0.911 = 0.029  
4.基于湿度的划分  humidity(湿度)分支:  
- high(高湿度)【7 天】:结果 [yes, yes, no, no, no, no, no]  
- normal(正常湿度)【7 天】:结果 [yes, yes, yes, yes, yes, no, no]  各子节点熵:  
High【7 天】的熵:-⅜ log₂⅜ - ⅝ log₂⅝ = 0.985  
Normal【7 天】的熵:-⅚ log₂⅚ - ⅙ log₂⅙ = 0.592  熵值计算:7/14×0.985 + 7/14×0.592 = 0.789  
信息增益:0.940 - 0.789 = 0.151  
5.基于有风的划分  windy(有风)分支:  
- false(无风)【8 天】:结果 [yes, yes, yes, yes, yes, no, no, no]  
- true(有风)【6 天】:结果 [yes, yes, no, no, no, no]  各子节点熵:  
False【8 天】的熵:-⅞ log₂⅞ - ⅛ log₂⅛ = 0.811  
True【6 天】的熵:-½ log₂½ - ½ log₂½ = 1  熵值计算:8/14×0.811 + 6/14×1 = 0.892  
信息增益:0.940 - 0.892 = 0.048  
综上:信息增益的大小:  
天气:0.247  
温度:0.029  
湿度:0.151(注:虽图中未单独列“湿度”计算过程,但结论包含该指标 )  
有风:0.048  显然,信息增益最大的是:天气 > 湿度 > 有风 > 温度  

http://www.xdnf.cn/news/16870.html

相关文章:

  • K8S部署ELK(四):部署logstash
  • JDBC核心技术与预编译SQL实战
  • 2、RabbitMQ的5种模式基本使用(Maven项目)
  • 算法竞赛阶段二-数据结构(39)数据结构栈模拟实现
  • npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
  • PHP入门及数据类型
  • Noob靶机攻略
  • AI + 云原生:正在引爆下一代应用的技术革命
  • malloc、calloc、realloc
  • deep research|从搜索引擎到搜索助手的实践(一)
  • 西门子PLC基础指令4:输出指令、立即输出指令
  • 【Bluetooth】【基础篇】第二章 关于蓝牙协议栈架构与其硬件方案架构大致概述
  • 12.Redis 主从复制
  • innoDB的buffer pool
  • 2025熵密杯 -- 初始谜题 -- Reproducibility
  • sqli-labs:Less-19关卡详细解析
  • 交互 Codeforces Round 1040 Interactive RBS
  • 网易云音乐硬刚腾讯系!起诉SM娱乐滥用市场支配地位
  • 联合索引全解析:一棵树,撑起查询的半边天
  • Anthropic:跨越生产效能拐点的AI增长飞轮
  • Linux学习--数据结构
  • 牛客 - 旋转数组的最小数字
  • MySQL 内置函数
  • Anthropic最新研究Persona vector人格向量
  • Python正则表达式使用指南:从基础到实战
  • 2025.8.2
  • VScode对Ubuntu用root账号进行SSH远程连接开发
  • 文心4.5开源测评:国产大模型的轻量化革命与全栈突破
  • 每日五个pyecharts可视化图表-bars(1)
  • SpringBoot启动项目详解