【人工智能】—_监督学习、分类问题、决策树、信息增益

news2024/9/20 14:42:38

文章目录

  • Decision Trees 决策树
    • 建立决策树分类模型的流程
    • 如何建立决策树?
  • 决策树学习
  • 表达能力
  • 决策树学习
  • 信息论在决策树学习中的应用
    • 特征选择准则一:信息增益
    • 举例
  • 结论
    • 不足
  • 回到餐厅的例子
    • 从12个例子中学到的决策树:

Decision Trees 决策树

什么是决策树 —— 基本概念

  • 非叶节点:一个属性上的测试,每个分枝代表该测试的输出
  • 叶节点:存放一个类标记
  • 规则:从根节点到叶节点的一条属性取值路径
    在这里插入图片描述

建立决策树分类模型的流程

  • 模型训练:从已有数据中生成一棵决策树
  • 分裂数据的特征,寻找决策类别的路径
  • 相同的数据,根据不同的特征顺序,可以建立多种决策树

如何建立决策树?

基本的决策树学习过程,可以归纳为以下三个步骤:

  1. 特征选择:选取对于训练数据有着较强区分能力的特征
  2. 生成决策树:基于选定的特征,逐步生成完整的决策树
  3. 决策树剪枝:简化部分枝干,避免过拟合因素影响
    在这里插入图片描述

决策树学习

问题:基于以下属性,决定是否在餐厅等待桌子:

  1. Alternate:附近是否有其他选择的餐厅?
  2. Bar:是否有一个舒适的酒吧区等待?
  3. Fri/Sat:今天是星期五还是星期六?
  4. Hungry:我们饿了吗?
  5. Patrons:餐厅里的人数(无人、有些人、满座)
  6. Price:价格范围($、$$、$$$
  7. Raining:外面是否下雨?
  8. Reservation:我们是否预约了?
  9. Type:餐厅类型(法国、意大利、泰国、汉堡)
  10. WaitEstimate:等待时间的预估值(0-10、10-30、30-60、>60)
    在这里插入图片描述
    假设的一种可能表示
    例如,在上述餐厅等待桌子的问题中,我们可以使用决策树来表示假设,该决策树定义了在不同属性值下等待桌子的决策。以下是一个可能的假设树示例:在这里插入图片描述
    在这里插入图片描述

表达能力

决策树可以表示任何输入属性的函数,但使用单条路径来表示每个训练示例的决策树可能会过度拟合数据,无法很好地推广到新的未见过的数据示例。

决策树可以表达输入属性的任何函数。例如,对于布尔函数,函数真值表的每行对应于树中 的一条路径:在这里插入图片描述
简单来说,针对每个训练示例,可以创建一条路径到叶子节点的一致性决策树(除非函数在输入属性上是非确定性的),但这种决策树可能会过度拟合数据,无法很好地泛化到新的未见过的数据示例。因此,更倾向于找到更紧凑的决策树来提高泛化性能。

决策树学习

目的:找到一个与训练示例一致的小树
想法:(递归)选择“最重要”属性作为(子)树的根
在这里插入图片描述
想法:一个好的属性将示例拆分为(理想情况下)“全正”或“全负”的子集
在这里插入图片描述
根据Patron分类是一个更好的选择

信息论在决策树学习中的应用

信息熵:计算数据的不确定性

Entropy ( t ) = − ∑ j = 1 m p ( j ∣ t ) log ⁡ 2 p ( j ∣ t ) \text{Entropy}(t) = - \sum_{j=1}^m p(j|t) \log_2 p(j|t) Entropy(t)=j=1mp(jt)log2p(jt)
此时:表示某个节点𝑡 (即某个特征)的信息不确定性
p ( j ∣ t ) p(j|t) p(jt)是节点特征𝑡的属于类别𝑗的样本的比例

  • 特点:对于该节点特征t
    • 当样本均匀地分布在各个类别时,熵达到最大值 l o g ( n c ) log(n_c) log(nc), 此时包含的信息最少
    • 当样本只属于一个类别时,熵达到最小值 0, 此时包含的信息最多

对于包含 p p p 个正例和 n n n 个反例的训练集,其熵可以用以下公式计算:

I ( p p + n , n p + n ) = − p p + n log ⁡ 2 p p + n − n p + n log ⁡ 2 n p + n I(\frac{p}{p+n},\frac{n}{p+n}) = -\frac{p}{p+n}\log_2\frac{p}{p+n}-\frac{n}{p+n}\log_2\frac{n}{p+n} I(p+np,p+nn)=p+nplog2p+npp+nnlog2p+nn

其中,第一项和第二项分别表示正例和反例的占比, log ⁡ 2 \log_2 log2 表示以 2 为底的对数。熵的值越高,表示数据集越不确定。

在这里插入图片描述

特征选择准则一:信息增益

信息增益: 按某个特征划分之后,数据不确定性降低的程度

Gain ( m ) = Entropy ( p ) − ( ∑ i = 1 k ∣ n i ∣ n Entropy ( i ) ) \text{Gain}(m) = \text{Entropy}(p) - (\sum^k_{i=1} \frac{|n_i|}{n}\text{Entropy}(i)) Gain(m)=Entropy(p)(i=1knniEntropy(i))

  1. 第一项 Entropy ( p ) \text{Entropy}(p) Entropy(p)表示数据未划分时的信息熵
  2. 第二项 ∑ i = 1 k ∣ n i ∣ n Entropy ( i ) \sum^k_{i=1} \frac{|n_i|}{n}\text{Entropy}(i) i=1knniEntropy(i)表示按特征m划分后,数据的信息熵
    1. 按特征 m m m划分后,父节点分裂成 k k k个子节点
    2. 𝑛表示父节点的样本个数
    3. 𝑛𝑖 表示子节点𝑖的样本个数
      选择准则:选择最大的𝐺𝐴𝐼N 对应的特征m

举例

在这里插入图片描述 在这里插入图片描述

结论

信息增益能够较好地体现某个特征在降低信息不确定性方面的贡献
信息增益越大,说明信息纯度提升越快,最后结果的不确定性越低

不足

信息增益的局限性,尤其体现在更偏好可取值较多的特征
取值较多,不确定性相对更低,因此得到的熵偏低,但不一定有实际意义在这里插入图片描述
特征Customer ID有最大的信息增益,因为每个子节点的熵均为0

回到餐厅的例子

对于训练集, p = n = 6 p=n=6 p=n=6,信息熵为 I ( 6 12 , 6 12 ) = 1 I(\frac{6}{12}, \frac{6}{12})=1 I(126,126)=1 bit。
考虑属性Patrons和Type(以及其他属性)
在这里插入图片描述

从12个例子中学到的决策树:

在这里插入图片描述

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

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

相关文章

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

原文作者: Robert Haynes 原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击…

委托和方法的异步调用

概述 异步调用,通常情况下用于执行一些耗时的操作,同时能够保证当前主线程在执行异步调用之后依然能够继续向下执行。异步执行时,系统往往会创建一个新的线程,但需注意,当每一个异步执行都需要创建线程时&…

【校招VIP】java语言考点之synchronized和volatile

考点介绍: synchronized和volatile两个关键字也是校招常考点之一。volatile可以禁止进行指令重排。synchronized可作用于一段代码或方法,既可以保证可见性,又能够保证原子性...... 『java语言考点之synchronized和volatile』相关题目及解析…

C语言:指针数组

一、指针数组介绍 指针数组本质是数组,是一个存放指针的数组 代码如下: arr1和arr2就是指针数组 int main() {int a 1; int *pa &a;int b 2; int *pb &b;int c 3; int *pc &c;int d 4; int *pd &d;int e 5; int *pe &e;in…

【pyqt5界面化工具开发-12】QtDesigner图形化界面设计

目录 0x00 前言 一、启动程序 二、基础的使用 三、保存布局文件 四、加载UI文件 0x00 前言 关于QtDesigner工具的配置等步骤(网上链接也比较多) 下列链接非本人的(如果使用pip 在命令行安装过pyqt5以及tools,那么就可以跳过…

Ansible学习笔记5

copy模块:(重点) copy模块用于对文件的远程拷贝(如把本地的文件拷贝到远程主机上。) 在master的主机上准备一个文件,拷贝文件到group1的所有主机上。 这个用的频率非常高,非常有用的一个模块…

28 - restful -request和response

response: 需要定制返回字段的格式 request: 需要校验前端传来的参数 代码示例: 1. 创建模型类 from datetime import datetime from ext import dbclass User(db.Model):id db.Column(db.Integer, primary_keyTrue, autoincrementTrue)username db.Colu…

Error:java: OutOfMemoryError: insufficient memory

现象:idea编译代码(Build)报错:Error:java: OutOfMemoryError: insufficient memory 亲测有效 在进行代码编译的时候出现以上的提示。从中可以看是内存方面的问题。只需要调节IDEA在编译过程中,内存大小的设置&#…

面向对象的设计原则

设计模式 Python 设计模式:对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计 面向对象 三大特性:封装、继承、多态 …

代码随想录笔记--哈希表篇

目录 1--有效的字母异位词 2--两个数组的交集 3--两数之和 4--四数相加II 5--三数之和 6--四数之和 1--有效的字母异位词 利用哈希表存储每个字母的出现次数&#xff0c;比较两个字符串各个字母出现次数是否相等即可&#xff1b; #include <iostream> #include <…

常用的css样式

1&#xff1a;flex布局 .flex-between {display: flex;justify-content: space-between; }.flex-evenly {display: flex;justify-content: space-evenly; }.flex-end {display: flex;justify-content: flex-end; }.flex {display: flex; }.flex-center {display: flex;justify…

实验室的服务器和本地pycharm怎么做图传

参考 远程调试 qt.qpa.xcb: could not connect to display, echo DISPLAY为空[已解决]_功夫小象的博客-CSDN博客 先安装x11 MobaXterm x11-forwarding_C--G的博客-CSDN博客 我是在容器中搞得 1&#xff0c;安装qt5 pip install PyQt5 -i https://pypi.douban.com/simple …

vue 入门案例模版

vue 入门案例1 01.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> &l…

科创板50ETF期权交易:详细规则、费用、保证金和开户攻略

科创板50ETF期权是指以科创板50ETF为标的资产的期权合约。科创板50ETF是由交易所推出的一种交易型开放式指数基金&#xff08;ETF&#xff09;&#xff0c;旨在跟踪科创板50指数的表现&#xff0c;下文介绍科创板50ETF期权交易&#xff1a;详细规则、费用、保证金和开户攻略&am…

如何解决vue3.0+typescript项目提示找不到模块“./App.vue

一、解决方案如下&#xff1a;需在项目目录下加上下面这段代码即可&#xff01;如果没有vite-env.d.ts目录需要继续往下看 declare module *.vue {import type { DefineComponent } from vueconst vueComponent: DefineComponent<{}, {}, any>export default vueCompon…

云服务器利用Docker搭建sqli-labs靶场环境

一、安装宝塔面板 使用xshell、electerm、SecureCRT等远程终端连接登陆上云服务器&#xff0c;在Linux宝塔面板使用脚本安装 安装后&#xff0c;如下图&#xff1a;按照提示&#xff0c;在云服务器防火墙/安全组放行Linux宝塔面板的端口 在浏览器打开上述网址&#xff0c;登…

创建一个空的vue项目,配置及步骤

查看需要的环境及插件版本 创建vue命令 默认配置 手动配置 其他 hash和history的区别&#xff1a; hash 模式&#xff0c;url后&#xff0c;会带着#&#xff0c;改变hash&#xff0c;页面不会刷新&#xff0c;不会更改整个页面&#xff0c;只会更改#后面路由配置的内容&#x…

自定义overflow轨道样式,并且滚动条两边存在间距(滚动条不贴边显示)

最终效果 实现思路 border box-shadow 实现代码 ::-webkit-scrollbar {width: 20px;height: 4px; }::-webkit-scrollbar-thumb {border-radius: 20px;border: 6px solid rgba(0, 0, 0, 0);box-shadow: 14px 0px 0 #e3e3e3 inset; }::-webkit-scrollbar-thumb:hover {box-sh…

水经微图网页版界面功能说明

水经微图网页版&#xff0c;可轻松将关注的地点制作成您的个人地图。 您可以在任意位置添加标注点或绘制地图&#xff0c;查找地点并将其保存到您的地图中&#xff0c;或导入地图数据迅速制作地图并保存&#xff0c;您还可以运用图标和颜色展示个性风采&#xff0c;从而可让每…

低温控制中自增压液氮罐改进为杜瓦电热压力精密调节的解决方案

摘要&#xff1a;在液氮低温冷却控制系统中&#xff0c;目前大多数都采用自增压液氮罐作为低温源&#xff0c;但存在的问题是罐内压力无法精密调节、喷射液氮温度和流量不稳定、冷却温度无法准确控制以及冷却温度范围较窄等问题。为此本文提出了液氮罐内电加热压力调节解决方案…