《机器学习by周志华》学习笔记-决策树-03

news2024/9/21 22:59:49

1、连续值处理

到目前为止,我们在决策树01、02中仅讨论了基于离散属性来生成决策树,而现实任务中常会遇到连续属性,所以在本章的学习中,我们将会讨论如何在决策树学习中使用连续属性。

1.1、概念

取值范围是连续的实数值或者整数值的属性就是「连续属性」,与离散属性相对立。

这种属性通常可以用一个区间来描述,比如身高、体重、温度等。连续属性的取值通常是在一个连续的范围内变化的,因此它们的值可以是任何一个范围内的实数值或者整数值,而不是一组离散的取值。

1.2、背景

由于连续属性的可取值数目不再有限,因此不能直接根据「连续属性」的可取值来对节点进行划分,此时,想要生成决策树,就需要使用「连续属性离散化」技术解决。

连续属性离散化技术:

①概念:是「数据变换」的一种方式,用于生成决策树。

②方法:连续属性离散化-CSDN博客

  • 无监督离散化
    • 等宽法
    • 灯频法
    • K-means聚类分析
    • ...
  • 有监督离散化

本文采用了二分法(bi-partition)对连续属性进行处理,这正是C4.5决策树算法中采用的机制。 

1.3、方法

给定样本集D和连续属性a,假设a在D上出现了n个不同的取值,将这些值从小到大进行排序,记为集合Ai,可表示为:

A_{i}=\left \{ a_{1} ,a_{2} ,...,a_{n} \right \}

基于划分点t(a_{1}\leq t\leq a_{n}),可将D分为子集D_{t}^{-}D_{t}^{+},其中:

D_{t}^{-}=[a_{1},t]

D_{t}^{+}=(t,a_{n}]

对于连续属性a相邻取值a_{i}a_{i+1}来说,t在区间[a_{i},a_{i+1})中任意取值所产生的划分结果相同,因此对连续属性a,我们可以考察a1~a(n-1)取值的候选划分点的集合Ta:

T_{a}=\left \{ t_{1},t_{2},...,t_{n-1} \right \}=\left \{ \frac{a_{i}+a_{i+1}}{2} \right \}(1\leq i\leq n-1)

然后,我们将按照离散属性一样来考察这n-1个划分点,选择最优的划分点来对样本集合进行划分:

Gain(D,A_{i})=\underset{t\in T_{a}}{max}Gain(D,A_{i},t)=\underset{t\in T_{a}}{Ent(D)}-\sum_{\lambda \in (-,+)}^{}\frac{|D_{t}^{\lambda }|}{|D|}Ent(D_{t}^{\lambda })

其中Gain(D,A_{i},t)是样本D给予划分点t二分之后的「信息增益」,则需要我们求出「信息增益」最大的划分点t_{i}

1.4、案例

给定西瓜数据集D如下表:

表1:西瓜数据集——离散属性&连续属性

编号 色泽(A1) 根蒂(A2) 敲声(A3) 纹理(A4) 脐部(A5) 触感(A6) 密度(A7) 含糖率(A8) 是否好瓜(Y)
x1 青绿A_{1}^{1} 蜷缩A_{2}^{1} 浑浊A_{3}^{1} 清晰A_{4}^{1} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.697 0.460 是Y1
x2 乌黑A_{1}^{2} 蜷缩A_{2}^{1} 沉闷A_{3}^{2} 清晰A_{4}^{1} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.774 0.376 是Y1
x3 乌黑A_{1}^{2} 蜷缩A_{2}^{1} 浑浊A_{3}^{1} 清晰A_{4}^{1} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.634 0.264 是Y1
x4 青绿A_{1}^{1} 蜷缩A_{2}^{1} 沉闷A_{3}^{2} 清晰A_{4}^{1} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.608 0.318 是Y1
x5 浅白A_{1}^{3} 蜷缩A_{2}^{1} 浑浊A_{3}^{1} 清晰A_{4}^{1} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.556 0.215 是Y1
x6 青绿A_{1}^{1} 稍蜷A_{2}^{2} 浑浊A_{3}^{1} 清晰A_{4}^{1} 稍凹A_{5}^{2} 软粘A_{6}^{2} 0.403 0.237 是Y1
x7 乌黑A_{1}^{2} 稍蜷A_{2}^{2} 浑浊A_{3}^{1} 稍糊A_{4}^{2} 稍凹A_{5}^{2} 软粘A_{6}^{2} 0.481 0.149 是Y1
x8 乌黑A_{1}^{2} 稍蜷A_{2}^{2} 浑浊A_{3}^{1} 清晰A_{4}^{1} 稍凹A_{5}^{2} 硬滑A_{6}^{1} 0.437 0.211 是Y1
x9 乌黑A_{1}^{2} 稍蜷A_{2}^{2} 沉闷A_{3}^{2} 稍糊A_{4}^{2} 稍凹A_{5}^{2} 硬滑A_{6}^{1} 0.666 0.091 否Y2
x10 青绿A_{1}^{1} 硬挺A_{2}^{3} 清脆A_{3}^{3} 清晰A_{4}^{1} 平坦A_{5}^{3} 软粘A_{6}^{2} 0.243 0.267 否Y2
x11 浅白A_{1}^{3} 硬挺A_{2}^{3} 清脆A_{3}^{3} 模糊A_{4}^{3} 平坦A_{5}^{3} 硬滑A_{6}^{1} 0.245 0.057 否Y2
x12 浅白A_{1}^{3} 蜷缩A_{2}^{1} 浑浊A_{3}^{1} 模糊A_{4}^{3} 平坦A_{5}^{3} 软粘A_{6}^{2} 0.343 0.099 否Y2
x13 青绿A_{1}^{1} 稍蜷A_{2}^{2} 浑浊A_{3}^{1} 稍糊A_{4}^{2} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.639 0.161 否Y2
x14 浅白A_{1}^{3} 稍蜷A_{2}^{2} 沉闷A_{3}^{2} 稍糊A_{4}^{2} 凹陷A_{5}^{1} 硬滑A_{6}^{1} 0.657

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

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

相关文章

Java全栈开发知识图谱(概要)

Java全栈开发知识图谱 基础知识 Java基础 语法面向对象编程(OOP)异常处理集合框架并发编程JVM原理 下列的只是图谱来源与网路 ,仅作为学习笔记使用,侵删。 数据结构和算法 常用数据结构(数组、链表、栈、队列、树等…

通过提示词越狱解锁学习提示词的新姿势

一、什么是提示词越狱 提示词越狱是一种针对语言模型的攻击方法,攻击者通过设计特定的提示词或查询,诱导模型生成不当或有害的内容。这类攻击通常利用模型的脆弱性,绕过其内置的安全机制。通过巧妙的措辞或特殊的结构,攻击者能够…

【ML】为什么multi-lingual bert 有跨语言的能力?M-BERT有什么特点

【ML】为什么multi-lingual bert 有跨语言的能力? 1. Multi-lingual BERT的跨语言能力解析1.1 什么是Multi-lingual BERT?1.2 为什么Multi-lingual BERT有跨语言的能力?1.3 结论 2. 数据量减少对BERT识别能力的影响及Multi-lingual BERT的跨…

删除git中的.idea

删除git中的.idea 1. 修改 .gitignore 文件内容,添加 .idea echo .idea >> ./gitignore2. 删除本地暂存区的 .idea [git rm命令用于从Git仓库中删除文件或目录, 而--cached选项告诉Git仅删除Git索引中的.idea目录,并不会删除本地文件系…

【大数据】重塑时代的核心技术及其发展历程

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是大数据 2、大数据技术诞生的背景 二、大…

Java并发编程(七)—ThreadLocal的原理及应用详解

目录 一、ThreadLocal的原理 1、ThreadLocal对象 2、ThreadLocalMap 3、Thread 对象 4、get() 和 set() 方法 5、内存管理 二、ThreadLcoal的应用 三、ThreadLocal扩展问题 四、总结 ThreadLocal 类在 Java 中提供了一种机制,可以在每个线程中存储独立的变…

【Python】基础语法介绍

目录 一、标识符和关键字 二、注释 三、缩进 四、输入和输出 五、字符串操作 六、基本数据类型 七、复合数据类型 7.1 列表 7.2 元组 7.3 字典 7.4 集合 八、数据类型转换 九、运算符 8.1 算术运算符 8.2 比较运算符 8.3 赋值运算符 8.4 位运算符 8.5 逻辑运…

网络编程day1

一、思维导图 网络基础

wordpress全局自适应网址导航整站打包源码,含主题和数据库

wordpress全局自适应网址导航整站打包源码,含主题和数据库。直接恢复就可以使用了。 这个是自适应的布局设计,体验还不错。用网址导航是可以的。 代码免费下载:百度网盘

golang for range time.Ticker 和 time.Timer时间通道使用示例 - 每隔指定时间执行一次,执行指定时长后退出执行

golang中的 ticker和timer时间通道除了可以使用for select case语句来执行外, 还可以使用 for range语句来执行ticker或者timer时间通道。 for range time.Ticker 和 time.Timer时间通道使用示例 下面的示例演示了time.Ticker 和 time.Timer的区别和使用演示。 Ti…

《向量数据库指南》——向量数据库技术积累与商业机会

一豪:Charles提到了一个关键点,就是RAG技术结合模型对非结构化数据的理解和搜索能力,甚至可以很好地架接在传统结构化数据的解决方案中。作为向量数据库的核心技术点,对数据本身特别是非结构化数据的向量化、精炼和压缩,我相信Zilliz等公司有很多独门技巧和技术积累。随着…

UE基础 —— 编辑器界面

菜单栏 UE中每个编辑器都有一个菜单栏,部分菜单会出现在所有编辑器窗口中,如File、Window、Help,其他则是其编辑器特有的; 主工具栏 UE中部分最常用的工具和命令的快捷方式; 1,保存按钮(ctrls&a…

NIO线程模型

NIO线程模型主要涉及以下几个方面: 一、基本概念 NIO(New Input/Output)是Java的一种新的输入输出模型,也被称为非阻塞IO。其核心特点是数据读写操作均是非阻塞的,即在进行读写操作时,若数据未准备好&…

Python第三方库——mrjob的介绍

一、简介 mrjob 是一个强大的 Python 库,它允许开发者以 Pythonic 的方式编写 MapReduce 作业,并在多种环境下运行这些作业,包括本地机器、Hadoop 集群、Amazon Elastic MapReduce (EMR) 和 Google Cloud Dataproc。通过使用 mrjob&#xff…

ARTS Week 37

Algorithm 本周的算法题为 1232. 缀点成线 给定一个数组 coordinates ,其中 coordinates[i] [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。 示例 1:输入:coordinates …

8月9日笔记

8月9日笔记 什么是代理? “代理”通常指的是“网络代理”,它是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。代理服务器作为中间人…

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.3定义范围

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

PHP利用PCRE回溯次数

目录 原理 例子 来一道题(2018i春秋圣诞欢乐赛官方WriteUp) 利用php弱语言特性解题 利用回溯 原理 对于一串正则表达式来说它匹配了一系列的字符串后自身的正则还没有用完,这个时候就会触发回溯机制,超过回溯次数正则匹配就失…

【代码故事】VSCode知名主题material-theme仓库代码清空

大家好,我是前端之虎陈随易。 这是我的个人网站 https://chensuiyi.me。 出大事了 看到了一篇前端社区开源扛把子 Anthony Fu 的帖子。 经过一番了解,出大事了! 知名 VSCode 主题 material-theme 仓库清空了! 连带着所有提交…

【MySQL】1.MySQL基本操作

目录 一、MySQL数据库登陆 1、设置环境变量 2、cmd命令登陆数据库 二、基本操作语法 1、显示数据库——SHOW 2、使用/选择数据库——USE 3、删除——DROP 4、创建——CREATE 5、查看表结构——DESC 6、数据操作——增删改查 (1)增/插入&#…