决策树---CART算法的理解

前面两篇博文我们介绍了一下决策树的ID3和C4.5算法,现在我们一起来看看CART算法吧,CART是英文Classification And Regression Tree的缩写,也就是分类回归树,顾名思义,CART可以用作分类也可以用作回归。比如说拿前两篇博文中的股票数据来说,我们可以构建CART决策树来预测明日股票的涨跌,这是分类;也可以通过CART决策树预测明日股票的涨跌幅度,这是回归。所以说CART也是在ID3和C4.5算法基础上优化的决策树,并且CART是二叉树。当CART是分类树的时候,节点分裂的依据是GINI值;当CART是回归树的时候,节点分裂的依据是样本的最小方差。为了后续的计算,我们再把前两篇博文中的我自己编的股票数据拿出来,方便使用。

今日股票涨跌 上证指数 涨跌幅 明日股票涨跌
+ 2983 +1.2 -
- 2962 -6.6 +
+ 3008 +7.0 -
- 2966 -3.2 -
+ 3018 +5.7 +
- 2995 -2.2 +
+ 2899 +1.7 -
- 3065 -0.6 +
+ 2888 +0.2 -
- 3112 -9.3 +

在我们节点分裂的过程中,节点分裂是为了让数据更加纯,条理更加清晰,使得决策树的输出更加接近真实的值。我们在CART中如何评价节点的纯度呢,如果CART是分类树的时候,我们可以用GINI值来衡量;如果CART是回归树的时候,我们可以用节点的样本方差来衡量。我们来看一下GINI值的计算公式:

G I N I = 1 i I p i 2

我们要尽量将GINI值最小化,因为GINI值越大,代表节点越不纯。我们再来看看样本方差的计算公式吧:
σ = i I ( x i μ ) 2 = i I x i 2 n μ 2

如果方差越大,就表示预测的值与真实值相差越大,反之,则预测的值越接近真实值。综上所述,我们可以知道,不论是分类树还是回归树,我们如果要选择分裂属性的话,就需要选择GINI值或者样本方差最小的那个属性。
G a i n = i I p i G i n i i ( c l a s s i f i c a t i o n ) G a i n = i I σ i ( r e g r e s s i o n )

CART在连续型的数据处理是和C4.5差不多的,我们可以参考上一篇博文,里面有介绍。在离散型数据的处理上,就有一些不同的地方。现在我们来一起计算一下如何计算GINI值和样本方差。
我们以今日股票涨跌为栗子,来看一下如果这10组股票数据是分类树,预测明日股票的涨跌:
今日股票涨跌对明日股票的影响
G a i n = i I p i G i n i i = 1 2 ( 1 ( ( 1 5 ) 2 + ( 4 5 ) 2 ) ) + 1 2 ( 1 ( ( 1 5 ) 2 + ( 4 5 ) 2 ) ) = 0.32

我们再来看看用今日股票涨跌来预测明日的上证指数,这个例子就是一个回归树,我们来把今日股票数据的涨跌分开:

今日股票涨跌 上证指数 涨跌幅 明日股票涨跌
- 2962 -6.6 +
- 2966 -3.2 -
- 2995 -2.2 +
- 3065 -0.6 +
- 3112 -9.3 +
今日股票涨跌 上证指数 涨跌幅 明日股票涨跌
+ 2983 +1.2 -
+ 3008 +7.0 -
+ 2899 +1.7 -
+ 2888 +0.2 -
+ 3018 +5.7 +

这时我们可以计算这个回归树的样本方差:

G a i n = i I σ i = 2962 2 + 2966 2 + 2995 2 + 3065 2 + 3112 2 5 × 3020 2 + 2983 2 + 3008 2 + 2899 2 + 2888 2 + 3018 2 5 × 2959.2 2 = 254.763

所以我们可以根据不同的分类来计算各自的GINI值和样本方差,最后取最小的值的那种划分方法,上述只是做一个GINI值和样本方差计算的例子。
上述就是我们所说的决策树CART算法,可以运用到分类树和回归树中,希望这篇文章能对您有所帮助,本人能力有限,文章中如有纰漏,请各位朋友轻喷,不吝指教,如有转载,也请表明出处,谢谢。

猜你喜欢

转载自blog.csdn.net/oscar6280868/article/details/81020222