随机森林原理
随机森林是一种相当简单、容易理解的方法,他的基本原理就是,从原数据集中有放回的采样获得若干个子集,基于每个子集训练出不同的基分类器,再通过基分类器的投票获得最终的分类结果。随机森林采用自助采样法(bootstrap)获得原数据集的子集,先了解自助采样法有助于我们更好的理解随机森林
自助采样法
给定一个包含 mm 个样本的数据集 DD , 我们对它进行采样产生数据集 D′D′ : 每次随机从 DD 中挑选出一个样本,将其拷贝放入 D′D′ ,然后再将该样本放回初始数据集 DD 中,使得该样本在下次采样中仍有可能被采到;这个过程重复执行 mm 次以后,我们就得到了包含 mm 个样本的数据集 D′D′,这就是自助采样的结果。显然, DD 中有一部分样本会在 D′D′ 中多次出现,而另一部分样本 不出现。可以做一个简单的估计,样本在 mm 次采样中始终不被采到的概率是 (1−1/m)m(1−1/m)m ,该式取极限得到 1/e=0.3681/e=0.368 ,即通过自助采样,初始数据集 D 中约有 36.8% 的样本未出现在数据集D′D′ 中, 于是我们可以将 D′D′ 作为训练集,而剩下的作为测试集
基于自助采样法随机森林的构建过程为:
从原始训练集中使用Bootstraping方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集
对于n_tree个训练集,我们分别训练n_tree个决策树模型
对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂
每棵树都一直这样分裂下去&