Classification: Cart

CART

Mahout中没有这个算法,学习而已

步骤:

a. 构建树: 每次选取一个属性及其分割点

b. 剪枝:    防止过拟合。

 

a和b步骤是大部分的决策树的通用的方法。不同决策树选择的属性选取的方法不一样。

构建树的方法关键在于如何最优的选择属性,如何最优的选择分割点。

cart采用gini index来选择属性。

gini index的公式:

其中,pj为S中的值组术语类别j的概率。如果利用属性A将S分割成S1和S2,则根据此分割S的gini index为:

不纯粹的降低值为:

 

 

若属性A拥有最大不纯粹度的降低值,则选择该属性为分割属性。

选择属性说完了,如果选择属性中的分割点。离散属性比较好分,连续属性则根据上下限划分成离散区域,不停的迭代,找到最优划分。

 

构建树的过程完了,说说如何剪枝。

剪枝的目的是为了不让树过拟合,所以剪枝的前提就是承认决策树存在过拟合。

如何剪枝?

CART采用的是事后剪枝,也就是在完全生长的书上剪去分支实现的。

选择决策点,不同的决策点对应的不同的树,谦虚遍历统计不同觉得点对应的建树的误差和测试数据的误差,这里要解释下,我们会将样本的分割成两部分,一部分是训练样本,一部分是测试样本,比如2/3是训练样本,1/3是测试样本。可以通过比较,选取测试误差最小的树(最小误分树)。

 

详细的算法的步骤就不写了,上一段写的蛮详细了!如有不对的地方,请务必更正。

参考:http://www.cnblogs.com/happyblog/archive/2011/09/30/2196901.html

    

 

你可能感兴趣的:(Cart,决策树,分类树)