集成学习概述:
使用模型融合提升算法准确度的方法,即训练多个模型(基学习器),然后按照一定的方法集成在一起(强学习器),常用的实现路径包括Bagging方法(装袋法、随机森林)和Boosting方法(提升法),在接下来的两章中我们将分别进行讲解。
由于装袋法只是随机森林的一种特例,所以本章我们讲解随机森林算法的基本原理,并结合具体实例讲解该算法在python中解决分类问题和回归问题的实现与应用。
线性回归、K近邻、决策树等算法都是单一的个体学习器,在样本容量有限的条件下,其能够实现的算法模型性能提升的空间较为有限。于是,统计学家们想出了一种集成学习(组合学习、模型融合)的方式,即将单一的个体学习器(基学习器)组合在一起,通过群策群力形成强学习器、达成模型性能的提升。
集成学习注重基学习器的优良性与差异性,通常情况下,如果每个基学习器在保证较高的分类准确率的同时,相互之间又能有较大的差异性,集成学习的效果就会充分得到显现(该理论由Krogh和Vedelsby于1995年提出,又称“误差-分歧分解”)
集成学习的概念与分类
针对个体学习器的不同,集成学习可以分为同质学习和异质学习。
如果基学习器分别属于不同的类型,比如有线性回归模型、有决策树模型、有K近邻模型等,则通过分别赋予这些模型一定权重的方式(最优权重可以通过交叉验证的方式确定),加权得到最优预测模型,基于该思想的集成学习方式为异质学习集成。
而如果这些基学习器都属于一个类型,比如均为决策树模型,那么在基准模型不变的条件下,可以通过搅动数据的方式,得到多个基学习器,然后进行模型融合,得到最优预测模型,基于该思想的集成学习方法为同质学习集成。
针对集成方法的不同,集成学习可以分为并行集成和串行集成
如果基学习器间存在强依赖的关系,后一个基学习器的生成需依赖前一个基学习器的结果,则集成学习方式为串行集成,代表算法为Boosting,包括AdaBoost、GBDT、XGBoost等。
如果基学习器间不存在依赖关系,可以同时训练多个学习器,适合分布式并行计算则集成,则集成学习方式为并行集成,代表算法为装袋法(Bagging)、随机森林算法,其中装袋法是随机森林算法一种特例。
装袋法的概念与原理
首先我们来介绍装袋法,其实现过程是:
1、首先假设样本示例全集为D,通过自助法(详见3.7.3自助法一节介绍)对D进行n次有放回的抽样,形成n个训练样本集,并将在n次有放回的抽样中一次也没有被抽到过的样本示例构成包外测试集;
2、然后基于n个训练样本集生成n个基学习器(比如n颗决策树);
3、再后基于包外测试集使用这n个基学习器对包外测试集进行预测,从而得到n个预测结果,如果是分类问题,就是n个分类,如果是回归问题,就是n个预测值。
4、如果是分类问题,按照“多数票规则”,将n个基学习器产生的预测值中取值最多的分类作为最终预测分类;如果是回归问题,将n个基学习器产生的预测值进行平均,以平均值作为最终预测值。
5、如果是分类问题,以袋外错误率作为评价最终模型的标准;如果是回归问题,以袋外均方误差或拟合优度作为评价最终模型的标准。
随机森林算法的概念与原理
随机森林算法特征变量重要性度量
随机森林算法包含很多基学习器,那么如何度量各个特征变量的重要性水平?基学习器以决策树为例,首先针对单颗决策树计算重要性水平,即因采纳该变量引起的残差平方和(或信息增益、信息增益率、基尼指数等指标)变化的幅度;然后将随机森林中的所有决策树进行平均,即得到该变量对于整个随机森林的重要性水平。残差平方和下降或基尼指数下降越多、信息增益或信息增益率提升越多,说明变量在随机森林模型中越为重要。
部分依赖图与个体条件期望图
长期以来机器学习因其弱解释性深受诟病,所以很多专家学者深耕于可解释机器学习领域,奋力使模型结果具备可解释性。部分依赖图(Partial Dependence Plot)与个体条件期望图(ICEPlot)即是其中方法之一,在随机森林等集成学习算法中也经常被使用。其中部分依赖图显示了一个或两个特征变量对机器学习模型的预测结果的边际效应。与前面介绍的特征变量重要性不同,特征变量重要性展示的是哪些变量对预测的影响最大,而部分依赖图则展示的是特征如何影响模型预测的,可以显示响应变量和特征变量之间的关系是线性的、单调的还是更复杂的。个体条件期望图展示是每个样本示例预测值与选定特征变量之间的关系,其实现路径是,对特定样本示例,在保持其他特征变量不变的同时,变换选定特征变量的取值,并输出预测结果,从而实现了样本示例预测值随选定特征变量的变化情况。