机器学习算法11_决策树+CART(分类树)

机器学习算法第十一篇

主要内容:决策树算法+CART(分类树)


  \  

CART算法概念

CART(classification and regression tree) 故英文名思意:分类和回归树.
CART算法包含决策树生成和决策树剪枝两部分
CART决策生成树部分主要分为生成回归树和生成分类树
本篇主要讲生成分类树
  \  
  \  

算法目的

构建一棵可以对输入样本进行很好的分类的二叉决策回归树

  \  
  \  

恩, 开始测试的时候,它是这样做的…
  • 把一个样本放入节点
    比较自身与节点的特征,选择一个分支: ‘下去’
    循环 ‘下去’ , 直到叶子节点为止
    当一个测试样本a落入某叶子时, 该叶子的k值作为该样本a的分类值输出
    (某叶子的k值是该树在训练时候, 训练集划分到该叶子的所有样本的分类标签里数量最多的标签)
    (每个节点都有一个特征选择,如:长头发向左分支,短头发向右分支,该选择是决策树生成的时候遗留的)

  \  
  \  

那问题来了, 训练的时候如何生成一棵树?
  • 算法一开始将所有训练样本丢到根节点
    然后通过某准则将它们切成两份,分别丢入左节点与右节点
    然后对每个节点按照该准则继续切分,直到某个情况发生,停止切分,直接生成叶子节点
    (某情况是指:例如节点内样本数不能低于10个,树的层数不超过11层…参数设置的问题啊)

  \  
  \  

那问题又来了,什么准则可以很好的切分?
  • 算法采用基尼指数最小化准则 :
    我们针对一个节点的样本集D, 定义一个指数Gini,它与该节点内样本集的分类分布的不确定性成正比
    然后取节点内某特征m与该特征的某个取值n,
    再按照每个样本的特征m是否取值为n,将样本集切成两份 D 1 , D 2 D_1,D_2 D1,D2
    G i n i ( D 1 ) + G i n i ( D 2 ) Gini(D_1)+Gini(D_2) Gini(D1)+Gini(D2)的值,即此切法的总不确定性指数 G s u m G_{sum} Gsum
    所以: 我们只需要遍历节点内的所有特征,并在该特征内再遍历所有可能取值
    按照它们的组合进行假设性切割,并取得一大堆指数 G s u m G_{sum} Gsum
    最后取最小指数 G s u m G_{sum} Gsum所对应的特征与取值,进行真实切分就好

  \  
  \  

那问题又又来了,该指数怎么定才好?
  • 算法说:基尼指数 Gini

  • 即 : 基 尼 指 数 G i n i = ∑ k = 1 R p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 即:基尼指数Gini=\sum_{k=1}^{R}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2 :Gini=k=1Rpk(1pk)=1k=1Kpk2

  • 其中,假设该节点内的样本集一共有R个分类,样本点属于第k类的概率为 p k p_k pk

  • p k = k 类 样 本 的 数 量 总 样 本 数 量 p_k = \frac{k类样本的数量}{总样本数量} pk=k

  • 基尼指数越低, 样本分类分布的不确定性越低,切分效果越好
      \  

  \  
  \  

那问题是…为什么不确定性越低越好?

这个问题用打比方来做再好不过
先有子节点样本数据,为了简单起见,只启用一个特征
在这里插入图片描述
然后分别计算特征与取值的3个组合的基尼系数以及切分情况,
在这里插入图片描述

  1. 我们可以看到节点样本集,经过假设性的3种切分后,基尼系数最低(不确定性最低)的组,即按照特征值是否为1切分的结果最好,可以非常好的的分离两种类别
  2. 特征取3比取2的基尼指数(不确定性)低是由于它的右节点具有更好的分类效果, 分完是5,2开,比5,3开要好
  3. 最糟糕是55开,最好是1,0开
      \  
      \  

  \  
  \  

  \  
  \  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值