所谓ensemble learning,简单来说,是指综合多种基础模型或弱分类器来完成最终的决策的机器学习方法。
Bagging和Boosting(之前所提到的Adaboost)都属于这类方法。
Combining a series of T learned classifiers C1,…,CT
with the aim of creating an improved composite classifier C*
Random Forest也是一种基于ensemble learning思想的算法,该算法在决策树Bagging的基础上又增加了一层随机因素,在实际的分类和回归任务中,都取得了非常好的效果。 Random Forest是基于多棵分类回归树(CART)应用Bagging思想发展而来。。
分类回归树是一种基于2叉决策树的非线性机器学习算法,可以解决分类和回归的问题。
CART是一种有监督的学习方法,它解决分类和回归问题需要经过“训练”和“预测”两个阶段。
随机因素:Random Forest由很多CART树组合构成,同时还融入了random的思想。在实际的实现中,random体现在训练样本选择和分裂特征选择过程中
1) 随机训练样本选择
随机森林算法在生成每一颗决策树的过程中,不是采用所有的训练样本,而是随机采用一部分训练样本作为单颗决策树生长的训练数据。样本随机选取一般采用无放回的方式。
2) 随机分裂特征选择
子学习器独立性:在ensemble learning算法的一般经验表明,子学习器之间的独立性越好,集成之后的效果也就越好。相对于一些基于训练集合全局优化的机器学习算法,CART训练分裂过程基于贪心算法,训练参数相对不稳定,加上在训练样本选择和分裂特征选择中的随机因素,进一步增强了子学习器之间的独立性。因此,CART是集群学习中理想的子学习器,同时一些实验也表明,增加了随机因素的Random Forest相比一般的多CART bagging策略有明显的提升。
Random Forest算法
训练阶段:
1. For b = 1 to M
a) 从训练数据集合N中随机选取K个样本
b) 基于K个样本,训练CART
i. 在p个特征中随机选取m个特征
ii. 在m个特征中选取最优的分割特征和分割点
iii. 根据分割特征和分割点将树节点分裂成两个子节点
2. 保存所有生成的M个CART
预测阶段:
回归任务:R_predict =
分类任务:C_predict = Majority{C_CART[i]|i }