【机器学习】12-决策树1——概念、特征选择

机器学习10-决策树1

学习样本的特征,将样本划分到不同的类别(分类问题)或预测连续的数值(回归问题)。

  • 选择特征,划分数据集,划分完成形成模型(树结构),一个叶节点是一个类别
  • 新的需要判断的数据进入模型,根据某种距离,最近的那个类就是模型输出

内容有点多,要分开


文章目录

  • 机器学习10-决策树1
  • 概念
    • 流程
  • 一、特征选择
    • 信息增益(Information Gain)
      • 例子
    • 信息增益比(Gain Ratio)
      • 为什么信息增益偏向于选择取值较多的特征
      • 定义
    • 基尼指数(Gini Index)


概念

节点(Node):决策树中的每一个点,包括决策节点和叶节点。
决策节点(Decision Node):表示一个属性的判断节点。
叶节点(Leaf Node):表示最终决策结果的节点。
分支(Branch):连接节点的线,代表决策的路径。
路径(Path):从根节点到叶节点的一条完整路径。

通过一系列的决策规则将数据集划分成不同的子集,形成一个树状结构。每个内部节点表示一个特征(或属性),每个分支表示该特征的一个取值,每个叶子节点表示一个类别或预测值。

流程

决策树算法的学习过程通常包括三个主要步骤:特征选择、决策树的生成和决策树的剪枝。

  • 特征选择:在构建决策树时,首先需要从数据集中选择最具分类能力的特征。这通常通过计算特征的信息增益、信息增益比或基尼指数等指标来完成。
  • 决策树的生成:根据选择的特征,将数据集划分为若干个子集,并为每个子集生成相应的子树。这个过程是递归进行的,直到满足某个停止条件。
  • 常见的停止条件包括:
    所有样本都属于同一个类别。
    达到预设的树的最大深度。
    节点中的样本数少于最小样本数限制。
    特征无法再进一步划分。
  • 决策树的剪枝:由于生成的决策树可能过于复杂,存在过拟合的风险,因此需要通过剪枝来简化树的结构,提高模型的泛化能力。剪枝可以分为预先剪枝和后剪枝两种方法。

一、特征选择

通常基于某种度量,这些度量反映了特征对于数据集分类能力的贡献。

基尼指数 计算更简单,速度较快,因此在CART决策树中常用。
则是更加严格的度量,计算信息增益时使用,更多应用于 ID3 和 C4.5 决策树算法。

信息增益(Information Gain)

信息增益衡量的是一个特征对减少数据集的不确定性(或熵)程度的能力。选择信息增益最大的特征作为当前节点的分裂特征。

信息增益 = 父节点的熵 - 子节点的加权平均熵

香农说,要有熵,于是便有了熵

  • 对数据集 𝐷,k个类别
    在这里插入图片描述

  • 对于特征 A,它将数据集划分为多个子集,每个子集的熵加权平均就是条件熵:
    在这里插入图片描述
    在这里插入图片描述

  • 信息增益是数据集的熵减去特征的条件熵:
    在这里插入图片描述
    某个特征划分了数据集后,熵(不确定性)减少的量
    选择信息增益最大的特征进行划分。

例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

信息增益比(Gain Ratio)

信息增益的改进版本。信息增益偏向于选择取值较多的特征,而信息增益比考虑了特征自身的熵,通过引入"固有值(Intrinsic Value)"对偏向进行修正。

为什么信息增益偏向于选择取值较多的特征

  • 特征取值多意味着更细的划分:当一个特征的取值较多时,它会将数据集划分得更加细致,甚至可以将每一个样本单独划分到不同的子集。

例如,假设一个特征有很多独特的取值(如“ID号”),每个样本可能对应一个唯一的取值,这样会使条件熵 H(D∣A) 极低,甚至接近0,因为每个样本已经被完全区分开来。

  • 信息增益只考虑不确定性的减少:当特征的取值数量较多时,数据集在该特征上的条件熵会显著降低,从而导致信息增益增大。信息增益没有对特征的取值数量进行惩罚,因此它会倾向于选择那些取值种类多的特征,因为这些特征可以最大限度地减少不确定性。

假设你有两个特征:

  • 特征A:取值种类很多,几乎每个样本的取值都不同(如用户ID号)。
    特征B:取值种类很少,比如只有两个类别(如“是否为VIP用户”)。
  • 即使特征A的实际分类能力不强,因其将数据集划分得非常细致,信息增益公式会认为它显著减少了数据的不确定性,从而得到很高的信息增益值。而特征B尽管可能有更实际的区分能力,但因其取值较少,划分的效果不会显著,信息增益值相对较低。

定义

信息增益比 = 信息增益 / 特征自身的熵
特征自身的熵:
在这里插入图片描述
其中n是特征A的取值个数,𝐷𝑖表示特征 𝐴 的第 𝑖 个取值对应的样本集合,𝐷 是总样本集合。

  • 对取值较多的特征进行了惩罚(分母更大)

基尼指数(Gini Index)

基尼指数反映了从数据集中随机抽取两个样本,其类别不一致的概率
这里会提到的纯度其实就是不确定性的等价概念,越纯,不确定性越小
在这里插入图片描述
选择使得分裂后基尼指数最小的特征作为分裂特征

例子
在这里插入图片描述

对于给定的数据集D和特征A,根据A划分后,基尼指数定义为:
在这里插入图片描述
和前面思想一样,子集的指数加权平均

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

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

相关文章

JavaSE——多线程基础

概述 现代操作系统(Windows,macOS,Linux)都可以执行多任务。多任务就是同时允许多个任务。例如:播放音乐的同时,浏览器可以进行文件下载,同时可以进行QQ消息的收发。 CPU执行代码都是一条一条顺…

Matlab R2018a怎么下载安装?Matlab R2018a保姆级详细安装教程

Matlab R2018a下载方法: Matlab R2018a安装教程: 1、右击下载好的压缩包,选择解压到Matlab R2018a 2、打开文件夹【R2018a_win64】,右击下面的setup.exe,选择【以管理员身份运行】 3、点击选择【使用文件安装密钥】&a…

IDEA连接数据库报错:Access denied for user ****

使用IDEA开发时,通过Databse连接数据库。多次连接报错:Access denied for user **** 如下所示: ​ ‍ ‍ ​ ‍ 花了不少时间排查,确认账号、密码,后面发现账号后多了个空格,而且不容易发现&#xf…

proteus仿真软件简体中文版网盘资源下载(附教程)

对于电子通信专业的小伙伴来说,今天文章的标题应该不会陌生。Proteus是一款具有广泛应用的仿真软件,它的功能非常强大,适用于所有单片机的仿真工作,能够从原理图、调试、到与电路的协同仿真一条龙全部搞定,受到所有用户…

交叉熵损失函数的使用

交叉熵损失函数 交叉熵损失函数(Cross-Entropy Loss),也称为对数损失(Log Loss),是机器学习和深度学习中常用的损失函数之一,尤其在分类问题中。它衡量的是模型预测的概率分布与真实标签的概率…

使用Properties

a.特点 i.它的Key-Value一般都是String-String类型的&#xff0c;可以用Map<String, String>表示。 ii.Java标准库提供Properties来表示一组“配置”。 iii.读写Properties时&#xff0c;使用getProperty()和setProperty()方法&#xff0c;不要调用继承自HashTabled的ge…

开始场景的制作+气泡特效的添加

3D场景或2D场景的切换 1.新建项目时选择3D项目或2D项目 2.如下图操作&#xff1a; 开始前的固有流程 按照如下步骤进行操作&#xff0c;于步骤3中更改Company Name等属性&#xff1a; 本案例分辨率可以如下设置&#xff0c;有能力者可根据需要自行调整&#xff1a; 场景制作…

轻掺杂漏极(LDD)技术

轻掺杂漏极&#xff08;LDD&#xff09;是一种低能量、低电流的注入工艺&#xff0c;通过该工艺在栅极附近形成浅结&#xff0c;以减少靠近漏极处的垂直电场。对于亚微米MOSFET来说&#xff0c;LDD是必需的&#xff0c;以便抑制热电子效应&#xff0c;这种效应会导致器件退化并…

Python进阶学习笔记(一)对象

1.对象模型 在面向对象理论中类和对象是不同的概念&#xff0c;而在python中类也是对象&#xff0c;叫做类型对象。 所以python中的类&#xff0c;实例对象&#xff0c;类型都是对象。 元类型&#xff1a; 在python中实例对象的类型为对应类型的对象&#xff0c;而类型的对象…

14. PEFT:在大模型中快速应用 LoRA

如果你对LoRA还没有一个直观的概念&#xff0c;可以回看这篇文章&#xff1a;《3. 认识 LoRA&#xff1a;从线性层到注意力机制》。 我们将在这里进一步探讨如何快速地在大型预训练模型中应用 LoRA&#xff0c;并解答可能存在的问题&#xff0c;包括&#xff1a; peft 和 lora …

博途TIA v18下载时,需要重启才能安装下载路径是灰色改不了

一、需要重启才能安装 删除下面注册表P开头的文件&#xff1a; 二、下载路径是灰色改不了 注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion里找到C:\Program Files或者C:\Program Files&#xff08;x86&#xff09;&#xff0c;具体哪个看安装的时候对应…

TikTokDownloader 开源项目操作教程

TikTokDownloader TikTokDownloader 是一个开源的多功能视频下载工具&#xff0c;它专门用于从抖音和TikTok平台下载无水印的视频、图集和直播内容。这个工具支持批量下载账号作品、收藏内容&#xff0c;并可以采集详细数据。它提供了命令行和Web界面&#xff0c;具有多线程下…

arm-硬件

一、ARM体系与架构 ARM芯片组成 -- arm 体系中&#xff0c;一般讲到的芯片由两大部分组成&#xff1a;arm的内核、外设 arm内核&#xff1a; -- 其内核主要由&#xff1a;寄存器、指令集、总线、存储器映射规则、中断逻辑主调试组件构成。ARM公司只设计内核&#xff0c;授权给…

java intellij idea开发步骤,使用指南,工程创建与背景色字体配置,快捷键

intellij idea2021 配置背景色&#xff0c;字体大小&#xff0c;主题 快捷键

网站建设模板选择哪种

在选择网站建设模板时&#xff0c;需要考虑多个因素&#xff0c;包括网站的目的、受众、内容类型以及个性化需求等。以下是一些常见的网站建设模板类型&#xff0c;以及它们的特点&#xff0c;希望对你的选择有所帮助。 企业/商务模板&#xff1a; 企业和商务网站通常需要专业、…

14、主机、应用及数据安全解读

数据来源&#xff1a;14.主机、应用及数据安全解读_哔哩哔哩_bilibili

leetcode第十一题:盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 示例…

简单题101. 对称二叉树 (python)20240922

问题描述&#xff1a; python: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right rightclass Solution(object):def isSymm…

Windows内网穿透远程桌面操作指南

1、登录NatCross官网https://www.natcross.com 账密登录或手机验证码登录。 2、点击左侧场景映射&#xff0c;选择【3389远程桌面】点击添加。 3、检查本地ip&#xff1a;127.0.0.1为本机&#xff0c;本地端口默认&#xff1a;3389&#xff0c;点击保存&#xff0c;系统生产成外…

【LeetCode】每日一题 2024_9_22 找到小镇的法官(模拟)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;找到小镇的法官 代码与解题思路 func findJudge(n int, trust [][]int) int {// 我当时的思路就是&#xff1a;每个人&#xff08;除了小镇法官&#xff09;都信任这位小镇法官。// 直接…