【决策树】分类属性的选择

文章目录

实现决策树算法最关键的一点就是如何从所有的特征属性中选择一个最优的属性对样本进行分类,这种最优可以理解为希望划分后每种类别中的样本尽可能同类,也就是足够"纯净"

1.信息增益(ID3)

需要先了解信息墒,墒表示一个系统内部的混乱程度,墒越大越混乱。信息墒的公式:

信息墒的最大值,就是当各类样本出现的比例相同时出现,代入公式可求。

对于公式的理解直接看deepseek的回答,比较准确形象:通俗理解信息墒的公式

了解了信息墒的含义,假设现在有一个样本空间D,信息墒为E。D根据特征属性x可以划分为 D1, D2, D3 三个子样本空间,各个子样本空间样本数占总样本空间比例 k1, k2, k3,每个子样本空间根据公式也可以计算出自己的信息墒,假设为 E1, E2, E3,那么以这个特征属性划分后D的信息墒为 各个子样本空间信息墒*权重 之和,即 k1*E1 + k2*E2 + k3 *E3,这个值越大,表示用特征属性x对样本空间划分后的分类效果越差。越小表示分类效果越好,能更有效地将数据划分为纯度更高的子集。因此,需要做的就是计算出每个特征属性划分后的信息墒,优先用信息墒最小的那个特征属性划分,此时能获得最大的信息增益。

然后在子样本空间中用剩下的特征属性重复这个流程,循环往复...,得到一棵分类效果最好的树。

下面是周志华机器学习书中对信息增益的定义:

2.信息增益率(C4.5)

信息增益的选择方式倾向于选择属性值较多的属性,因为这样划分后子空间的信息墒最小,信息增益最大,但容易造成过拟合模型返回能力差的问题,比如在用户的(id、性别、年龄、体重、各种检查指标...)中拿用户的id去预测是否患病,准确但没有意义。

此时通过在上一步信息增益的基础上,除以一个属性固有值(类似于墒值),来平衡属性值较多的属性的信息增益。

这个属性固有值的公式是:

a表示特征属性,V表示值类型的数量,D表示总样本数,Dv表示每个取值下样本数量。

对于这个公式的理解:信息增益中属性固有信息的公式及理解

所以信息增益率的公式为:

根据增益率对划分属性的选择,


对这种"启发式选择"的理解

3.基尼指数(CART)

基尼指数属于CART算法,但CRAT算法并不只有基尼指数一种实现方式(分类: 基尼指数;回归: 均方误差)。 见【4.三者对比】部分

上图中4.5基尼值的公式中, p k p_k pk为第k类样本占总样本的比例, p k ′ p_{k'} pk′为非k类样本占的比例( 1 − p k 1-p_k 1−pk)。

为什么这个公式可以反映样本空间的混乱程度?

首先 p k p_k pk的取值在0-1,且所有可能的 p k p_k pk之和等于1。

明显当所有类别占比相等时最混乱,假设对于二分类,此时对于k1、k2,所占总样本的比例 p k 1 p_{k_1} pk1 p k 2 p_{k_2} pk2都为0.5,对应的 p k 1 ′ p_{k_1'} pk1′ p k 2 ′ p_{k_2'} pk2′也都为0.5,因此 ∑ k = 1 ∣ y ∣ p k 2 \sum\limits_{k=1}^{|y|} p_k^2 k=1∑∣y∣pk2= 0. 5 2 0.5^2 0.52+ 0. 5 2 = 0.5 0.5^2=0.5 0.52=0.5,基尼指数= 1 − 0.5 = 0.5 1-0.5=0.5 1−0.5=0.5。

当增大一个 p k p_k pk时,另一个 p k p_k pk必然减少,当对 p k p_k pk进行平方运算时,大的 p k p_k pk增大的那部分必然会大于小的 p k p_k pk减少的那部分,所以 ∑ k = 1 ∣ y ∣ p k 2 \sum\limits_{k=1}^{|y|} p_k^2 k=1∑∣y∣pk2一定会变得更大,所以最终的基尼值 1 − ∑ k = 1 ∣ y ∣ p k 2 1-\sum\limits_{k=1}^{|y|} p_k^2 1−k=1∑∣y∣pk2减少。

eg: p k 1 p_{k_1} pk1=0.6, p k 2 p_{k_2} pk2=0.4, ∑ k = 1 ∣ y ∣ p k 2 \sum\limits_{k=1}^{|y|} p_k^2 k=1∑∣y∣pk2= 0. 6 2 0.6^2 0.62+ 0. 4 2 = 0.52 0.4^2=0.52 0.42=0.52,基尼指数= 1 − 0.52 = 0.48 1-0.52=0.48 1−0.52=0.48。

而下面属性a的基尼指数公式,其实是度量用a属性划分后的所有子样本空间中各自的混乱程度,然后乘以各个子样本空间在总样本空间的占比权重,最后汇总求和。所以可以说公式表示的含义是:用a属性对总样本空间进行划分后,总样本空间的混乱程度。

因此属性a划分后基尼值越小,表示样本空间越"纯净",也就是分类效果越好。

需要注意的是:虽然基尼指数的公式理论上支持多分类,但算法实现中只会二分类,递归的生成二叉树。 分类过程中会在每个候选属性中枚举遍历找到基尼指数最小的最优组合,然后找出全局最优划分组合,该组合对应的属性和划分方式作为该节点的划分属性和分类的方式。

对基尼指数的公式及理解

ps.三者对比

主要关注为什么CART可以做回归,而另外两种实现方式不支持。

因为上面两种核心都是要通过目标值的分类,进而知道概率计算墒值,只支持目标值为离散型变量。

而CART算法中,可以通过调整属性划分时的依据公式(均方差),尝试找到每个候选属性的最优分隔组合,这个分割组合要满足分隔后的两个子集的加权均方误差最小(目标值的均方误差),然后选择最优的那个候选属性划分。之后重复迭代下去...

当做回归预测时,最终落到哪个分类,直接返回这个类别的均值就行。

相关推荐
windyrain9 分钟前
AI 学习之路(一)- 重新认识 AI
人工智能·机器学习·aigc
Luis Li 的猫猫1 小时前
机器学习:特征提取
人工智能·目标检测·机器学习·视觉检测
python算法(魔法师版)1 小时前
自动驾驶FSD技术的核心算法与软件实现
人工智能·深度学习·神经网络·算法·机器学习·自动驾驶
云天徽上2 小时前
【目标检测】目标检测中的数据增强终极指南:从原理到实战,用Python解锁模型性能提升密码(附YOLOv5实战代码)
人工智能·python·yolo·目标检测·机器学习·计算机视觉
IT古董2 小时前
【漫话机器学习系列】116.矩阵(Matrices)
人工智能·机器学习·矩阵
SomeB1oody3 小时前
【Python机器学习】1.1. 机器学习(Machine Learning)介绍
开发语言·人工智能·python·机器学习
Jason_Orton3 小时前
决策树(Decision Tree):机器学习中的经典算法
人工智能·算法·决策树·随机森林·机器学习
紫雾凌寒3 小时前
计算机视觉|ConvNeXt:CNN 的复兴,Transformer 的新对手
人工智能·神经网络·机器学习·计算机视觉·transformer·动态网络·convnext
小青龙emmm4 小时前
机器学习(五)
人工智能·机器学习