决策树

决策树算法比较

 
ID3
C4.5
CART(分类)
CART(回归)
树类型 多叉树 多叉树 二叉树 二叉树
特征选择(以及剪枝时的损失函数) 信息增益(熵) 信息增益率(熵) 基尼系数 平方误差最小
损失函数 Ca(T)=C(T)+a|T| Ca(T)=C(T)+a|T| Ca(T)=C(T)+a|T| Ca(T)=C(T)+a|T|
(预测误差)C(T)计算方式 基尼系数 平方误差最小
剪枝方式 后剪枝 后剪枝 后剪枝 后剪枝
树复杂度 复杂 复杂 较整洁 较整洁

C4.5算法

(Y是目标变量即最终类别,Ai为各个自变量)
熵:Entropy(S) = sum(p(Y=yi)*log(1/p(Y=yi)))
信息增益:Gain(Ai) = 分裂前目标变量Y的信息熵 - 对自变量Ai分裂后目标变量Y的信息熵=Entropy(S) - Entropy(S|Ai)
缺点:它偏向选择取值较多的自变量作为分裂节点
信息增益率:相比于信息增益,它在其基础上除以样本中分裂对应自变量的熵(splitINFO=Entropy(Ai)=sum(p(Ai=numj*log(1/p(Ai=numj)))))
公式:GainRatio(A2) = Gain(A2)/splitINFO(A2)
分裂节点的选择:
选择信息增益率大的变量进行分裂
停止分裂:
1.一个节点中的所有目标变量样本均属于同一个类别
2.若没有自变量可以用于划分当前样本,则把数目最多的类别作为该节点的类别
3.如果分裂后样本的数目小于给定的阀值则停止分裂(其实也是一种前剪枝方法)
后剪枝法:
1.按照置信度阀值来后剪枝
2.按照子节点和父节点的误差对比来剪枝

CART算法(分类)

数的结构:二叉树
节点分裂:按照利用基尼系数计算的信息增益
信息增益(分类树):Gini=分裂前目标变量Y的Gini-对自变量Ai分裂后目标变量Y的Gini=Gini(S)-Gini(S|Ai)
信息增益缺点:基尼系数计算的信息增益跟熵类似都存在偏向选择取值较多的自变量作为分裂节点
解决方式:采用只能二分支分裂来解决
停止分裂:
1.决策树最大深度
2.节点包含最小样本数
3.树中叶节点包含的最小样本数:如果自变量A分裂后生成的叶节点所包含的样本数低于最小样本数则此次分裂无效
后剪枝:
1.采用最小代价复杂度剪枝法,目的使误差和决策树的规模都尽可能的小

CART算法(回归)

数的结构:二叉树
节点分裂:寻找最优切分点
平方误差最小化:选择最优切分变量j与最优切分点s,求解

遍历变量j,对固定的切分变量j扫瞄切分点s,选择使上面的公式达到最小的对(j,s)
(c1/c2为R1/R2内yi的平均值)
其它同cart分类树


决策树总结

优点:

1.概念简单,计算复杂度不高,可解释性强,输出结果易于理解;

2.数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一。

3.对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;

4.应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。决策树可以用于不熟悉的数据集合,并从中提取出一些列规则 这一点强于KNN。

缺点:

1.容易出现过拟合;

2.对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。

3. 信息缺失时处理起来比较困难。 忽略数据集中属性之间的相关性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值