集成学习概述

概述

集成学习(Ensemble learning)就是将多个机器学习模型组合起来,共同工作以达到优化算法的目的。具体来讲,集成学习可以通过多个学习器相结合,来获得比单一学习器更优越的泛化性能。集成学习的一般步骤为:1.生产一组“个体学习器(individual learner)”;2.用某种策略将他们结合起来。

个体学习器通常由一个现有的学习算法从训练数据产生。在同质集成(系统中个体学习器的类型相同)中,个体学习器又被称为“基学习器”,而在异质集成(系统中个体学习器的类型不同)中,个体学习器又被称为“组建学习(component learner)”。

集成学习的集成框架主要有:Bagging,Boosting和Stacking,其中Bagging和Boosting为同质集成,而Stacking为异质集成。
Bagging可以减少弱分类器的方差,而Boosting 可以减少弱分类器的偏差;

Bagging就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均,所以是降低模型的variance. Bagging 比如Random Forest 这种先天并行的算法都有这个效果。
Boosting 则是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小,所以模型的 bias 会不断降低。这种算法无法并行,如Adaptive Boosting.

多样性增强的几种方法

一般的做法主要是对数据样本,输入属性,输出表示,算法参数进行扰动。

  • (1)数据样本扰动
    这个其实主要就是采样,比如在bagging中的自助采样法,数据样本扰动对决策树,神经网络这样对数据样本变化非常敏感的学习算法非常有效,但是对支持向量机,朴素贝叶斯,k近邻这些对样本扰动不敏感的算法没用。对此类算法作为基学习器进行集成时往往需要使用输入属性扰动等机制。
  • (2)输入属性扰动
    这个就是从样本的特征空间中产生不同的特征子集。这样训练出来的基学习器必然是不同的。在包含大量冗余属性的数据,在特征子集中训练基学习器不仅能产生多样性大的个体,还会因属性数的减少而大幅节省时间开销,同时,由于冗余属性多,减少一些冗余属性后训练出来的基学习器性能也不会差。若数据只包含少量属性,或者冗余属性少,则不适宜使用输入属性扰动法。
  • (3)输出表示扰动
    这类做法的基本思路是对输出表示进行操纵以增强多样性。比如可对训练样本的label稍作变动,比如“翻转法”随机改变一些训练样本的标记;也可以对输出表示进行转化,如“输出调制法”将分类输出转化为回归输出后构建基学习器。这一类貌似用的不多。
  • (4)算法参数扰动
    这个在现在深度学习比赛中很常见,主要是神经网络有很多参数可以设置,不同的参数往往可以产生差别比较大的基学习器。

Bagging

核心思想:并行地训练一系列各自独立的同类模型,然后再将各个模型的输出结果按照某种策略进行聚合。例如,分类中可以采用投票策略,回归中可以采用平均策略;Bagging主要分为两个阶段:
步骤:

  • Boostrap阶段,即采用有放回的采样方式,将训练集分为n个子样本集;并用基学习器对每组样本分布进行训练,得到n个基模型;
  • Aggregating阶段,将上一个阶段训练得到的n个基模型组合起来,共同做决策。在分类任务中,可采用投票法,比如相对多数投票法,将结果预测为得票最多的类别。而在回归任务中可采用平均法,即将每个基模型预测得到的结果进行简单平均或加权平均来获得最终的预测结果。

Bagging就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均,所以是降低模型的variance.;Bagging 比如Random Forest 这种先天并行的算法都有这个效果

随机森林(Random Forest)

1. 算法原理

随机森林(Random Forest)是一种基于决策树的集成学习方法。它通过构建多个决策树,并将它们的预测结果进行投票(分类问题)或平均(回归问题),以获得最终的预测结果。随机森林的构建过程包括两个关键步骤:自助采样(bootstrap sampling)和特征随机选择。自助采样用于生成不同的训练数据子集,每个子集用于构建一个决策树。特征随机选择则在每个决策树节点上随机选择一部分特征进行划分,以增加决策树的多样性。这两个步骤共同提高了随机森林的泛化能力和鲁棒性。

2.优缺点

优点:
a) 随机森林具有较高的预测准确性,通常比单个决策树的性能要好。
b) 能够有效地处理高维数据和大量特征。
c) 对噪声和异常值具有较强的鲁棒性。
d) 可以进行特征重要性评估,有助于特征选择。
e) 并行化能力强,易于实现并行计算。
缺点:
a) 相比单个决策树,随机森林的模型可解释性较差。
b) 训练和预测时间可能较长,尤其是在大数据集上。
c) 对于某些不平衡的数据集,随机森林的性能可能不尽如人意。

3.适用场景

随机森林适用于以下场景:
a) 需要提高预测准确性的分类和回归问题。
b) 数据集具有高维特征或特征数量较多。
c) 数据集中存在噪声和异常值。
随机森林在许多实际应用中表现出较好的性能,尤其是在提高预测准确性方面。然而,随机森林的可解释性较差,且在大数据集上训练和预测时间可能较长。在面临这些问题时,可以考虑使用其他集成方法,如梯度提升树(Gradient Boosting Trees)等。

RandomForestClassifier:分类树
RandomForestRegressor(n_estimators=100, 
  criterion='mse', max_depth=None, 
  min_samples_split=2, min_samples_leaf=1, 
  min_weight_fraction_leaf=0.0, 
  max_features='auto', max_leaf_nodes=None, 
  min_impurity_decrease=0.0, 
  min_impurity_split=None, 
  bootstrap=True, oob_score=False, 
  n_jobs=None, random_state=None, 
  verbose=0, warm_start=False, 
  ccp_alpha=0.0, max_samples=None)

重要的参数:

  • n_estimators:随机森林中决策树的个数,默认为 100。
  • criterion:随机森林中决策树的算法,可选的有两种:1)gini:基尼系数,也就是 CART 算法,为默认值;2)entropy:信息熵,也就是 ID3 算法。
  • max_depth:决策树的最大深度。
RandomForestRegressor:回归树
RandomForestRegressor(n_esti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值