一、集成学习
集成学习通过训练学习出多个估计器(一种根据观测数据来估计总体参数或潜在模型参数的方法或算法),当需要预测是通过结合器将多个估计器的结果整合起来当最后的结果输出
上图展示了集成学习的基本流程
集成学习的优势是提升了单个估计器的通用性,比单个估计器拥有更好的预测性能,集成学习的另一个特点是能方便的进行并行化操作。(在计算过程中,将多个任务同时执行,以实现计算效率的提升)
集成学习是将若干个弱学习器结合成一个强大模型的方法。集成学习的目的是通过模型组合,提高整体预测的准确性和稳定性。
二、bagging算法
bagging算法是一种集成学习算法,其全称为自助聚集算法(Bootstrap aggregating),顾名思义算法由 Bootstrap 与 Aggregating 两部分组成。通过自助采样法(Bootstrap Sampling)生成多个子样本集。针对每个子样本数据集,模型训练一个独立的基学习器
上图展示了Bagging 算法使用自助取样生成多个子数据的示例
算法的具体步骤为:假设有一个大小为 N 的训练数据集,每次从该数据集中有放回的取选出大小为 M 的子数据集,一共选 K 次,根据这 K 个子数据集,训练学习出 K 个模型。当要预测的时候,使用这 K 个模型进行预测,再通过取平均值或者多数分类的方式,得到最后的预测结果。
三、随机森林算法
将多个决策树结合在一起,每次数据集是随机有放回的选出,同时随机选出部分特征作为输入,所以该算法被称为随机森林算法,可以看到随机森林算法是以决策树为估计器的Bagging算法。随机森林通过Bagging方法整合多个决策树模型。在每个子样本集上训练一个独立的决策树,最终将这些决策树的预测结果进行融合,以获得更准确和稳定的整体预测结果。
上图展示了随机森林算法的具体流程,其中结合器在分类问题中,选择多数分类结果作为最后的结果,在回归问题中,对多个回归结果取平均值作为最后的结果。
使用Bagging算法能降低过拟合的情况,从而带来了更好的性能。单个决策树对训练集的噪声非常敏感,但通过Bagging算法降低了训练出的多颗决策树之间关联性,有效缓解了上述问题。
1、随机森林的构建过程
1)从原始数据集中通过自助采样法(Bootstrap Sampling)抽取多个样本子集。通常,有放回地从原始数据集中随机抽取与原始数据集大小相同的样本,构成一个新的样本子集。
2)对每个样本子集,使用以下方法构建一棵决策树:
a. 随机选择一部分特征(而非全部特征),用于节点分裂和决策树构建。这一步可以在每次节点划分时进行。
b. 使用某种决策树算法(如CART或者ID3)对样本子集进行训练,生成一棵决策树。注意不进行剪枝操作,允许树生长到最大程度。
3)重复步骤1和2,生成多棵决策树,从而构建随机森林模型。
2、预测过程
1、对于分类任务,每棵决策树会产生一个分类结果,随机森林会选择出现次数最多的类别作为最终的预测结果。
2、对于回归任务,每棵决策树会给出一个预测值,随机森林会计算所有决策树预测值的平均值作为最终的预测结果。
四、优点和缺点
优点:
1、高准确性:随机森林通过整合多个决策树的预测结果,通常能提高预测准确性。
2、稳定性:由于随机森林是基于多个决策树构建的,潜在单棵决策树的噪声和误差对最终结果的影响得到降低。
3、并行性:每棵决策树在训练和预测时相互独立,可实现并行计算,大大提高计算效率。
4、有效处理高维数据(数据具有大量特征或属性的数据集):随机森林通过随机选择特征进行分裂,能有效处理具有大量特征的数据集。
5、自带特征选择:随机森林可以根据特征的重要性进行排序,有助于特征选择。
6、较好的泛化能力:随机森林具有较好的抗过拟合性能,对于未知数据的泛化能力较强。
缺点:
1、模型可能较大:随机森林中有多棵决策树,模型大小可能较大,存储和计算成本较高。
2、预测速度较慢:虽然训练过程可以实现并行计算,但预测时需要汇总所有决策树的结果,因此预测速度相对较慢。