多种决策树及应用 笔记

(持续更新。。。)

多种决策树:C50(R) Cart

C50

决策树剪枝就是基于方差分析,设置置信区间,然后自动剪枝。C50内部会做

https://blog.csdn.net/jerry81333/article/details/53182193

 

CART:

Classification and Regression Trees与C4.5算法是非常相似的,也只是如何选取节点的区别,但是CART支持预测连续的值(回归)。CART只构建二叉树,而C4.5则能构建多叉树。

 

分枝选择:

根据熵分枝

基尼指数(gini index)(以前流行)

参考(为防止内容消失,所以将所需内容引用如下):https://blog.csdn.net/qq_40587575/article/details/80219080

1、是一种不等性度量;
2、通常用来度量收入不平衡,可以用来度量任何不均匀分布;
3、是介于0~1之间的数,0-完全相等,1-完全不相等;
4、总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)

 

基尼不纯度指标

在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。基尼不纯度为这个样本被选中的概率乘以它被分错的概率。当一个节点中所有样本都是一个类时,基尼不纯度为零。
假设y的可能取值为{1, 2, ..., m},令fi是样本被赋予i的概率,则基尼指数可以通过如下计算:

多种决策树及应用 笔记_第1张图片

 

cart分类树中的基尼指数

如果训练数据集D根据特征A是否取某一可能值a被分割为D1和D2两部分,则在特征A的条件下,集合D的基尼指数定义为

多种决策树及应用 笔记_第2张图片

基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经过A=a分割后集合D的不确定性。基尼指数越大,样本的不确定性也就越大。

熵VS基尼指数

随机变量的熵表达形式:

多种决策树及应用 笔记_第3张图片

随机变量的基尼系数表达形式:

多种决策树及应用 笔记_第4张图片

主要区别在于,熵达到峰值的过程要相对慢一些。因此,熵对于混乱集合的判罚要更重一些。

多种决策树及应用 笔记_第5张图片

 

过拟合:

叶节点太多(叶节点样本太少,例如叶节点样本都是1个)

 

减少过拟合:

一  决策树剪枝

类似于方差分析,设置一个阀值,类似于置信区间。低于这个阀值就剪枝。例如某节点两种样本A占95%,B占5%。阀值90%,那么就停止分枝。

数字型特征,分类时之前用过,后面也可能会用到(字符型特征不会)。原因是决策树会不断两分数字型特征,计算量很大。这也是决策树的缺点之一,不适合数字(有待研究)

二  降低树高

 

决策树应用:

多模型做决策。例如先用决策树分类,在用线性回归拟合。现实中的效果比较好

过去流行:Bagging,Boost,Adaboost

bagging 是随机抽样获得s个弱分类器,然后根据s个弱分类器学习结果,根据多数表决的原则分类。

boost  是根据弱分类器分类的错误率,给予权重。分类器错误率越低,权重就越大,越容易对最终结果产生影响。

Adaboost 是基于弱分类器的分类错误率,给弱分类器分配决定系数alpha(错误率低的决定系数高),再根据决定系数选择分类迭代学习。

https://www.cnblogs.com/zy230530/p/6909288.html

现在流行:GB,GBDT,XGBOOST(extreme g boost)

https://www.cnblogs.com/wxquare/p/5541414.html

gb是根据一阶导数ri,xgboost是根据一阶导数gi和二阶导数hi,迭代生成基学习器,相加更新学习器。

xgboost做了优化,是gbdt的高效实现。在算法和性能,都做了优化。

你可能感兴趣的:(AI)