Make Good friend with GBDT——Part1 决策树

版权声明:其他网站转载请注明原始链接,尽量不要破坏格式 https://blog.csdn.net/landstream/article/details/80155658

Part 1 决策树

带着三个问题,重读决策树章节:
1. 决策树适用的应用场景有哪些?
2. 如何得到决策树?
3. 做得更好:如何提高性能?

Question 1 决策树的适用场景

决策树可以用来解决分类问题和回归问题,并且有着可解释性强分类速度快的特点。决策树同样可以用来抽取多属性特征,作为深度学习的输入。

Question 2 如何得到决策树?

决策树的学习分3个步骤:
1. 特征选择;
2. 决策树的生成;
3. 决策树的剪枝。

决策树学习的本质是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的决策树可能有多个,也可能一个也没有。

规则:由决策树的根节点到叶节点的每一条路径构成一条规则,即一系列 if-else 条件的集合。

决策树学习的算法是一个递归地选择最优特征,并根据特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。不同的算法在特征和分割点的选取上存在方法上的区别,但最终目的是一致的——有一个最好的分类效果。

特征的选择

对于分类问题,目前在特征的选择上存在两类不同的方法,一种是基于信息增益或信息增益比的计算方法,倾向于选择能提供更大信息增益的特征;另一种是基于基尼指数最小化的选择方法。

信息增益跟信息论中的熵和条件熵有紧密联系

g ( D , A ) = H ( D ) H ( D | A )

信息增益比是为了解决信息增益倾向于选择取值数量较多的特征的问题

g R ( D , A ) = H ( D ) H ( D | A ) H A ( D )

H A ( D ) = n = 1 N | D i | | D | l o g 2 | D i | | D |

N是特征A的取值个数。

基尼指数Gini用于CART选择特征并决定特征的最优二分类点。

G i n i ( D ) = 1 k = 1 K ( | C k | | D | ) 2 ( 1 )

G i n i ( D , A ) = | D 1 | | D | G i n i ( D 1 ) + | D 2 | | D | G i n i ( D 2 ) ( 2 )

(1)式中,K是训练样本可取类别的个数,Ck是属于第k类的样本子集。
(2)式是在特征A条件下,集合D的基尼指数定义。

决策树生成算法

目前经典的决策树生成算法有三种,分别为ID3算法,C4.5算法和CART算法,前两种关系更为密切C,第三种目前应用更广,学习过程中要注意与其他两种算法进行对比。寻找最优决策树是NP-C问题,以上三种算法都旨在局部条件下进行选择,最终目的是得到近似最优决策树,即用启发式方法解决NP完全问题。

剪枝操作是为了抑制过拟合。

CART:Classification And Regression Tree

ID3 C4.5 CART
解决问题 分类 分类和回归
模型 N叉树 二叉树
生成策略 在各个节点上选择信息增益最大的特征; 在各个节点上选择信息增益比最大的特征 1. 对分类问题,选择基尼指数最最大的特征和分类点;
2.对回归问题,选择平方和误差最小的特征和切分点。
剪枝方法 参考加入正则项的损失函数,将得到的决策树从底向上尝试剪枝。 1. 首先从生成算法产生的决策树底端开始不断剪枝,直到根节点,形成一个子树序列;
2. 然后通过交叉验证法在独立的验证数据集上进行测试,选择最优子树。

Question 3 如何提高性能?

要搞出更好的预测模型,能采取的措施不过于如何提高训练效率,以及如何提高预测效果。

如何提高树的预测效果呢?

你可能需要一片森林。
——集成学习,boosting方法

如何提高训练效率呢?

请看XGBoost是怎么做的(TO BE CONTINUE)

引用

  1. 统计学习方法,李航,Chpter 5

猜你喜欢

转载自blog.csdn.net/landstream/article/details/80155658