树模型-CART树

分类回归树CART

CART树是后面所有模型的基础,也是核心树
在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择。在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题。但是无论是ID3还是C4.5,都是基于信息论的熵模型的,这里面会涉及大量的对数运算。为了简化模型同时也不至于完全丢失熵模型, CART分类树算法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。这和信息增益(比)是相反的。
CART既可以适应分类任务, 又可以适应回归任务, 不同的任务, 特征的选择方式不一样

分类任务

假设有\(K\)个类,第\(k\)个类的概率为\(p_k\), 则基尼系数的表达式为:

\[Gini(p)=\sum Kp_k(1-p_k)=1-\sum_{k=1}Kp_k^2 \]

对于二分类问题, 则公式可以简化为: \(Gnini(p)=2p(1-p)\), p代表属于第一类样本的概率
对于给定的样本集合\(D\), \(K\)个类, 第\(k\)个类别的数量为\(C_k\), 则样本\(D\)的基尼系数为:

\[Gini(D)=1-\sum_{k=1}^{k}K(\frac{|C_k|}{|D|})^2 \]

显然, 对于集合\(D\),假设属性\(A\)的某个值\(a\)将数据集D切分为\(D_1,D_2\),则在特征A的条件下, D的基尼系数表达式为:

\[Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2) \]

相比于复杂的对数运算, 基尼系数的运算简单很多, 对于连续值得处理, CART和C4.5是相同的:连续的二分离散特征

回归任务

在CART分类树中, 其与ID3,C4.5并没有太大的差别, 而回归则不一样:

  • 预测的方式不同
  • 连续值得处理方式不同

回归树模型采用均方差度量: 对于任意划分的特征A, 和一个任意划分的点s(该点s其实是特征A里面的某个值), 将数据集D划分为\(D_1,D_2\), 这个点s要使\(D_1,D_2\)各自集合的均方差的最小,公式为:

\[min [min \sum_{x_i \in D_1(A,s)}(y_i-c_1)^2 + min \sum_{x_i \in D_2(A,s)}(y_i-c_2)^2 ] \]

其中, \(c\)为样本输出均值, 其实就是对应数据集的label的均值
那么最终这棵树的方程为:

\[f(x)=\sum_{m=1}^{M} c_m I (x \in R_m) \]

其中,\(c_m\)为对应区域的均值, 类似于这样
图片来源于CSDN

CART树的主要开销就在为每个特征寻找最优切分点\(s\)

posted @ 2020-08-22 12:01  real-zhouyc  阅读(404)  评论(0编辑  收藏  举报