【机器学习】第4章 决策树算法(重点)

一、概念

1.原理看图,非常简单:

(1)蓝的是节点,白的是分支(条件,或者说是特征,属性,也可以直接写线上,看题目有没有要求),

(2)适用于离散的数据,分分分,就完了!

(3)训练阶段就是构造一个树,测试阶段就是沿着构造的树走一遍,但是选择哪个特征作为分支节点很难

2.既可以用于分类,也可以用于回归(区别线性模型可以在坐标轴画出来):

(1)分类问题:根据输入特征的取值,通过一系列的决策节点(节点上的条件判断)来对样本进行分类。最终每个叶节点对应一个类别标签。

(2)回归问题:通过一系列的决策节点,来预测数值型的目标变量。每个叶节点对应的数值是该节点上所有训练样本目标变量的 均值 或 加权平均值 。

3.构建决策树的三个方法:

顺序 基于信息增益的ID3,在此基础上改编出基于信息增益率的C4.5,然后是升级版的基于基尼指数的CART

4.信息熵(超级无敌重点)

(熵的概念在第一章,但基础就是越混乱,熵越大

(1)信息熵公式:

(2)例题:

假如有一个普通般子A,仍出1-6的概率都是1/6

有一个散子B,扔出6的概率是50%,扔出1-5的概率都是10%

有一个般子C,扔出6的概率是100%。

解:

   

(PS:不算一下,不知道问题出在哪!)

5.信息增益gain

与此关联的是ID3,选信息增益最大的作为下一个节点

(1)计算公式:

(2)性质:

a.  gain与属性的值域大小成正比,属性取值种类越多,越有可能成为分裂属性(即ID3算法对可取数值多的属性有偏好)。

b. 不能处理连续分布的数据特征

(3)习题:

有下列数据集:

解:

步骤1:如何确定根节点

总的信息熵:

以下主要计算了基于天气的,但是最后剩下三种的都给了。

由于outlook的信息增益最大,根据ID3规则,选Outlook,接下来算一次子节点:

也是可以得出下一次就是humidity作为sunny的子节点了,毕竟它最大。

6.信息增益率(计算太麻烦了,应该不考计算):

与此关联的是C4.5,选信息增益率最大的作为下一个节点,使用该方法最大的优点就是避免了因为种类太多导致gain值过于大的情况(分母越大,值越小)。

(1)公式及例子:

(2)其具体算法步骤与ID3类似;

(3)优缺点

优点:

C4.5能够完成对连续属性的离散化处理;

能够对不完整数据进行处理;

分类规则易于理解、准确率较高;

缺点:

效率低,只适合于能够驻留于内存的数据集。

7.CART算法(应该也不考计算)

采用的是一种二分循环分割的方法,每次都把当前样本集划分为两个子样本集,使生成的决策树的结点均有两个分支,显然,这样就构造了一个二叉树。如果分支属性有多于两个取值,在分裂时会对属性值进行组合,选择最佳的两个组合分支。

(1)采用的是基尼(gini)指数。

(2)公式:

8.过拟合问题

一方面要注意选取具有代表性样本,这样数据集质量高。

另一方面要限制树的深度来减少数据中的噪声对于决策树构建的影响,一般采取剪枝

剪枝是用来缩小决策树的规模,从而降低最终算法的复杂度提高预测准确度,包括预剪枝和后剪枝两类。

(1)预剪枝的思路是提前终止决策树的增长,在形成完全拟合训练样本集的决策树之前就停止树的增长,避免决策树规模过大而产生过拟合。

条件可以报考深度,最大叶子数等

(2)后剪枝策略先让决策树完全生长,之后针对子树进行判断,用叶子结点或者子树中最常用的分支替换子树,以此方式不断改进决策树,直至无法改进为止。

一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。

但训练时间比预剪枝要大得多。

二、习题

单选题

2.( B)是最早用于决策树模型的特征选择指标,也是ID3算法的核心。

A、信息增益率  B、信息增益  C、基尼指数  D、信息增益比

10. 下列关于ID3算法说法错误的是(D

A、ID3算法中根据信息论的信息增益 评估和选择 特征

B、ID3不能处理连续分布的数据特征

C、ID3算法对可取数值多的属性有偏好

D、每次选择信息增益最小的候选特征,作为判断模块

多选题

9. 以下关于决策树的说法正确的是(ABC  )。

A、既可用于分类,又可以用于回归

B、通过贪心策略挑选最优属性

C、具有很强的数据拟合能力,容易产生过拟合

D、一定能找到全局最优解

(贪心算法,即每一步都采取局部最优的选择来构建树。)

判断题

5. 决策树属于典型的生成模型。( F

10. 决策树是一种常用的机器学习算法,既可用于分类,也可用于回归( T)。

11. 如果对决策树进行剪枝可以减小决策树的复杂度,提高决策树的专一性能力。(F

本题老师给的答案是错误,但是我查的是正确的。。。

12. 决策树本身是一种贪心的策略,一定能够得到全局的最优解。(F

计算题

2.根据提供的打球和天气表格构造决策树,要求计算每个特征的信息熵(4分),并依据信息增益确定每个根节点的特征(3分),画出决策树(3分)。

Day

Outlook

Windy

Play

1

Rain

Weak

no

2

Sunny

Weak

yes

3

Rain

Strong

no

4

Sunny

Weak

yes

5

overcast

Strong

no

答案:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL----InooDB行级锁、间隙锁

行级锁 行锁,也称为记录锁,顾名思义就是在记录上加的锁。 注意: InnoDB行锁是通过给索引上的索引项加锁来实现的,而不是给表的行记录加锁实现的,这就意味着只有通过索引条件检索数据,InnoDB才使用行级锁…

【开发工具】git服务器端安装部署+客户端配置

自己安装一个轻量级的git服务端,仅仅作为代码维护,尤其适合个人代码管理。毕竟代码的版本管理是很有必要的。 这里把git服务端部署在centos系统里,部署完成后可以通过命令行推拉代码,进行版本和用户管理。 一、服务端安装配置 …

【Kubernetes】k8s--安全机制

机制说明 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介, 也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的。 比如 kubectl 如果想向 …

新版FMEA培训内容中关于团队协作的部分可以怎么展开?

团队协作,作为新版FMEA的核心要素之一,其重要性不言而喻。在FMEA的分析过程中,团队成员的密切合作与沟通是确保分析全面性和准确性的关键。通过团队协作,不同领域的专家能够共同参与到潜在故障模式的识别、评估与预防中来&#xf…

解决ubuntu22.04共享文件夹问题

刚开机发现ubuntu里面的共享文件夹访问不了了 ubuntuwxy:/mnt/hgfs$ ls找了几篇博客,设置如下指令即可,记得退出当前目录重新进入刷新一下 sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid1000 仅供参考

针对indexedDB的简易封装

连接数据库 我们首先创建一个DBManager类,通过这个类new出来的对象管理一个数据库 具体关于indexedDB的相关内容可以看我的这篇博客 indexedDB class DBManager{}我们首先需要打开数据库,打开数据库需要数据库名和该数据库的版本 constructor(dbName,…

[WTL/Win32]_[中级]_[MVP架构在实际项目中应用的地方]

场景 在开发Windows和macOS的界面软件时,Windows用的是WTL/Win32技术,而macOS用的是Cocoa技术。而两种技术的本地语言一个主打是C,另一个却是Object-c。界面软件的源码随着项目功能增多而增多,这就会给同步Windows和macOS的功能造成很大负担…

Aigtek高压放大器在柔性爬行机器人驱动性能研究中的应用

实验名称:柔性爬行机器人的材料测试 研究方向:介电弹性体的最小能量结构是一种利用DE材料的电致变形与柔性框架形变相结合设计的新型柔性驱动器,所谓最小能量是指驱动器在平衡状态时整个系统的能量最小,当系统在外界的电压刺激下就…

开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边

今天推荐一键款本人开发的pdf转单张图片并截取没有用的白边工具 一、开发背景: 业务需要将一个pdf文件展示在前端显示,但是基于各种原因,放弃了h5使用插件展示 原因有多个,文件资源太大加载太慢、pdf展示兼容性问题、pdf展示效果…

应急便携式气象观测站

TH-BQX5自然灾害,如台风、暴雨、洪涝、干旱等,给人们的生命财产安全带来了巨大威胁。在应对这些灾害时,准确的气象观测数据是制定有效应对策略的基础。近年来,应急便携式气象观测站在自然灾害的监测和预警中发挥了越来越重要的作用…

在 Blazor 中在子组件和父组件之间共享数据

介绍 可以在Blazor 中创建一个子组件并在另一个组件中重用它。我们将非常轻松地在这些组件之间共享数据。我们将创建一个自定义文本框作为子组件。此自定义文本框将显示文本框中的当前字符数,并在需要时限制字符总数。我将逐步解释所有操作。 在 Visual Studio 中…

购物App需要进行软件测试吗?包括哪些测试内容?

随着移动互联网的飞速发展,购物App在人们的日常生活中扮演着越来越重要的角色。然而,由于App开发的复杂性和用户对于购物体验的高要求,保证App的质量成为了一项重要的任务。而软件测试作为确保App质量的关键环节,也日益受到重视。…

文件操作(1)(C语言版)

前言: 为什么要学习文件操作: 1、如果大家写过一些代码,当运行结束的时候,这些运行结果将不复存在,除非,再次运行时这些结果才能展现在屏幕上面,就比如之前写过的通讯录。 现实中的通讯录可以保…

智游剪辑手机版发布!

耗时一个多月,手机版终于开发的差不多了,下面带大家一起来看下效果咋样吧! 功能介绍 打开应用就可以直接看到我们的所有功能了,支持分类查看和关键词搜索功能,每个功能都可以查看帮助教程和收藏,点击即可进…

Day40

Day40 监听器 概念: 监听器用于监听web应用中某些对象信息的创建、销毁、增加,修改,删除等动作的 发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用 监听器对象中的方法。 常用于统计在线…

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用)AWS

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用) 1. 前言 2. 创建AWS账户 3. EC2 3.1 启动 EC2 新实例 3.1.1 入口 3.1.2 设置名称 选择服务 3.1.3 创建密钥对 3.1.4 网络设置——安全组 3.1.4.1 初始设置 3.1.4.2 添加安全组规则(开放新…

0X0-基于Sklearn的机器学习入门:聚类(上)

本节及后续章节将介绍深度学习中的几种聚类算法,所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇,将介绍几种相对基础的聚类算法,包括K-均值算法和均值漂移算法。 目录 X.1 聚类概述 X.1.1 聚类的种类 X.1.2 Sklearn聚类子模块 …

【JVM结构、JVM参数、JVM垃圾回收】

JVM:Java Virtual Machine java虚拟机 虚拟机:使用软件技术模拟出与具有完整硬件系统功能、运行在一个隔离环境中的计算机系统。 JVM官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html java 一些命令 javac 将文件编…

【C++入门(3)】函数重载、引用

一、函数重载 1、函数重载概念 函数重载是指在同一作用域中,具有不同形参列表(参数的 个数 或 类型 或类型顺序 不同)的同名函数。 C语言中不允许同名函数的存在,如果一个程序中有两个函数的函数名完全相同,就会报错…

C#(C Sharp)学习笔记_多态【十九】

前言 个人觉得多态在面向对象编程中还比较重要的,而且不容易理解。也是学了一个下午,才把笔记写得相对比较完善,但仍欠缺一些内容。慢慢来吧…… 什么是多态? 基本概念 在编程语言和类型论中,多态(Poly…