统计学习方法 学习笔记(5)决策树

news2024/10/7 14:25:12

决策树

    • 5.1.决策树模型与学习
    • 5.2.特征选择
    • 5.3.决策树的生成
    • 5.4.决策树的剪枝
    • 5.5.CART算法

决策树基本概述

  • 算法类别:一种基本的分类和回归方法;
  • 基本结构:呈现树形结构,在分类问题中表示基于特征对实例进行分类的过程。
  • 主要优点:模型具有可读性,分类速度快。
  • 一般步骤:特征选择、决策树的生成和决策树的修剪。

5.1.决策树模型与学习

决策树的定义:分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。

决策树分类过程:从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子结点。递归执行上述过程直到到达叶节点。

决策树的规则构建:由决策树的根节点到叶节点的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。

规则集合的性质:互斥并且完备。也就是说,每一个实例都被且仅被一条路径或一条规则所覆盖。

决策树与条件概率分布:决策树可以表示给定特征条件下类的条件概率分布,换句话说,也就是在当某个样本的某个或某些特征值确定后,判定其属于各个类别的概率,这个概率是条件概率。最终选择条件概率最大的一个类作为分类结果。

决策树学习

  • 决策树学习的本质:从训练数据集中归纳出一组分类规则。
  • 可能的决策树数量:与训练数据集不相矛盾的决策树可能有多个,也可能一个都没有。
  • 损失函数:通常是正则化的极大似然函数。
  • 求解算法:因为从可能的决策树中直接选取最优决策树是NP完全问题,因此通常采用启发式算法,近似求解该最优化问题,这样得到的决策树是次最优的。常用的学习算法有ID3、C4.5和CART。
  • 算法流程:通常是一个递归地选择最优特征,并根据该特征对训练集数据进行分割,使得对各个子数据集有一个最好的分类的过程。
  • 过拟合与剪枝:决策树很容易发生过拟合问题,因此需要对生成的树自下而上进行剪枝,使得树变得简单,从而具有更好的泛化能力。具体的,就是去掉过于细分的叶子结点,使得其回退到父结点甚至更高的结点,然后将父结点或更高的结点改为新的叶结点。

5.2.特征选择

特征选择概述:特征选择在于选择对训练数据具有分类能力的特征,这样可以提高决策树学习的效率。

常用的选择准则:信息增益或信息增益比。、

信息熵

  • 表示内容:表示随机变量不确定性程度。
  • 计算公式
    在这里插入图片描述
  • 度量单位:如果上面的表达式中对数以2为底,则单位称为比特;如果上面的表达式中对数以自然对数e为底,则单位称为纳特。
  • 变化范围
    在这里插入图片描述
  • 特征选择的趋向性:偏向于选择取值较多的特征。
  • 条件熵:条件熵H(Y|X)表示在已知随机变量X的取值的条件下随机变量Y的不确定性。
  • 经验熵和经验条件熵:由于熵的计算中需要求出概率,当概率是使用数据估计(尤其是最大似然估计法)得到时,所对应的熵与条件熵分别被称为经验熵和经验条件熵。

信息增益

  • 表示内容:得知随机变量X的信息而使得类别Y的信息不确定性减少的程度。
  • 信息增益定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差。
    在这里插入图片描述
  • 使用信息增益准则的特征选择原理:不同的特征往往有不同的信息增益,信息增益大的特征具有更强的分类能力。
  • 使用信息增益准则的特征选择方法:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。

信息增益计算例题(暂略)

特征增益比

  • 优点:校正了信息增益选择取值较多的特征的问题。
  • 定义:特征A对训练数据集D的信息增益比gr(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比。
    在这里插入图片描述

5.3.决策树的生成

ID3算法:从根节点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点,再对子结点递归调用以上方法生成决策树。直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一棵决策树。

C4.5算法:C4.5算法和ID3算法相似,C4.5算法对ID3算法进行了改进,使用信息增益比代替信息增益来选择特征。

5.4.决策树的剪枝

决策树的问题:决策树在学习的过程中过多地考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树,因此会有过拟合问题。

剪枝的定义:剪枝是决策树中将已经生成的树进行简化的过程。具体的,剪枝从已经生成的树上裁掉一些子树或叶子结点,并将其根节点或父结点作为新的叶结点,从而简化分类树模型。

整体与局部的学习:决策树的生成过程学习局部的模型,决策树剪枝学习整体的模型。

决策树的剪枝算法:对于每一个结点计算其剪枝前后的损失函数值,如果剪枝后损失函数值变小,则可以进行剪枝。重复这个过程直到不能继续为止。

5.5.CART算法

CART算法地位:分类与回归树模型CART是应用广泛的决策树学习方法。

CART算法功能:同样既可以用于分类也可以用于回归。

CART的结构:假设决策树是二叉树,内部结点特征的取值都是“是”或“否”,左分支为“是”,右分支为“否”。这样的决策树等价于递归地二分每个特征,将输入空间划分为有限个单元,并在这些单元上确定预测的概率分布。

CART的算法流程

  1. 决策树生成:基于训练数据集生成决策树,生成的决策树要尽可能大。
  2. 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。

分类树的特征选择准则:基尼指数

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

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

相关文章

云原生之使用docker部署Postgresql数据库

云原生之使用docker部署Postgresql数据库一、Postgresql介绍1.PostgreSQL简介2.PostgreSQL的特点二、检查本地docker环境1.检查系统版本2.检查docker版本3.检查docker状态三、下载Postgresql镜像四、部署Postgresql数据库1.创建Postgresql容器2.查看Postgresql容器状态3.查看Po…

通配符的匹配很全面, 但无法找到元素 ‘context:component-scan‘ 的声明。

HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 Servlet[springMVC]的Servlet.init()引发异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 javax.servlet.ServletException: Servlet[springMVC]的Servlet.init&#x…

一文看懂Linux基础

文章目录什么是Linux操作系统window和linux的对比快照的拍摄Linux的文件结构kali Linux的简单介绍基础命令vim命令文件权限kali的常见工具查看命令1.查看操作:2.删除操作:3.复制操作:4.移动操作:5.重命名操作:7.上传文…

【时间复杂度和空间复杂度】

1.时间复杂度时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个数学函数,它定量描述了该算法的额外运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起…

Linux系统用户和权限

文章目录root用户用户、用户组管理查看权限控制修改权限控制 - chmod修改权限控制 - chownroot用户 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中,拥有最大权限的账户名为:root(超级管理员) …

机器学习(七):Azure机器学习模型搭建实验

文章目录 Azure机器学习模型搭建实验 前言 Azure平台简介 Azure机器学习实验 Azure机器学习模型搭建实验 前言 了解Azure机器学习平台,知道机器学习流程。 Azure平台简介 Azure Machine Learning(简称“AML”)是微软在其公有云Azure上推…

前缀树 字典树 TrieTree的学习与模拟实现

目录前言前缀树介绍C实现核心思想前缀树的大致框架前缀树插入字符串前缀树查找完整的字符串前缀树查找前缀匹配的字符串前缀树删除完整字符串总结完整代码前言 哥们在去年12月的一次实习面试的时候,远在旧金山的一家美企CTO面试我,岗位在西安&#xff0…

【MySQL进阶】MySQL视图详解

序号系列文章6【MySQL基础】MySQL单表操作详解7【MySQL基础】运算符及相关函数详解8【MySQL基础】MySQL多表操作详解9【MySQL进阶】MySQL事务详解文章目录前言1,视图1.1,视图概述1.2,视图使用环境1.3,视图创建格式1.4,…

【C语言课堂】 函数递归

欢迎来到 Claffic 的博客 💞💞💞 前言: 时隔多日,来还欠大家的 C 语言学习啦,上期讲了函数,其实函数中应该包括函数递归的,这里单独拿出来讲解的原因是函数递归属于重难知识&#xf…

【编程入门】开源记事本(Flutter版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…

数据结构入门(力扣算法)

数据结构入门前面的题号为力扣的题号数组的217. 存在重复元素53. 最大子数组和1. 两数之和88. 合并两个有序数组350. 两个数组的交集 II121. 买卖股票的最佳时机566. 重塑矩阵118. 杨辉三角36. 有效的数独73. 矩阵置零字符串的387. 字符串中的第一个唯一字符383. 赎金信242. 有…

LeetCode 437. 路径总和 III

LeetCode 437. 路径总和 III 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的&#xff…

JUC面试(十一)——LockSupport

可重入锁 可重入锁又名递归锁 是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获取过的锁还没释放而阻塞。 Java中ReentrantLock和synchronized都是可重入锁&am…

第一章 概述

第一章 概述 1.1 计算机网络在信息时代中的作用 21世纪的一些重要特征 数字化,网络化和信息化 以网络为核心的信息时代 互联网的两个重要基本特点 连通性共享(资源共享) 1.2 互联网概述 计算机网络由若干个结点货连接这些结点的链路组成…

【唐诗学习】四、边塞诗派代表

四、边塞诗派代表 边塞诗派起源 盛唐是中国历史上一个空前的盛世,国库丰盈,社会十分安定,百姓的幸福指数高。 盛唐是中国历史上一个空前的盛世,国库丰盈,社会十分安定,百姓的幸福指数高。唐太宗以后的几个…

Citadel——Dusk网络的Zero-Knowledge KYC解决方案

1. 引言 近期,Dusk网络宣布其已支持名为Citadel的Zero-Knowledge KYC解决方案,使得用户和机构可控制其权限以及个人信息分享。该架构可用于all claim-based KYC requests,并让用户完全控制他们共享的信息以及与谁共享信息,同时完…

详解Java中的BIO、NIO、AIO

1、 详解Java中的BIO、NIO、AIO 1.1、引言 IO流是Java中比较难理解的一个知识点,但是IO流在实际的开发场景中经常会使用到,比如Dubbo底层就是NIO进行通讯。本文将介绍Java发展过程中出现的三种IO:BIO、NIO以及AIO,重点介绍NIO。…

【c语言进阶】常见的静态通讯录

🚀write in front🚀 📜所属专栏:c语言学习 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我…

2.H3CNE-网络参考模型

OSI参考模型产生背景各大IT设备厂商只支持自己的私有协议,跨厂商设备兼容性差用户购买和维护成本高不利于网络技术发展概念定义了网络中设备所遵守的层次结构优点开放的标准化接口,协议不再封闭多厂商设备兼容易于理解、学习和更新协议标准实现模块化工程…

【Leetcode刷题】141、环形链表

原题链接:https://leetcode.cn/problems/linked-list-cycle/?favorite2cktkvj给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的…