第四章 决策树

news/2024/12/4 17:24:40/文章来源:https://www.cnblogs.com/Moc-W/p/18586518

4.1 基本流程

决策过程的最终结论对应了所希望的判定结果

决策过程中提出的每个判定问题是对某个属性的测试

一个决策树包含一个根节点,若干个内部节点和若干个叶节点

叶节点对应决策结果。其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。从根结点到每个叶结点的路径对应了一个判定测试序列.

决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。

这是一个递归过程,三个情况会递归返回。
1.当前节点包含的样本同属于一个类别,不需要划分。
2.当前属性集为或者所有样本在所有属性上的取值相同,所有样本在属性值上无区别,因此无法划分。
3.当前节点包含的样本集合为空,不能划分。

4.2 划分选择

决策树学习的关键是如何选择最优划分属性。目的是使决策树的分支节点所包含的样本尽可能属于同一类别

4.2.1 信息增熵
信息熵:度量样本集合纯度的指标。

假定当前样本集合D中第k类样本所占的比例为
,则D的信息熵定义为

Ent(D)的值越小,则D的纯度越高。

假定离散属性a有V个可能取值,若使用a来对样本集合D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为的样本,记为。计算出的信息熵后,再考虑不同的分支结点所包含的样本数不同,给分支结点赋予权重,即样本数越多的分支结点的影响越大,于是可计算出属性a对样本集D进行划分的信息增益

信息增益越大,使用该属性a进行划分所得到的纯度提升越大。由此使用信息增益来进行决策树的划分属性选择

4.2.2 增益率

信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,使用“增益率”来选择最优属性划分。

增益率定义为

其中

其称为属性a的“固有值”
属性a的可能取值数目越多(V越大),则IV(a)的值通常会越大

需注意的是,增益率准则对可取值数目较少的属性有所偏好。

4.2.3 基尼指数

CART决策树使用基尼指数来选择划分属性。
数据集D的纯度可以用基尼值来度量:

Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此Gini(D)越小,数据集D的纯度越高

属性a的基尼指数定义:

在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性

4.3 剪枝处理

剪枝处理:对付过拟合的主要手段。
剪枝分为预剪枝后剪枝,两则都是为了提升决策树的泛化能力
可以运用性能评估方法判断决策树泛化性能是否提升。

4.3.1 预剪枝

预剪枝:在决策树生成过程中,对每个结点在划分先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点

优点:降低过拟合风险,减少决策树的训练时间开销测试时间开销
缺点:有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;基于“贪心”本质禁止这些分支展开,可能有欠拟合的风险。

4.3.2 后剪枝

后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点

优点:保留了更多分支欠拟合风险小泛化性能往往优于预剪枝决策树。
缺点:训练时间开销比未剪枝决策树和预剪枝决策树都要得多。

4.4 连续与缺失值
4.4.1 连续值处理

属性中会有连续值,连续属性的可取值数目不再有限,不能直接使用连续属性的可取值来对结点进行划分。这时候需要将连续属性离散化,最简单策略是使用二分法对连续属性进行处理。

给定样本集D和连续属性a,假定α在D上出现了n个不同的取值,将这些值从小到大进行排序,记为。基于划分点t可将D分为子集,其中。包含那些在属性a上取值不大于t的样本,而则包含那些在属性a上取值大于t的样本.显然,对相邻的属性取值来说, t在区间中取任意值所产生的划分结果相同。因此,对连续属性啊,我们可以考察包含n-1个元素的候选划分点集合

即把区间的中位点作为候选划分点。然后我们就可以像离散属性值一样俩考察这些划分点,选取最优的划分点进行样本集合的划分。

其中是样本集D基于划分点t二分后的信息增益。于是,我们就可选择使最大化的划分点。

4.4.2 缺失值处理

我们需解决两个问题:
1.如何在属性值缺失的情况下进行划分属性选择
2.给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

给定训练集D和属性a,令
![]表示D中在属性a上没有缺失值的样本子集。

  • 对于问题1:
    显然我们仅可根据来判断属性a的优劣。假定属性a有V个可取值,令表示
    ![]中在属性a上取值为的样本子集,
    表示
    ![]中属于第k类的样本子集,则显然有。假定我们为每个样本x赋予一个权重,并定义
    (https://img2024.cnblogs.com/blog/3544642/202412/3544642-20241204170308275-1512797624.png)
    直观地看,对属性a,p表示无缺失值样本所占的比例,表示无缺失值样本中第k类所占的比例,则表示无缺失值样本中在属性a上取值的样本所占的比例.显然
    因此我们可以将信息增益的计算式推广为

    其中

  • 对于问题2:
    若样本x在划分属性α上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为.若样本x在划分属性α上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值对应的子结点中调整为;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去.

4.5 多变量决策树

决策树所形成的分类边界有一个明显特点:轴平行。即它的分类边界由若干个与坐轴平行的分段组成。

多变量决策树:是能实现斜划分或者更复杂划分的决策树。非叶结点不是仅对某个属性,而是对属性的线性组合进行测试,每个非叶结点是一个形如的线性分类器。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hhdb数据库介绍(10-36)

管理 分片方案在线变更 提供对业务表的表类型、分片规则、分片字段、分片所属数据节点四个维度进行在线变更的支持。业务表在变更期间不会锁表,业务可对表进行正常的IUD操作。 分片方案在线变更记录页面显示已执行完成或正在执行的变更任务记录,正在变更的任务允许通过【取消…

智慧车辆算法视频分析服务器渣土车偷拉乱倒识别算法:”智慧城市守卫者“

随着城市化进程的加速,渣土车在建筑、道路等施工领域扮演着至关重要的角色。然而,由于管理和监控手段的不足,渣土车的偷拉乱倒现象日益严重,给城市环境造成了很大影响。针对这一问题,我们来探讨一下视频分析服务器在渣土车偷拉乱倒识别中的应用及相关算法。一、渣土车偷拉…

hhdb数据库介绍(10-33)

管理 数据归档 归档记录查询 功能入口:“管理->数据归档->归档记录查询”需要确保配置的归档用户对数据归档规则所在的逻辑库具备CREATE权限,以及对原数据表具有所有权限。 清理归档数据 (一)功能入口:“管理->数据归档->清理归档数据”清理已归档的数据,但不…

实用free的音频格式转化工具

最近写的博客居然是7年前,今天给小朋友下载歌曲时在网上搜了好多格式转化的方法,挨个尝试了之后发现好多是收费的,或者不支持某种格式转化的,但还是大浪淘沙到一些实用的工具。分享给大家参考,同时也督促自己不断学习。 一、在线格式转换工具Zamzar网址:https://www.zamz…

记录第一次参加开源的流程

记录第一次参加开源贡献开源步骤选择开源项目Fork该开源项目(即拷贝一份代码到自己的远程仓库如gitee或github)在本地使用git将自己远程仓库下的代码clone下来自己本地修改git add . (将修改后的代码添加到缓存区)git commit -m "修改信息" (为此次的修改添加备注)gi…

Bootstrap-table表格组件和jquery版本兼容问题

jquery版本引起的bootstrap-table组件表格未能渲染 最近写一个带分页的页面,使用了bootstrap-table组件,表格数据怎么都渲染不出来,控制台打印出了下面的信息:一时有点懵,确认js代码及bootstrap-table用法没有任何问题后,将数据放入以前可正确渲染的页面中,表格正常渲染…

Vulnhub Connect-The-Dots

0x01:端口扫描 主机发现 nmap -sn 192.168.231.0/24全端口扫描 nmap --min-rate 10000 -p- 192.168.231.144开放21ftp,80http,111rpcbind,2049nfsrpcbind 主要的作用是将网络上的 RPC 服务与其对应的端口进行关联。它充当了客户端和服务器之间的桥梁,使得客户端可以通过服…

办公自动化处理展示

1、自动绘制地质图2、自动出高速公路路面自检资料3、自动出高速公路路基自检资料4、自动出高速公路T梁预制自检资料5、自动出高速公路桩基资料自检资料6、自动出高速垫石自检资料7、自动化操作网页8、CAD编程提取点坐标9、扫描的PDF自动识别文字或表格10、pdf文件自动拆分并命名…

使用脚本发布订阅

建使用本地分发服务器】/************************【使用本地分发服务器配置发布】***********************/ -- SqlServer 2008 R2 -- https://technet.microsoft.com/zh-cn/library/ms151860(v=sql.105).aspx use master go -- 服务器上是否已安装分发…

form标签中的button未指明type时默认的类型是什么

form中button未指明type时,默认type为submit 遇到了一个奇怪的现象:一个按钮打开一个Bootstrap模态框,模态框有几个表单字段和两个按钮,两个按钮可以关闭模态框,点击其中一个按钮关闭模态框后页面居然刷新了。 仔细检查后发现点击的按钮未指明type,浏览器把按钮type默认为…

kubernetes菜鸟学习笔记

目录环境准备dockerminikube启动minikube其他命令kubectlkubernetes dashboardKubernetesPodDeployment自动扩缩容升级版本版本回退探针探针配置项启动探针(startupProbe)就绪探针 (readinessProbe)存活探针(livenessProbe)配置示例Service示例Service和Ingress的区别Ingress示…

20222404 2024-2025-1 《网络与系统攻防技术》实验七实验报告

1.实验内容 总结一下本周学习内容,不要复制粘贴 2.实验过程 2.1 简单应用SET工具建立冒名网站 攻击机:kaii 192.168.47.141 靶机:windows xp 192.168.47.145 2.1.1 查看apache工具的默认端口,发现是80端口,于是就不用修改了查看本机的80端口是否被其他进程占用。 netstat …