机器学习及应用 第7章 集成学习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,用dj表示基学习器Mj在给 (注:若输入向量存在
多种表示 上的预测
,也就是说每个基学习器的输入各不相同,那么Mj在输入xj ),那么最终的预测值可由各个基学习器的预测计算得出:
(7.1)
若每个基学习器有K个输出,即基学习器Mj的输出 当它们组合时,得到预测值
L
yi wjd ji j 1
L
wj ≥ 0 wj 1 j 1
7.2 Voting
组合函数是投票法
组合函数还可以是取平均值的简单投票法(Simple Voting)、中位数(Median)、最 大值(Maxmize)等,如图7-1所示。
d1
w1
f()
x
d2
w2
+
y
...
wL
Baidu Nhomakorabea
dL
图7-1 多个基学习器通过投票方法组合而成的集成学习方式示意图
class sklearn.ensemble.VotingClassifier(estimators, voting=’hard’, weights=None, n_jobs=1, flatten_transform=None) 主要参数如下
• estimators:指定的估计器,该估计器必须有.fit方法进行训练。 • voting:字符串,可选项为“soft”和“hard”,其默认值为“hard”。如果
每个学习器都有否决权
7.2 Voting
假定dj是独立同分布的,其期望值为E(dj),方差为Var(dj),那么 当wj=1/L时,输出的期望值和方差分别为:
××
(7.4)
Var
Var
Var
Var
(7.5)
从上述推导过程可以看到,期望值没有改变,因而偏倚也不会改变。但 是方差随着独立投票数量的增加而下降。对于一般情况,有
7.1 引言
7.1.2 集成学习的组成
集成学习主要包括三个部分:
• 个体的生成方法 • 个体学习器(基学习器) • 结论的合(集)成方法。
集成学习需要很好地解决如下两个问题。
• (1)如何通过有效地训练,获得若干个基学习器? • (2)如何选择一个组合策略,将这些基学习器集合成为一个强学习器?
voting取值“hard”,那么使用多数规则表决预测的类标签。否则,基于 各个基学习器的预测概率之和预测类标签。
• weights:数组,大小等于n_classifiers(基学习器的数量),缺省值为
None。权值序列表示预测类标签出现(hard voting),或者平均化之 前的类概率(soft voting)。
根据集成学习的用途不同,结论合成的方法也各不相同。
• 集成的输出通常由各个体学习器的输出投票产生。通常采用绝对多数投票法
或相对多数投票法。
• 当集成学习用于回归估计时,集成的输出通常由各学习器的输出通过简单平
均或加权平均产生。
7.2 Voting
假设某机器学习模型有L个基学习器 定的任意输入向量x上的估计值,即
集成学习中,弱学习器(Weak Learner)是错误概率小于0.5的学习器;而强学习 器(Strong Learner)则具有任意小的错误概率。
集成学习主要包括三个部分:个体的生成方法、个体学习器(基学习器)和结论的 合(集)成方法。
集成学习中的基学习器可以是同质的“弱学习器”,也可以是异质的“弱学习器”。 目前,同质个体学习器的应用最为广泛,同质个体学习器使用最多的模型是CART 决策树和神经网络。
7.2 Voting
对于回归,可以使用简单平均、加权平均或中位数来融合基回归器的输出。中
位数对噪声比平均值更加棒。
分类器组合函数
规则
组合函数
说明
平均和
=
相对多数表决,直观
加权和
=
,
考虑学习器的投票权重
中位数 最小值 最大值 乘积
median min
max
对离群点的鲁棒性好 悲观估计 乐观估计
7.2 Voting
示例
from itertools import product import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.ensemble import VotingClassifier # 加载鸢尾花数据集 iris = datasets.load_iris() X = iris.data[:, [0, 2]] y = iris.target
7.1 引言
7.1.3 同质个体学习器的分类及算法
同质个体学习器按照个体学习器之间是否存在依赖关系又可以分为两 类:
• 个体学习器之间存在着强依赖关系其代表算法是Boosting算法; • 个体学习器之间不存在强依赖关系,可以并行生成这些个体学习器,其代表
算法是Bagging和随机森林(Random Forest)算法。
第07章 集成学习
学习目标
集成学习 投票法
学 习挂目袋标法
提升法
7.1 引言
7.1.1 集成学习的概念
集成学习(Ensemble Learning)是指利用多个独立的基学习器来进行学习,组合 某输入样例在各个基学习器上的输出,并由他们按照某种策略共同决定输出。
集成学习的基本思想是先通过一定的规则生成一定数量的基学习器(Base Estimator),再采用某种集成策略将这些基学习器的预测结果组合起来,形成最 终的结论。
Var
Var
Var
Cov
(7.6)
可以看出,如果学习器是正相关的,则方差增加。因此,在实践中, 需要使用不同算法和输入特征来减少其正相关性。如果投票者不独立, 但是负相关的,那么进一步降低方差也是可能的。
7.2 Voting
sklearn提供了一种软投票/多数规则分类器(Soft Voting/Majority Rule Classifier),其原型如下:
7.2 Voting
# 构造三个基学习器和一个集成学习器 clf1 = DecisionTreeClassifier(max_depth=4) clf2 = KNeighborsClassifier(n_neighbors=7) clf3 = SVC(kernel='rbf', probability=True) eclf = VotingClassifier(estimators=[('dt', clf1), ('knn', clf2), ('svc', clf3)],