决策树 基尼系数算法

CART算法

  • CART Classification and Regression Tree(CART) 是决策树的一种用基尼指数来选择属性 (分类) ,或用均方差来选择属性 (回归)顾名思义,CART算法既可以用于创建分类树,也可以用于创建回归树,两者在构建的过程中稍有差异。
  • 如果目标变量是离散的,称为分类树。
  • 如果目标变量是连续的,称为回归树(不过多介绍)。

连续特征处理

  • 具体思路: 有m个样本,从小到大排列,取相邻两样本值的平均数做划分点,一共取m - 1个其中第m个划分点分别计算以这m-1个点作为二元分类点时的基尼系数。选择基尼指数最小的点为该连续特征的二元离散分类点第m -1次划分。比如取到的基尼指数最小的点为at,则小于a的值为类别1,大于a的值为类别2,这样就做到了连续特征的离散化,接着采用基尼指数的大小来度量特征的各个划分点。

离散特征处理

  • 具体思路: 假设特征a有m个离散值.分类标准是: 每一次将其中一个特征分为一类,其他非该特征分为另一类依照这个标准遍历所有分类情况,计算每个分类下的基尼指数,最后选择最小的作为最终的特征划分。

基尼系数

样本集合 D D D的基尼指数(CART)

Gini ⁡ ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2

特征 A A A条件下集合 D D D的基尼指数:

Gini ⁡ ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ⁡ ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ⁡ ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)

CART剪枝

具体流程

  • (1)计算每一个结点的条件熵
  • (2)递归的从叶子节点开始往上遍历减掉叶子节点,然后判断损失函数的值是否减少,如果减少,则将父节点作为新的叶子节点
  • (3)重复(2),直到完全不能剪枝
相关推荐
知识搬运工人几秒前
对比 DeepSeek(MLA)、Qwen 和 Llama 系列大模型在 Attention 架构/算法层面的核心设计及理解它们的本质区别。
算法
修行者Java41 分钟前
JVM 垃圾回收算法的详细介绍
jvm·算法
AndrewHZ44 分钟前
【图像处理基石】什么是光流法?
图像处理·算法·计算机视觉·目标跟踪·cv·光流法·行为识别
mjhcsp2 小时前
C++ 三分查找:在单调与凸函数中高效定位极值的算法
开发语言·c++·算法
立志成为大牛的小牛2 小时前
数据结构——四十二、二叉排序树(王道408)
数据结构·笔记·程序人生·考研·算法
fie88894 小时前
基于MATLAB实现的Elman神经网络用于电力负载预测
神经网络·机器学习·matlab
Funny_AI_LAB4 小时前
李飞飞联合杨立昆发表最新论文:超感知AI模型从视频中“看懂”并“预见”三维世界
人工智能·算法·语言模型·音视频
RTC老炮7 小时前
webrtc降噪-PriorSignalModelEstimator类源码分析与算法原理
算法·webrtc
草莓火锅9 小时前
用c++使输入的数字各个位上数字反转得到一个新数
开发语言·c++·算法
散峰而望9 小时前
C/C++输入输出初级(一) (算法竞赛)
c语言·开发语言·c++·算法·github