集成学习一Boosting
http://blog.csdn.net/loveitlovelife/article/details/79392187
集成学习二Bagging与Random Forest
http://blog.csdn.net/loveitlovelife/article/details/79397739
优点:
1.提高泛化性能
2.降低进入局部最小点的风险
3.扩大假设空间
平均法:简单平均、加权平均
适用范围:
+规模大的集成,学习的权重较多,加权平均法易导致过拟合
+个体学习器性能相差较大时宜使用加权平均法,相近用简单平均法。
投票法:
1.绝对多数投票法:某标记超过半数;
2.相对多数投票法:预测为得票最多的标记,若同时有多个标记的票最高,则从中随机选取一个。
3.加权投票法:提供了预测结果,与加权平均法类似。
学习法
Stacking描述:先从初始数据集中训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在新数据集中,初级学习器的输出被当做样例输入特征,初始样本的标记仍被当做样例标记。
算法步骤:
输入:训练集 D=(x1,y1),(x2,y2),...,(xm,ym) D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) ;
初级学习算法: Λ1,Λ2,...,ΛT; Λ 1 , Λ 2 , . . . , Λ T ;
次级学习算法: Λ Λ
过程:
1、 for t=1,2,...,T do f o r t = 1 , 2 , . . . , T d o
2、 ht=Λt(D); h t = Λ t ( D ) ;
3、 end for e n d f o r
4、 D‘=∅ D ‘ = ∅
5、 for i=1,2,...,m do f o r i = 1 , 2 , . . . , m d o
6、 for t=1,2,...,T do f o r t = 1 , 2 , . . . , T d o
7、 zit=ht(xi); z i t = h t ( x i ) ;
8、 endfor e n d f o r
9、 D′=D′⋃((zi1,zi2,...,ziT),yi); D ′ = D ′ ⋃ ( ( z i 1 , z i 2 , . . . , z i T ) , y i ) ;
10、 endfor e n d f o r
11、 h′=Λ(D′); h ′ = Λ ( D ′ ) ;
输出: H(x)=h′(h1(x),h2(x),...,hT(x)) H ( x ) = h ′ ( h 1 ( x ) , h 2 ( x ) , . . . , h T ( x ) )
+通过交叉验证产生次级学习器的训练样本;
+将初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归作为次基学习算法效果较好;
1.误差-分歧分解:
个体学习器和集成学习器的平方误差分别为:
结论:个体学习器准确性越高,多样性越大,则集成性能越好
2.多样性度量
考虑个体分类器的两两相似/不相似性
对于二分类问题,分类器 hi和hj h i 和 h j 的预测结果列联表为:
a表示 hi和hj h i 和 h j 均预测为正类的样本数目;b、c、d含义由此类推;a+b+c+d=m,则有如下多样性度量方法:
+不合度量 disij=b+cm,值域为[0,1],其越大多样性越大 d i s i j = b + c m , 值 域 为 [ 0 , 1 ] , 其 越 大 多 样 性 越 大
+相关系数 ρij=ad−bc(a+b)(a+c)(c+d)(b+d)√,值域为[−1,1],若hi与hj无关,则值为0;若正相关则为正,否则为负 ρ i j = a d − b c ( a + b ) ( a + c ) ( c + d ) ( b + d ) , 值 域 为 [ − 1 , 1 ] , 若 h i 与 h j 无 关 , 则 值 为 0 ; 若 正 相 关 则 为 正 , 否 则 为 负
+Q-统计量 Qij=ad−bcad+bc,Qij与相关系数ρij符号相同。 Q i j = a d − b c a d + b c , Q i j 与 相 关 系 数 ρ i j 符 号 相 同 。
+ κ κ -统计量 κ=p1−p21−p2, κ = p 1 − p 2 1 − p 2 , 其中 p1是两个分类器取得一致的概率;p2 p 1 是 两 个 分 类 器 取 得 一 致 的 概 率 ; p 2 是两个分类器偶然达成一致的概率,他们可有数据集D估算:
3多样性增强
+数据样本扰动:基于采样法产生不同数据子集,利用不同子集训练出不同的个体学习器,例如Bagging自助采样;AdaBoost序列采样。
此类扰动方法对“不稳定基学习器”很有效例如:决策树、神经网络
+输入属性扰动:通过对初始属性中提取“子空间(属性子集)”,在不同的空间中训练个体学习器
适用算法:线性学习器、支持向量机、朴素贝叶斯、k-近邻学习器等稳定基学习器,此类扰动可以产生大量多样性的个体,且节省开销时间
+输出表示扰动:对输出表示进行操纵以增强多样性,可对训练样本的类标记稍作变动,如“翻转法”、“ECOC编码法”
+算法参数扰动:设置算法的参数,例如神经网络的隐层神经元数、连接权值等,使用单一学习器时通常需要使用交叉验证方法来确定参数值。
Boosting主要关注降低偏差,而Bagging主要关注降低方差