您的位置:首页 > 其它

决策树对比

2016-03-17 19:42 239 查看
CART:

Classfication and Regression Tree 是分类/回归树,cart是一颗二叉树,分类标准是基尼指数:

CART做回归数时,使用的是平方误差最小准则。

基尼系数:Gini(p) = sigma(每一个类)p(1-p)

回归树:属性值为连续实数。将整个输入空间划分为m快,每一块以其平均值作为输出。f(x)=sigma(每一块)CM*l(x属于RM)

回归树的生成:

选取切分变量和切分点,将输入空间分为两份。

每一份分别进行第一步,直到满足停止条件。

切分变量和切分点的选取:对于每一个变量进行遍历,从中选择切分点,选择一个切分点满足分类均方误差最小。然后在选出所有变量中最小分类误差最小的变量作为切分,

分类树:属性值为离散值

分类树的生成

根据每一个属性的每一个取值,是否取该值将样本分成两类,计算基尼系数。选择基尼系数最小的特征和属性值,讲样本分成两份

递归调用1,直到无法分割。

ID3:

只是分类树,并不能用于回归,分类标准是信息增益;缺点:不能处理缺失值;

信息熵:H(x) = -sigma(对每一个x)(plogp)

H(Y|x) = sigma(对每一个x)pH(Y|X=xi)

信息增益:g(D,X)= H(D)-H(D|X) H(D)是整个数据集的熵

C4.5:

与ID3相同,只能用于分类,不能用于回归,分类标准是信息增益率;可以处理缺失值。可以使用众数,其他没有缺失值的概率,或者直接丢弃的方法。

信息增益率:(H(D)-H(D|X))/H(X)

C5.0:

C4.5的修订版,适用于处理大数据集,采用Boosting方式提高模型的准确率,又称为BoostingTrees,计算速度快,内存资源占用少的有点。

算法流程:

对每一个属性值计算信息增益,若信息增益小于阈值,则将该支置为叶节点,选择其中个数最多的类标签作为该类的标签,否则,选择其中最大的最为分类属性。

若各个分支中都只含有同一类数据,则置为叶节点,否则1.

决策树剪枝策略:

预剪枝:树提前停止生长

后剪枝:完全生成以后减去一些子树提高预测准确率

降低错误率剪枝:自下而上对每一个内部结点比较减去其为叶节点和子树的准确率。如果减去准确率提高,则减去,一次类推直到准确率不在提高。

代价复杂度剪枝:

从原始决策树T0开始生成一个子树序列{T0、T1、、、Tn},其中Ti+1总是从Ti产生,Tn为根节点。每次均从Ti中减去具有最小误差增长率的子树。然后通过交叉验证比较序列中个子树的效果选择最有的决策树。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: