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

news/2024/11/16 7:44:57/

决策树

    • 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.ppmy.cn/news/19693.html

相关文章

从源码解析代理模式

大纲代理模式(结构型设计模式)通过代理类去访问实现类中的方法,使用场景比如:已有接口和实现类的情况下,想要在已实现的方法基础上扩展更多的功能的场景。代理模式里的主要类:接口实现类,需实现…

c++函数(2)

这里写自定义目录标题默认参数函数重载递归函数变量周期默认参数 可为形参指定默认值,如果在函数调用时,没有指定与形参对应的实参时,就自动使用默认值。 默认参数可简化复杂函数的调用。 默认参数在函数名第一次出现在程序中指定&#xff0…

kubernetes资源对象应用类(二)

kubernetes资源对象应用类(二) Service 的 ClusterIP 地址 既然每个 Pod 都会被分配一个单独的 IP 地址,而且每个 Pod 都提供了一个独立的 Endpoint(Pod IP containerPort)以被客户端访问,那么现在多个 P…

蓝桥杯刷题014——求阶乘(二分法)

求阶乘 蓝桥杯2022省赛题目 问题描述 满足 N ! 的末尾恰好有 K 个 0 的最小的 N 是多少? 如果这样的 N 不存在输出 −1 。 输入格式 一个整数 K 。 输出格式 一个整数代表答案。 样例输入 2样例输出 10评测用例规模与约定 对于 30% 的数据, 1≤K≤10^6. 对于 100% 的数据, 1…

水面漂浮物垃圾识别检测系统 YOlOv7

水面漂浮物垃圾识别检测系统通过PythonYOLOv7网络模型,实现对水面漂浮物以及生活各种垃圾等全天候24小时不间断智能化检测。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使…

【每日一道智力题】之坤坤猜生日(面试高频)

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

ArrayList类

ArrayList类 目录ArrayList类一、构造方法摘要1.1 ArrayList()1.2 ArrayList(Collection c)1.3 ArrayList(int initialCapacity)二、 ArrayList的扩容机制:2.1 源码如下:2.2. 以上扩容机制的弊端:三、代码案例ArrayList类一、构造方法摘要 1…

【C语言课堂】 函数递归

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