决策树 基尼系数算法

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),直到完全不能剪枝
相关推荐
imuliuliang1 小时前
关于数据结构在算法设计中的核心作用解析7
算法
2401_894915533 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
普通网友4 小时前
共识算法实现:从工作量证明到权益证明的演进
算法·区块链·共识算法
ldmd2845 小时前
地图生成算法(噪声篇-Perlin,Simplex,Value noise)
算法·go·地图生成
databook5 小时前
用方差阈值过滤掉“惰性特征”
python·机器学习·scikit-learn
国科安芯6 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
小陈phd6 小时前
集成检索介绍
算法
小poop6 小时前
轮转数组:从暴力到最优,一题掌握算法复杂度分析
数据结构·算法·leetcode
樱桃读报僵尸6 小时前
说说 LLMRouter,Agent 执行过程中怎么动态的选择 LLM
算法