前言
关于决策树、随机森林、GBDT(GBRT),这里记录我的一些理解,详细的资料已经非常多了,也有很多好的博客,再写没必要。推荐几个有代表性的博客,互联网资源太多,良莠不齐。看了推荐的文章,你应该会有一个清晰的思路的。
决策树
在理解决策树时,在脑海里面有个二叉树的样子,或者在稿纸上画一个。如下图,表示一层的分割过程,全部的树有很多层(也是模型的一个重要参数)。
不同的分割依据(也可以叫目标函数)对应不同的决策模型,主要是图中这三种。
分割阈值也就是对应的特征数据,第一层用这个特征,第二层的节点用另一些特征,类似这样。
最后测试的时候,将数据输进来,在每个节点上进行对比,直到最后的叶子节点(最后一层上),得到分类的类型,也就是它的标签(label)。
详细推荐阅读这里的文章,文中对应有代码,自己跑跑。
随机森林
懂了决策树,随机森林就好理解了。随机森林就是由很多棵决策树组成,一般选取的就是CART树。但有两个不同的地方,一是训练数据的采样上(列采样);二是分割时选取的特征的采样上(行采样);具体的看这个文章,讲的很详细,还对应有代码。
GBDT也叫GBRT
全名gradient boosted decision tree,是一种新的思想。也是由很多棵决策树(回归树)组成,在每训练一棵树时,它的训练数据是已经训练好的模型(前面训练好的树)的残差(目标函数的梯度)。也就是用回归树来优化目标函数。详细的看这里的文章,代码看另外一个作者的。
附
1、推荐一个xgboost作者的文章,说完有一个升华。
2、大家找代码直接上github,在CSDN中有人直接从github上下载代码,然后放到自己那,很鄙视这种人。