决策树 基尼系数算法

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),直到完全不能剪枝
相关推荐
earthzhang202110 分钟前
【1008】计算(a+b)/c的值
c语言·数据结构·c++·算法·青少年编程
dlraba80225 分钟前
YOLO 目标检测算法全解析:原理、分类与性能指标
算法·yolo·目标检测
jllllyuz32 分钟前
基于K近邻(KNN)算法的高光谱数据分类MATLAB实现
算法·matlab·分类
做科研的周师兄1 小时前
中国逐日格点降水数据集V2(1960–2024,0.1°)
人工智能·学习·机器学习·支持向量机·聚类
Craaaayon1 小时前
【数据结构】二叉树-图解广度优先搜索
java·数据结构·后端·算法·宽度优先
DuHz1 小时前
汽车角雷达波形设计与速度模糊解决方法研究——论文阅读
论文阅读·物联网·算法·汽车·信息与通信·信号处理
学习编程的Kitty2 小时前
算法——位运算
java·前端·算法
ezl1fe2 小时前
RAG 每日一技(十九):当文本遇上表格,如何拿下“半结构化”PDF
人工智能·后端·算法
刘某某.2 小时前
数组和小于等于k的最长子数组长度b
java·数据结构·算法
大千AI助手2 小时前
Viterbi解码算法:从理论到实践
算法·动态规划·hmm·隐马尔可夫·viterbi解码·viterbi·卷积码