模型思想
随机森林是集成学习的一种,集成多个弱学习器形成一个强学习器。弱学习器要求是好而不同,具有一定的准确性和多样性,多个学习器集成产生更好的效果。
- 对于回归问题:简单平均法。
- 对于分类问题:简单投票法。
Bagging
为了用于多个学习器训练,要有多个不同的训练集,运用少量的数据产生多个不同训练集其中的一个方法就是bagging。bagging也就是有放回的采样。假设有m个数据,每次抽一次放回到数据集,重复m次就能得到一个规模为m的训练集。这样会有36.8%的概率的数据不会被采样到,这样的好处是,这部分的数据可以作为“外包估计”,对泛化性能作为检验,例如决策树辅助剪枝,神经网络的early stopping。
36.8%的证明(极限公式 (1+1/x)^x=e):
随机森林算法
随机森林不单是数据集采用bagging,有样本扰动,还加入了属性的扰动,每次不是从所有的属性中选择最优的属性,而是先随机选出k个属性,在k个属性里面根据信息增益去选最优的分裂属性。如果有d个属性,k的推荐值一般是:
随机森林的推广算法
常见的有三个:Extra Tree、Totally Random Trees Embedding(TRTE)、Isolation Forest。
Extra Tree
Extra Tree的每个训练集采用原始的训练集,也就是不用bagging的方法,在选择属性上Extra Tree采用完全随机选择属性,不根据信息增益的方法去选择。Extra Tree的泛化能力一般优于随机森林,但是由于完全随机选择属性,而且是在所有的属性中选择,生成的模型规模比随机森林大,一般不采用这种方法,只有在随机森林过拟合的时候尝试采用。
Totally Random Trees Embedding(TRTE)
一种低维数据向高维数据映射的方法。TRTE算法的转换过程类似RF算法的方法,建立T个决策树来拟合数据。当决策 树构建完成后,数据集里的每个数据在T个决策树中叶子节点的位置就定下来了, 将位置信息转换为向量就完成了特征转换操作。
Isolation Forest
用于异常点的判断,则是将测试样本x拟合到T棵决策树上。计算在每棵树上该 样本的叶子节点的深度 ht(x) 。从而计算出平均深度 h(x) ,平均深度越小,就证明这个点很快就分到异常的叶子节点上,说明这个点越可能是异常点,但是不能只考虑平均深度,还要考虑数据的规模,所以把 h(x) 放到下面的公式中进行判断:
其中m是样本个数, ξ 是欧拉常数。