CART树

CART树(Classification and Regression Tree)分类回归树,既可以用于创建分类树,也可以用于创建回归树。

分类树:以C4.5为例,每次分枝时,是穷举每个特征的每一个阈值,按照$featur{e_i} \le threshold$来划分最大熵值的特征+阈值。

回归树:总体流程类似,区别在于回归树的每个节点都会得到一个预测值,这个预测值一般是被划分样本均值。在穷举feature值寻找最优点时,衡量标准不再是最大熵而是均方误差。

区别:

  • 不管是分类树还是回归树,每棵树都是一个判断的特征阈值。
  • 分类树最后是类别,回归树最后是一个拟合值。
  • 寻找划分阈值时,分类树用C4.5;回归树用最小二乘。
  • 节点输出值,回归树多一个拟合值。

重点讲下回归树是如何选取特征和阈值;以及决定节点的输出值?

1.选择特征+阈值:

假设将输入空间划分为m个区域:${R_1},{R_2},...,{R_{\rm{m}}}$,每个区域上输出值为${c_m}$,回归树模型可以表示为:

$$ f(x) = \sum\limits_{m = 1}^M {{c_m}I(x \in {R_m})} $$

选择第j个特征${x^{(j)}}$和它的取值s作为切分依据,定义两个区域:

$$ {R_1}(j,s) = \{ x|{x^{(j)}} \le s\} ,{R_2}(j,s) = \{ x|{x^{(j)}} > s\} $$

利用最小二乘寻找最优切分点:

$$ \mathop {\min }\limits_{j,s} [\mathop {\min }\limits_{{c_1}} \sum\limits_{{x_i} \in {R_1}} {{{({y_i} - {c_1})}^2} + } \mathop {\min }\limits_{{c_2}} \sum\limits_{{x_i} \in {R_2}} {{{({y_i} - {c_2})}^2}} ] $$

选择的特征为j,j特征的阈值为s。

2.节点的输出值:

选定最优切分变量j和最优阈值s后,此节点的输出值为:

$$ {c_1} = mean({y_i}|{x_i} \in {R_1}(j,s)),{c_2} = mean({y_i}|{x_i} \in {R_2}(j,s)) $$

遍历所有的特征构成(j,s),并不断依次划分空间,这样就生成了一棵回归树。

分类树的三个准则

熵值计算:

$$ H(D) = - \sum\limits_{k = 1}^K {\frac{{\left| {{C_k}} \right|}}{{\left| D \right|}}\log } \frac{{\left| {{C_k}} \right|}}{{\left| D \right|}} = - \sum {{p_i}\log {p_i}} $$

1.信息增益(ID3)

$$ 信息增益=entropy(前)-entropy(后) $$

$$ g(D,A) = H(D) - H(D|A) $$

ID3偏向取值较多的特征(取值较多的特征更容易得到纯度高的子集),因为取值越多越有机率使得子集纯度更高

2.信息增益比(C4.5)

$$ 信息增益比=惩罚系数*信息增益 $$

$$ {g_R}(D,A){\rm{ = }}\frac{{g(D,A)}}{{{H_A}(D)}},{H_A}(D) = - \sum\limits_{k = 1}^n {\frac{{\left| {{D_k}} \right|}}{{\left| D \right|}}\log } \frac{{\left| {{D_k}} \right|}}{{\left| D \right|}} $$

${H_A}(D)$:特征A有n个值,计算D下按照n个A值进行划分,n越多H值越大以此来抑制多值的特征。

3.基尼指数(Gini)

基尼指数表示:在样本集合中一个随机样本被份错的概率

$$ 基尼指数=样本被选中的概率*样本被分错的概率 $$

$$ Gini(p) = \sum\limits_{k = 1}^K {{p_k}(1 - {p_k})} $$

$$ Gini(D) = 1 - {\sum\limits_{k = 1}^K {(\frac{{\left| {{C_k}} \right|}}{{\left| D \right|}})} ^2} $$

$$ Gini(D,A) = \frac{{\left| {{D_1}} \right|}}{{\left| D \right|}}Gini({D_1}) + \frac{{\left| {{D_2}} \right|}}{{\left| D \right|}}Gini({D_2}) $$

CART采用的就是基尼指数

参考https://zhuanlan.zhihu.com/p/...


小蝌蚪
1 声望0 粉丝