0
点赞
收藏
分享

微信扫一扫

对决策树,随机森林的初步认识


 决策树是常用的分类方法,其方法也非常的直观。每一次从父亲到孩子是对某个特征的分裂,对于树中的叶子,要么是已经为纯净的了(所有样本都属于同一类),或者没有特征可以分裂。对于后一种情况的出现,可以考虑将划分为该点样本属于最多的类。对于一个分类问题可以构造出很多很多的决策树,而对于一个要通过某个确定的决策树进行分类的实例,就是从根节点开始,依据分裂出的条件一直走到某个叶子节点而判定其分类。所以判定一棵决策树的标准是看其深度越低越好。为了达到这个目的,通常对分裂时选择哪个特征进行分裂来做文章,希望每次的分裂后出来的点纯度越高越好(一个直观的例子,若根据某个特征分裂出的每个点各自都属于同一个类别,该节点分裂后其子节点就都不用继续分裂了)。比如现在一款游戏的运行条件有各种各样的硬件软件需求,如果系统不是win10就无法运行,而其他的硬件条件需要相互的组合才能判断是否可以运行,那么显然根节点往下就对系统这个特征进行分裂是最优的,而不是做了一堆硬件的分类后再对系统这个特征进行分裂。为了得到理想的分裂方法,衍生出了各种概念和算法,比如信息熵,信息增益,ID3,C4.5等。同时,决策树容易出现过拟合(overfitting)的问题,可以通过剪枝的方式来缓和。


 设计出一棵牛逼的决策树,样本进行很好的分类是比较困难的。这时就可以使用随机森林的了,其本质就是弄一堆并不是那么厉害的决策树,而最终的分类结果由投票来决定。那么如何构造这些决策树?假设全量的训练集为M个样本,N个特征,对于每颗决策树Ti,随机选取M个样本中的Mi个样本,再随机选择N个特征中的Ni个特征,作为决策树的训练样本,再进行简单的训练就好。注意这里的随机选取是用有放回的选取,即有可能存在决策树选取的训练样本及其特征是完全相同的,但概率非常的小。奇妙的是如此得到的分类结果往往是较为理想的,而且不容易出现过拟合情况。


 以上只是自己感性的认识,而要深入理解是有大量的数学和证明作为基础的。

举报

相关推荐

0 条评论