决策树基础

概述

  1. 决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一 个测试输出,每个叶结点代表一种类别。
  2. 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。

模型 : 特征树决定的空间划分

策略:不确定信息“度量”最小

算法:以不同的指标选择最优特征进行空间划分,直到满足停止条件

         ID3   (信息增益 )、C4.5    ( 信息增益比)、CART  (二叉树、分类与回归、Gini指数

流程:

  1. 特征选择:决策树在每个节点上选择最佳特征进行分割,这个特征能够最好地区分数据。
  2. 树的增长:通过递归地选择特征并分割数据,直到满足停止条件,如达到最大深度或叶节点中的样本数量小于某个阈值。
  3. 剪枝:为了防止过拟合,决策树需要剪枝,即去除一些不必要的分支。

算法

(1) ID3

使用信息增益作为选择特征的标准,它倾向于选择具有最高信息增益的特征进行分割。

1.1 熵

日常生活中,当我们要搞清楚某件事情时,这件事情的不确定性越大,我们需要了解的信息就越多。由此可以看出,一条信息的信息量大小和它的不确定性有直接关系。受此启发,人们就拿不确定性这个量来度量信息量的大小。在信息论或概率统计中,用熵度量随机变量的不确定性。熵值越大 ,随机变量的不确定性就越大。

定义随机变量X的概率分布为p(x),从而定义X信息量:H(X)=-log_{2}P(x)

对离散型随机事件X的信息量求期望,得熵的定义:

H(X)=\sum_{i=1}^{n}P_{i}logP_i

注:经典熵的定义,底数是2,单位是bit;

        若底数是e,单位是nat(奈特)。

1.2 信息增益

联合熵:

H(Y,X)=H(Y|X)+H(X)

条件熵为:

H(Y|X)=\sum_{x,y}P(x)H(Y|X=x)

信息增益概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。

信息增益表示:得知特征A的信息而使得类X的信息的 不确定性减少的程度。

信息增益定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:

g(D,A)=H(D)-H(D|A)

选择信息增益最大的特征作为当前的分裂特征(根节点)。

其中,数据集D的经验熵为:

H(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log_{2}\frac{|C_k|}{|D|}

信息增益的缺点:特征的类别越多,其信息增益越大,越容易形成分裂特征,造成决策树宽且浅。

(2)C4.5

使用信息增益比(率)来选择特征,以避免偏向于具有更多值的特征

2.1 信息增益比

用信息增益作为划分训练集特征的标准时,有一个潜在的问题,那就是相比之其会倾向于选择类别取值较多的特征。因此人们提出使用信息增益比(Information Gain Ratio)来对这一问题进行校正。 

特征X对训练集的信息增益比定义为特征X的信息增益g(Y,X)与特征X的取值的熵 H(X) 的比值,记为g_{r}(D,A),即

g_{r}(D,A)=\frac{g(D,A)}{H(A)}

(3)CART(Classification and Regression Trees)

既可以用于分类也可以用于回归任务。使用Gini系数求解分类问题;使用平方误差最小求解回归问题。

3.1 基尼系数——分类树:目标变量是离散型

基尼系数(Gini) 可以用来度量任何不均匀分布,且介于 0~1 之间的数 (0指完全相等,1指完全不相等)。分类度量时,总体包含的类别越杂乱,基尼系数就越大 (与熵的概念相似)。基尼指数主要用来度量数据集的不纯度。基尼指数越小,表明样本只属于同一类的概率越高,即样本的纯净度越高。

分类问题中,假设有k个类,样本点属于k的概 率Pk,则概率分布的基尼指数:

 对给定的样本集合D,基尼指数:

Gini系数的图像、熵、分类误差 率三者之间的关系如下:

 

 说明:Gini系数越小越好。

3.2 平方误差最小——回归树:目标变量是连续型

对于含有M个样本、每个样本的特征维度为N的训练数据集D,遍历样本的特征变量Fn,n=1,2...M,对每一个特征变量Fn, 扫描所有可能的K个样本切分点Sk, k = 1,2, ..., K,样本切分点Sk每次将数据集D划分为D1和D2两个子集.我们的目标是选出划分点Sk,使得D1和D2各自集合的标准差最小,同时D1和D2的标准差之和也最小,写为数学表达式为:

其中, c1为数据集中所有样本的输出均值,yi是D1数据子集中各样本的实际值,c2为D2数据集中所有样本的输出均值,yj是D2数据子集中各样本的实际值。 

CART回归树的过程:

总结

一个属性的信息增益(率)大/Gini指数越小,表明属性对样本的熵减少的能力更强,这个属性使得数 据由不确定性变成确定性的能力越强

优点:

  1. 易于理解和解释:决策树的结构类似于流程图,可以直观地展示数据是如何被分割的,以及如何根据特征做出决策。

  2. 数据要求不高:决策树可以处理数值型和类别型数据,不需要复杂的数据预处理。

  3. 特征重要性评估:可以识别哪些特征对分类结果影响最大,提供特征重要性的信息。

  4. 处理缺失值:一些算法可以在构建树的过程中处理缺失值。

  5. 非线性:决策树可以捕捉数据中的非线性关系。

  6. 多类问题:决策树可以用于多类分类问题。

  7. 可视化:可以轻松地将决策树可视化,有助于理解模型的决策过程。

缺点:

  1. 容易过拟合:决策树容易生长成过于复杂的树,这可能导致模型在训练数据上表现良好,但在未见数据上表现差。

  2. 对噪声敏感:如果训练数据中包含噪声,决策树可能会学习到错误的规则。

  3. 对特征规模敏感:如果特征数量很多,尤其是当特征之间存在高度相关性时,决策树的性能可能会受到影响。

  4. 树的构建依赖于数据集:不同的数据集可能导致生成不同的树结构,这可能导致模型的泛化能力下降。

  5. 忽略特征间的交互:决策树通常不考虑特征之间的交互作用,这可能限制了模型的表达能力。

  6. 需要剪枝:为了防止过拟合,通常需要进行剪枝处理,这增加了模型构建的复杂性。(文中没有提及)

  7. 不稳定:小的变化在训练数据中可能会导致生成完全不同的树。

  8. 对类别不平衡不敏感:决策树在类别不平衡的数据集中可能表现不佳,因为它倾向于为多数类创建更多的分支。

  9. 基尼不纯度或信息增益的局限性:这些指标可能不会总是导致最优的分割,特别是在具有不同分布的数据集中。

图片来源 :《机器学习基础:从入门到求职》胡欢武

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

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

相关文章

一层5x1神经网络绘制训练100轮后权重变化的图像

要完成这个任务,我们可以使用Python中的PyTorch库来建立一个简单的神经网络,网络结构只有一个输入层和一个输出层,输入层有5个节点,输出层有1个节点。训练过程中,我们将记录权重的变化,并在训练100轮后绘制…

github简单地操作

1.调节字体大小 选择options 选择text 选择select 选择你需要的参数就可以了。 2.配置用户名和邮箱 桌面右键,选择git Bash Here git config --global user.name 用户名 git config --global user.email 邮箱名 3.用git实现代码管理的过程 下载别人的项目 git …

反爬虫限制:有哪些方法可以保护网络爬虫不被限制?

目前,爬虫已经成为互联网数据获取最主流的方式。但为了保证爬虫顺利采集数据,需要防范网站的反爬虫机制,降低IP被限制的风险,这样才能提高爬虫工作的效率。那么,如何防止网络爬虫被限制呢?下面介绍几种有效…

dpdk发送udp报文

dpdk接收到udp报文后,自己构造一个udp报文,将收到的报文中的源mac,目的mac,源ip,目的ip,源端口和目的端口交换下顺序填充到新的udp报文中,报文中的负载数据和收到的udp保持一致。 注&#xff1…

Yarn UI 时间问题,相差8小时

位置 $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-common-2.6.1.jar 查看 jar tf hadoop-yarn-common-2.6.1.jar |grep yarn.dt.plugins.js webapps/static/yarn.dt.plugins.js 解压 jar -xvf hadoop-yarn-common-2.6.1.jar webapps/static/yarn.dt.plugins.js inflated: we…

【文件解析漏洞】实战详解!

漏洞描述: 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件,配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞: IIS6.X: 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹,其目…

传输层(port)UDP/TCP——解决怎么发,发多少,出错了怎么办

**传输层:**负责数据能够从发送端传输接收端. 传输层所封装的报头里一定有:源端口号和目的端口号的。 **端口号:**可以标识一台主机中的唯一一个进程(运用程序),这样当数据传输到传输层的时候就可以通过端…

单向链表(常规和带哨兵)

1.定义 在计算机科学中,链表是数据元素的线性集合,每个元素都指向下一个元素,元素存储上并不连续 2.分类 链表中还有一种特殊的节点称为哨兵结点,也叫哑元结点、首元结点,它不存储数据,通常用作头尾&…

艾体宝干货 | 如何分析关键网络性能指标?持续接收样品试用申请!

网络性能是企业顺利运营的重要基础,而Allegro流量分析仪作为一款强大的网络性能分析工具,为企业提供了深入了解网络运行状况的途径。在本文中,我们将探讨如何利用Allegro 流量分析仪分析关键网络性能指标,以优化网络性能、提高安全…

视频监控国标GB28181平台EasyGBS如何更换默认的SQLite数据库?

视频流媒体安防监控国标GB28181平台EasyGBS视频能力丰富,部署灵活,既能作为业务平台使用,也能作为安防监控视频能力层被业务管理平台调用。国标GB28181视频EasyGBS平台可提供流媒体接入、处理、转发等服务,支持内网、公网的安防视…

Apache2之Ubuntu-XXE漏洞渗透

一、配置靶场 第一步:打开kali,作为攻击机,打开是黑屏不要蒙圈,是正常的 第二步:配置局域网主机 探测局域网内的所有主机-- 1、查看虚拟机的网络配置 2、查看到我的子网地址为192.168.189.0 第三步:使用…

文心智能体零代码开发实践,创建一个智能体:从理论到实践AI技术落地

文心智能体引领零代码智能体开发新风尚,诚邀您一同探索这前沿科技的魅力!以下为实践创建一个叫”从理论到实践AI技术落地“智能体的步骤。 首先登录官网:文心智能体平台AgentBuilder | 想象即现实 登录后点击:创建智能体 输入“…

C语言例题(图形打印,逆序输出,交换数组,平均值)

一.X形图形 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜线和正斜线的长度。针对每行输入&#xff0c;输出用“*”组成的X形图案。 代码展示 #include <stdio.h> int main() {int i0;int j…

Vue3 + js-echarts 实现前端大屏可视化

1、前言 此文章作为本人大屏可视化项目的入门学习笔记&#xff0c;以此作为记录&#xff0c;记录一下我的大屏适配解决方案&#xff0c;本项目是基于vite Vue3 js less 实现的&#xff0c;首先看ui&#xff0c;ui是网上随便找的&#xff0c;代码是自己实现的&#xff0c;后面…

LCM接口通讯说明

LCM&#xff08;Liquid Crystal Module&#xff0c;液晶模块&#xff09;接口通讯说明涉及多种接口类型和通讯方式&#xff0c;这些接口和通讯方式的选择取决于具体的应用场景和需求。 最常见的LCD模块接口协议是&#xff1a; 1.并行接口 2.串行接口 3.串行或并行配置到微处…

基于欧氏距离的点云聚类(python)

1、背景介绍 欧式聚类是一种基于欧氏距离度量的聚类算法。它是点云处理中的一个重要步骤&#xff0c;它可以帮助我们从无序的点云数据中提取有意义的信息。一般来说&#xff0c;对点云进行欧式聚类处理&#xff0c;可以帮助后续数据处理&#xff0c;如物体检测与识别、三维重建…

<Rust><iced>基于rust使用iced构建GUI实例:一个CRC16校验码生成工具

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第五篇实例,是一个CRC16校验码转换程序。 本篇内容: 1、CRC16校验码生成 代码介绍 本文的crc16校验码生成工具,主要设计两个方面,一个是crc16 modbus…

【动态规划】力扣.213. 打家劫舍 II

你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一…

基于YOLOv8的高压输电线路异物检测系统

基于YOLOv8的高压输电线路异物检测系统 (价格88) 包含 【“鸟窝”&#xff0c;“风筝”&#xff0c;“气球”&#xff0c;“垃圾”】 4个类 通过PYQT构建UI界面&#xff0c;包含图片检测&#xff0c;视频检测&#xff0c;摄像头实时检测。 &#xff08;该系统可以根据数…

文件解析漏洞--IIS--Vulhub

文件解析漏洞 一、IIS解析漏洞 用windowserver2003安装IIS测试 1.1 IIS6.X 方法一&#xff1a;目录解析 在网站下建立文件夹的名字为.asp/.asa的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 1.txt文件里是asp文件的语法查看当前时间 方…