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

《机器学习by周志华》学习笔记-决策树-03连续值与缺失值

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.6970.460是Y1
x2乌黑A_{1}^{2}蜷缩A_{2}^{1}沉闷A_{3}^{2}清晰A_{4}^{1}凹陷A_{5}^{1}硬滑A_{6}^{1}0.7740.376是Y1
x3乌黑A_{1}^{2}蜷缩A_{2}^{1}浑浊A_{3}^{1}清晰A_{4}^{1}凹陷A_{5}^{1}硬滑A_{6}^{1}0.6340.264是Y1
x4青绿A_{1}^{1}蜷缩A_{2}^{1}沉闷A_{3}^{2}清晰A_{4}^{1}凹陷A_{5}^{1}硬滑A_{6}^{1}0.6080.318是Y1
x5浅白A_{1}^{3}蜷缩A_{2}^{1}浑浊A_{3}^{1}清晰A_{4}^{1}凹陷A_{5}^{1}硬滑A_{6}^{1}0.5560.215是Y1
x6青绿A_{1}^{1}稍蜷A_{2}^{2}浑浊A_{3}^{1}清晰A_{4}^{1}稍凹A_{5}^{2}软粘A_{6}^{2}0.4030.237是Y1
x7乌黑A_{1}^{2}稍蜷A_{2}^{2}浑浊A_{3}^{1}稍糊A_{4}^{2}稍凹A_{5}^{2}软粘A_{6}^{2}0.4810.149是Y1
x8乌黑A_{1}^{2}稍蜷A_{2}^{2}浑浊A_{3}^{1}清晰A_{4}^{1}稍凹A_{5}^{2}硬滑A_{6}^{1}0.4370.211是Y1
x9乌黑A_{1}^{2}稍蜷A_{2}^{2}沉闷A_{3}^{2}稍糊A_{4}^{2}稍凹A_{5}^{2}硬滑A_{6}^{1}0.6660.091否Y2
x10青绿A_{1}^{1}硬挺A_{2}^{3}清脆A_{3}^{3}清晰A_{4}^{1}平坦A_{5}^{3}软粘A_{6}^{2}0.2430.267否Y2
x11浅白A_{1}^{3}硬挺A_{2}^{3}清脆A_{3}^{3}模糊A_{4}^{3}平坦A_{5}^{3}硬滑A_{6}^{1}0.2450.057否Y2
x12浅白A_{1}^{3}蜷缩A_{2}^{1}浑浊A_{3}^{1}模糊A_{4}^{3}平坦A_{5}^{3}软粘A_{6}^{2}0.3430.099否Y2
x13青绿A_{1}^{1}稍蜷A_{2}^{2}浑浊A_{3}^{1}稍糊A_{4}^{2}凹陷A_{5}^{1}硬滑A_{6}^{1}0.6390.161否Y2
x14浅白A_{1}^{3}稍蜷A_{2}^{2}沉闷A_{3}^{2}稍糊A_{4}^{2}凹陷A_{5}^{1}硬滑A_{6}^{1}0.657

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CoCoOp(论文解读):Conditional Prompt Learning for Vision-Language Models
  • 蓝盆花:神秘而迷人的自然之美
  • speech语音audio音频
  • Maven坐标
  • 十四、OpenCVSharp视频处理
  • 抽象代数精解【13】
  • 《向量数据库指南》——AI应用部署落地与权限安全差别
  • Qt/QML学习-SwipeView
  • 机器学习课程学习周报八
  • 基于华为atlas下的yolov5+BoT-SORT/ByteTrack煤矿箕斗状态识别大探索
  • ES6 (一)——ES6 简介及环境搭建
  • 大模型学习微调资源
  • django之BaseSerializer
  • Go语言基础--数据类型(布尔、字符串)
  • QT 按钮延时以及滚动条提示
  • create-react-app项目添加less配置
  • java2019面试题北京
  • JavaScript DOM 10 - 滚动
  • Java多态
  • python学习笔记-类对象的信息
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SQLServer之创建数据库快照
  • windows-nginx-https-本地配置
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 翻译:Hystrix - How To Use
  • 观察者模式实现非直接耦合
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (1)Nginx简介和安装教程
  • (11)MSP430F5529 定时器B
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (独孤九剑)--文件系统
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (算法)Game
  • *Django中的Ajax 纯js的书写样式1
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .net 程序发生了一个不可捕获的异常
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net打印*三角形
  • .NET周刊【7月第4期 2024-07-28】