为了帮助大家更好地理解和学习AI的基础知识,我总结了机器学习领域中的一些入门必备知识点。今天我们先来探讨第一部分的内容。
集成学习——机器学习中的“利器”
集成学习方法是指通过运用一系列的学习器进行学习,并将学习结果综合起来,它类似于一种优化手段和策略。在机器学习的监督学习算法中,我们的目标是得到一个稳定且各方面表现良好的模型。然而,我们通常只能获得一些弱监督模型(在某些方面表现较好)。集成学习通常会结合多个简单的弱机器学习算法,以做出更准确的决策。用通俗的话来说,就是集众人智慧来进行决策,即使个人的决策在某些方面可能不够准确,但其他人的意见可以对其进行修正,从而达到最优的结果。
集成学习的核心在于两个关键点:一是如何构建不同的分类器,二是如何将不同分类器的结果进行融合。围绕这两个核心问题,产生了许多算法,其中最具代表性、最为人熟知的包括Boosting、Bagging和Stacking。
集成学习的算法——Boosting
Boosting是一种提升任意给定学习算法准确性的方法,其理念源于Valiant提出的PAC(Probably Approximately Correct)学习模型。Boosting是一种框架算法,主要是通过对样本集的操作获取样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。Adaboost是Boosting算法中具有代表性的例子,它是一种迭代算法,通过集合多个弱分类器训练成强分类器。
Adaboost的基本流程如下: 1. 用平均分配的方式初始化训练数据。 2. 选择基本分类器。 3. 计算分类器的系数。 4. 更新训练数据的权重分配。 5. 组合分类器,优化结果。
简单来说,Adaboost通过误差率求得分类器系数,并根据分类器系数得到组合方式。
集成学习的算法——Bagging
根据个体学习器生成方式的不同,集成学习算法可分为串行化方法和并行化方法。串行化方法的主要代表是Boosting,由于个体学习器之间存在较强的依赖关系,因此只能依次进行。而并行化方法的主要代表是Bagging(bootstrap aggregating的缩写),由于个体学习器之间的依赖关系较弱,可以同时进行。
例如,Boosting像小时候吃糖葫芦一样,必须先吃掉下面的一颗,才能吃到下面的一颗;而Bagging则像是吃面条,可以同时吃很多根,不存在先后顺序的问题。
Bagging的采样方法采用自助采样法,即有放回的采样。一般步骤是先抽取一定数量的样本,再计算所需的统计量T,重复多次N次,最后根据统计量计算置信区间。
举个例子:比如数据集中有10000个数据,我们从中随机抽取100个数据,得出统计量T1,然后将这100个数据放回到数据集中,再从中抽取100个数据,得出统计量T2,如此循环N次,最后计算置信区间。
名词解释:置信区间是指由样本统计量所构造的总体参数的估计区间。
随机森林
随机森林是Bagging的一种扩展变体。随机森林在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。简单来说,随机森林相当于Bagging的升级版,原来的Bagging会在决策树的所有属性中选择最优的一个,而随机森林则是从相应节点的随机属性中选择一个最优属性。
例如,在一片森林中,有10万棵树,我们要从中选择高于10米的树。Bagging的做法是多次统计,从而找到高于10米的树的数量区间。而随机森林的做法是将10万棵树随机分成10份,每份1万棵。对于这10份,每份都有一个输入结果,高于10米或者低于10米。如果高于10米的类别较多,则整体是高于10米的,反之亦然。
在概率学中,样本容量越大,结果越接近。因此,随机森林可以在训练效果更高效、计算开支更小的情况下得出最后结果。需要注意的是,在随机森林中,有两个采样过程是随机的:第一个是输入数据的随机选取,从整体训练数据中选取一部分作为决策树的构建,是有放回的选取(这样可以避免每棵树都是全部样本,从而减少过拟合的风险)。第二个是每个决策树构建所需特征是从整体特征集中随机选取的,采样的特征远少于整体特征。
集成学习的算法——Stacking
相较于Bagging和Boosting,Stacking提及较少。Stacking算法是训练出多个小分类器,将这些小分类器的输入重新组合成一个新的训练集,然后训练出一个更高层次的分类器,以得到最终结果。在实际应用中,通常使用逻辑回归作为组合策略。
Stacking是一种集成学习技术,通过元分类器或元回归聚合多个分类或回归模型。基础层次模型基于完整的训练集进行训练,而元模型则基于基础层次模型的输入进行训练。