少年游

欲买桂花同载酒,终不似,少年游。

0%

CART分类树例子讲解

CART分类树原理

二分思想:

* 将特征值等于切分点值的数据划分为左子树。
* 将特征值不等于切分点值的数据划分为右子树。

如此循环构造二叉分类树。

如何寻找切分点值,最优切分点

切分指标:

* 基尼指数
  • 假设有N个类别,样本属于第n类的概率为Pn, 则基尼系数为:

    Gini(P)=n=1Npn(1pn)
  • 若数据集按特征值A取值是否等于切分点D1和D2两部分,则在特征A下,集合D的基尼指数为:

    Gini(DA)=|D1|DGini(D1)+|D2|DGini(D2)

那么,对于数据集D,存在特征A,B,C三个,我们就需要选取最优切分点。计算出Gini(D,A), Gini(D,B), Gini(D,C)。如此以来,我们就可以选取最大或者最小作为切分依据。
那到底是最大还是最小呢?请看基尼指数定义。

CART树分类例子

  • 给定数据集D, 含有两个个特征A, B。分类标签是label
A B label
1 1 1
1 0 0
0 1 0
0 0 0
1 0 0
  • 选择最优特征
  1. 分界点A=1, 参考公式
Gini(D,A=1)=3/5Gini(D1)+2/5Gini(D2)=3/5(1/32/3+2/31/3)+2/5(01+10)=0.266
  1. 分界点B=1, 参考公式Gini(D,B=1)=2/5Gini(D1)+3/5Gini(D2)=2/5(1/21/2+1/21/2)+3/5(01+10)=0.2由此可见,Gini(D, B=1)数值更小,应当以特征B划分第一个节点。
A B label
1 1 1
0 1 0
- - -
1 0 0
0 0 0
1 0 0
Gini(D,B=1,A=1)=1/2Gini(D1)+1/2Gini(D2)=1/20+1/20=0

划分后,由于只剩下一个特征,其实是不用计算的,直接划分
那么决策树为:{“B=0”: “label=0”, “B=1”: {“A=1”: “label=1”, “B=0”: “label=0”}} }

Gitalk 加载中 ...