决策树中的相关概念

目录

算法介绍

基本概念:

节点

[信息熵(Information Entropy)](#信息熵(Information Entropy))

[条件熵(Conditional Entropy)](#条件熵(Conditional Entropy))

python中计算对数

分类标准

[信息增益(ID3(Iterative Dichotomiser 3)算法的评估标准)](#信息增益(ID3(Iterative Dichotomiser 3)算法的评估标准))

[信息增益率(C4.5 算法的评估标准)](#信息增益率(C4.5 算法的评估标准))

[基尼系数(CART(Classification and Regression Tree)算法的评估标准)](#基尼系数(CART(Classification and Regression Tree)算法的评估标准))


算法介绍

决策树是一种非常直观且易于理解的机器学习算法。

决策树通过对数据特征的一系列判断来进行分类或预测。

基本概念:
节点
  • 根节点:第一个节点,决策树的开始节点。

  • 非叶子节点(内部节点):中间节点,基于特征进行条件判断的节点。

  • 叶节点:最终结果节点,表示最终的分类或预测结果。

信息熵(Information Entropy)

信息熵是信息论中的一个概念,用于度量随机变量的不确定性。

在决策树算法等机器学习场景中,信息熵通常用于衡量数据集的混乱程度或不确定性。

计算公式:

举个例子:以下两个集合的熵值谁更大呢

条件熵(Conditional Entropy)

条件熵是在给定某个条件下,随机变量的不确定性。

假设随机变量X 和 Y,条件熵H(Y|X) 表示在已知随机变量X 的取值的情况下,随机变量 Y的不确定性。

联合概率密度的计算公式:

条件熵的计算公式:

举个例子:

假设有两个随机变量 X 和 Y,X 表示天气(晴、雨),Y 表示是否适合运动(是、否)。它们的联合概率分布如下:

X\Y
0.3 0.2
0.4 0.1
python中计算对数

如何计算这个式子的答案呢

在 Python 中,可以使用math 库来计算对数。上面的式子可以这么写

python 复制代码
import math
result=-9/14*math.log(9/14,2)-5/14*math.log(5/14,2)
分类标准

构建决策树的关键在于选择合适的特征和划分点,一般而言,随着划分过程的不断进行,我们自然希望决策树各分支结点所包含的样本尽可能属于同一类别,即结点的 "纯度" (purity) 越来越高。本篇文章将介绍几类较为主流的衡量指标(信息增益、信息增益率、基尼系数)。

我们以一个分类问题为例,贯穿在接下来要讲的计算 ID3、C4.5 和 CART 算法的特征选择过程。

天气 温度 湿度 是否出去玩
信息增益(ID3(Iterative Dichotomiser 3)算法的评估标准)

信息增益基于信息熵的概念,选择使信息熵减少最多的特征进行分裂。

  1. 特征选择标准:使用信息增益来选择特征。信息增益是基于信息熵的概念,它衡量了使用某个特征进行划分后,数据集的信息不确定性减少的程度。

  2. 局限性:倾向于选择具有较多取值的特征,可能导致过拟合。对于连续型特征,需要先进行离散化处理。

  3. 优点:算法简单直观,易于理解和实现。

信息增益为:1-0.693=0.307

同理计算 "温度" 和 "湿度" 特征的信息增益。

假设 "温度" 特征的信息增益为 0.2,"湿度" 特征的信息增益为 0.1。

由于 "天气" 特征的信息增益最大,所以 ID3 算法会选择 "天气" 特征作为根节点进行分裂。

信息增益率(C4.5 算法的评估标准)

信息增益比则对信息增益进行了归一化处理,克服了信息增益偏向取值较多的特征的问题。

  1. 特征选择标准:是 ID3 算法的改进,采用信息增益比来选择特征。信息增益比克服了 ID3 中信息增益偏向选择取值多的特征的不足。

  2. 处理连续属性:能够直接处理连续型特征,通过对连续特征进行排序和离散化来构建决策树。

  3. 优点:在特征选择和防止过拟合方面比 ID3 更优,生成的决策树更加准确和稳健。

基尼系数(CART(Classification and Regression Tree)算法的评估标准)

基尼系数反映了从数据集中随机抽取两个样本,其类别不一致的概率。

  1. 用途:既可以用于分类问题,也可以用于回归问题。

  2. 特征选择标准:对于分类问题使用基尼系数,对于回归问题使用平方误差最小化。

  3. 生成结构:生成的是二叉树,即每次分裂都将数据集分为两部分。

  4. 优点:在处理复杂数据和大型数据集时表现较好,并且在分类和回归任务中都有不错的效果。

相关推荐
cccc来财11 分钟前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
Coovally AI模型快速验证1 小时前
数据集分享 | 智慧农业实战数据集精选
人工智能·算法·目标检测·机器学习·计算机视觉·目标跟踪·无人机
墨尘游子1 小时前
目标导向的强化学习:问题定义与 HER 算法详解—强化学习(19)
人工智能·python·算法
恣艺2 小时前
LeetCode 854:相似度为 K 的字符串
android·算法·leetcode
予早2 小时前
《代码随想录》刷题记录
算法
GG向前冲2 小时前
机器学习对中特估股票关键特征选取的应用与研究
人工智能·机器学习·投资组合
满分观察网友z2 小时前
别总想着排序!我在数据看板中悟出的O(N)求第三大数神技(414. 第三大的数)
算法
满分观察网友z2 小时前
别只知道暴力循环!我从用户名校验功能中领悟到的高效字符集判断法(1684. 统计一致字符串的数目)
算法
刚入坑的新人编程2 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
码事漫谈2 小时前
AGI就像暴雨,可能说来就来
算法