机器学习及应用第7章-集成学习课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《机器学习及应用第7章-集成学习课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器 学习 应用 集成 课件
- 资源描述:
-
1、第07章 集成学习p集成学习p投票法p挂袋法p提升法7.1 引言n 集成学习(Ensemble Learning)是指利用多个独立的基学习器来进行学习,组合某输入样例在各个基学习器上的输出,并由他们按照某种策略共同决定输出。n 集成学习的基本思想是先通过一定的规则生成一定数量的基学习器(Base Estimator),再采用某种集成策略将这些基学习器的预测结果组合起来,形成最终的结论。n 集成学习中,弱学习器(Weak Learner)是错误概率小于0.5的学习器;而强学习器(Strong Learner)则具有任意小的错误概率。n 集成学习主要包括三个部分:个体的生成方法、个体学习器(基学习
2、器)和结论的合(集)成方法。n 集成学习中的基学习器可以是同质的“弱学习器”,也可以是异质的“弱学习器”。目前,同质个体学习器的应用最为广泛,同质个体学习器使用最多的模型是CART决策树和神经网络。7.1.1 集成学习的概念7.1 引言n 集成学习主要包括三个部分:个体的生成方法个体学习器(基学习器)结论的合(集)成方法。n 集成学习需要很好地解决如下两个问题。(1)如何通过有效地训练,获得若干个基学习器?(2)如何选择一个组合策略,将这些基学习器集合成为一个强学习器?7.1.2 集成学习的组成7.1 引言n 同质个体学习器按照个体学习器之间是否存在依赖关系又可以分为两类:个体学习器之间存在着
3、强依赖关系其代表算法是Boosting算法;个体学习器之间不存在强依赖关系,可以并行生成这些个体学习器,其代表算法是Bagging和随机森林(Random Forest)算法。n 根据集成学习的用途不同,结论合成的方法也各不相同。集成的输出通常由各个体学习器的输出投票产生。通常采用绝对多数投票法或相对多数投票法。当集成学习用于回归估计时,集成的输出通常由各学习器的输出通过简单平均或加权平均产生。7.1.3 同质个体学习器的分类及算法7.2 Votingn 假设某机器学习模型有L个基学习器 ,用dj表示基学习器Mj在给定的任意输入向量x上的估计值,即 (注:若输入向量存在多种表示 ,也就是说每个
4、基学习器的输入各不相同,那么Mj在输入xj上的预测 ),那么最终的预测值可由各个基学习器的预测计算得出:若每个基学习器有K个输出,即基学习器Mj的输出当它们组合时,得到预测值11Ljjw0jw 1Lijjijyw d7.2 Votingn 组合函数是投票法组合函数还可以是取平均值的简单投票法(Simple Voting)、中位数(Median)、最大值(Maxmize)等,如图7-1所示。图7-1 多个基学习器通过投票方法组合而成的集成学习方式示意图7.2 Votingn 对于回归,可以使用简单平均、加权平均或中位数来融合基回归器的输出。中位数对噪声比平均值更加棒。n 分类器组合函数规则组合函
5、数说明平均和 相对多数表决,直观加权和 考虑学习器的投票权重中位数 对离群点的鲁棒性好最小值 悲观估计最大值 乐观估计乘积 每个学习器都有否决权7.2 Votingn 假定dj是独立同分布的,其期望值为E(dj),方差为Var(dj),那么当wj=1/L时,输出的期望值和方差分别为:从上述推导过程可以看到,期望值没有改变,因而偏倚也不会改变。但是方差随着独立投票数量的增加而下降。对于一般情况,有可以看出,如果学习器是正相关的,则方差增加。因此,在实践中,需要使用不同算法和输入特征来减少其正相关性。如果投票者不独立,但是负相关的,那么进一步降低方差也是可能的。7.2 Votingn sklear
6、n提供了一种软投票/多数规则分类器(Soft Voting/Majority Rule Classifier),其原型如下:class sklearn.ensemble.VotingClassifier(estimators,voting=hard,weights=None,n_jobs=1,flatten_transform=None)n 主要参数如下estimators:指定的估计器,该估计器必须有.fit方法进行训练。voting:字符串,可选项为“soft”和“hard”,其默认值为“hard”。如果voting取值“hard”,那么使用多数规则表决预测的类标签。否则,基于各个基学习器
7、的预测概率之和预测类标签。weights:数组,大小等于n_classifiers(基学习器的数量),缺省值为None。权值序列表示预测类标签出现(hard voting),或者平均化之前的类概率(soft voting)。n 示例from itertools import productimport numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.neighbors import K
8、NeighborsClassifierfrom sklearn.svm import SVCfrom sklearn.ensemble import VotingClassifier#加载鸢尾花数据集iris=datasets.load_iris()X=iris.data:,0,2y=iris.target7.2 Voting#构造三个基学习器和一个集成学习器clf1=DecisionTreeClassifier(max_depth=4)clf2=KNeighborsClassifier(n_neighbors=7)clf3=SVC(kernel=rbf,probability=True)ec
9、lf=VotingClassifier(estimators=(dt,clf1),(knn,clf2),(svc,clf3),voting=soft,weights=3,2,1)#训练学习器clf1.fit(X,y)clf2.fit(X,y)clf3.fit(X,y)eclf.fit(X,y)7.2 Voting#生成数据网格x_min,x_max=X:,0.min()-1,X:,0.max()+1y_min,y_max=X:,1.min()-1,X:,1.max()+1xx,yy=np.meshgrid(np.arange(x_min,x_max,0.1),np.arange(y_min,y
10、_max,0.1)#绘图f,axarr=plt.subplots(2,2,sharex=col,sharey=row,figsize=(10,8)for idx,clf,tt in zip(product(0,1,0,1),clf1,clf2,clf3,eclf,Decision Tree(depth=4),KNN(k=7),Kernel SVM,Soft Voting):Z=clf.predict(np.c_xx.ravel(),yy.ravel()Z=Z.reshape(xx.shape)7.2 Voting axarridx0,idx1.contourf(xx,yy,Z,alpha=0.
11、4)axarridx0,idx1.scatter(X:,0,X:,1,c=y,s=20,edgecolor=k)axarridx0,idx1.set_title(tt)plt.show()7.2 Votingn 首先构造三个不同的基学习器:决策树、k近邻和支持向量机,然后用软投票(soft voting)策略,将上述三个基学习器集成为一个新的学习器,使用sklearn 中的鸢尾花数据集训练上述各个学习器。7.2 Votingn 运行结果如下7.3 Bagging7.3 Baggingn 一个学习算法是稳定的,如果该算法在相同训练数据集的再抽样版本上多次运行导致具有高正相关性的学习器。决策树和多
12、层感知器是不稳定的,最近邻算法是稳定的,但是精简的最近邻算法是不稳定的。n一个学习算法是不稳定的,如果训练集的微小变化引起由其训练得到的学习器的很大差异,即学习算法具有高方差。nBagging的组合策略是:分类任务采取简单投票法,即每个基学习器一票;回归任务使用简单平均法,即每个基学习器的预测值取平均值。nsklearn提供了典型的Bagging分类器,其原型如下:class sklearn.ensemble.BaggingClassifier(base_estimator=None,n_estimators=10,max_samples=1.0,max_features=1.0,bootst
13、rap=True,bootstrap_features=False,oob_score=False,warm_start=False,n_jobs=1,random_state=None,verbose=0)source7.3 Baggingn 主要参数l base_estimator:对象,默认值为None。如果是None,则默认的基学习器是决策树。l n_estimator:整型,默认值为10。基学习器的数量。l max_samples:整型或浮点型,默认值为1.0。从X中抽取指定的样本数来训练每个基学习器。如果是整型,抽取max_samples个样本作为训练数据集;否则,抽取max_sa
14、mples*X.shape0样本作为训练数据集。l max_features:整型或浮点型,默认值为1.0。从X中抽取指定的属性数量来训练每个基学习器。如果是整型,抽取max_featuress个属性;否则,抽取max_features*X.shape1属性。l warm_start:布尔值,默认值为False。当设置为True时,训练是在前一次集成学习的基础上,继续训练并添加更多基学习器到集成学习中来,否则,只是训练一个全新的集成学习。7.3 Baggingn采取与前一节示例中一样的基学习器,分别构造三个不同的基学习器以及它们相对应的挂袋集成学习器,然后使用sklearn中的鸢尾花数据集训练
15、上述各个学习器。挂袋法比单个基学习器的效果稍好一点。7.3 Baggingn 随机森林(Random Froest,RF)的基学习器是决策树。对于一个输入样本,N棵决策树就会有N个分类结果,随机森林集成了所有分类投票结果,将投票次数最多的类别作为最终的输出。(1)抽样产生每棵决策树的训练数据集。RF采用Bagging抽样技术从原始训练数据集中产生N个训练子集。(2)构建N棵决策树(基学习器)。每一个训练子集生成一棵决策树,从而产生N棵决策树形成森林,每棵决策树不需要剪枝处理。(3)生成随机森林,以简单多数的原则决定该样本是哪个类别。使用N棵决策树对测试样本进行分类,随机森林将每棵子树的结果汇总
16、,以简单多数的原则决定该样本是哪个类别。n 随机森林的生成过程如下:7.3 Bagging(4)从原始训练集中随机产生N个训练子集用于随机生成N颗决策树。(5)在构建具体的决策树过程中随机地选择m个属性,随机森林的生成过程中这两个随机性,可以确保不会出现过拟合(over-fitting)。n sklearn提供了RF分类器,其原型如下:class sklearn.ensemble.RandomForestClassifier(n_estimators=10,criterion=gini,max_depth=None,min_samples_split=2,min_samples_leaf=1,
17、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=1,random_state=None,verbose=0,warm_start=False,class_weight=None)7.4 Boostingn 1990年,R.Schapire给出了肯定的答案,通过组合三个弱学习器实现了一个强学习器,促进了提升(Boosting)算法的极大发
18、展。Boosting算法分为如下两个阶段。n 训练阶段。给定一个大训练集X,随机地将其划分为3个子集X=X1,X2,X3。首先,使用X1训练的d1;接着,提取X2并将它作为d1的输入,将d1错误分类的所有实例以及X2中被d1正确分类的一些实例一起作为d2的训练集;然后,提取X3并将它输入给d1和d2,其中用d1和d2输出不一致的实例作为d3的训练集。n 检验阶段。给定一个实例,首先将其提供给d1和d2,如果二者输出一致,这就是输出结果,否则d3的输出作为输出结果。7.4 Boosting7.4.1 AdaBoostn 尽管Boosting非常成功,但是需要一个非常大的训练样本集,将样本集一分为
展开阅读全文