做巧克力的网站,威海做网站的公司,打扑克的直播软件下载,基于构件的软件开发流程集成学习在数学建模中的应用 一、集成学习概述#xff08;一#xff09;基知#xff08;二#xff09;相关术语#xff08;三#xff09;集成学习为何能提高性能#xff1f;#xff08;四#xff09;集成学习方法 二、Bagging方法#xff08;一#xff09;装袋… 集成学习在数学建模中的应用 一、集成学习概述一基知二相关术语三集成学习为何能提高性能四集成学习方法 二、Bagging方法一装袋Bagging方法二特点三数据集划分的其他方法四参数设置 三、Boost方法一基知二Boosting如何获得多个弱分类器 四、AdaBoost算法一基知二弱分类器的权重三样本集的权重四弱分类器的组合五AdaBoost算法六实例六特点七参数设置 五、Bagging和Boost的区别六、模型的组合方法一怎样组合多个弱分类器二Averaging方法七Stacking方法1原理2基础训练过程3交叉训练4代码示例 一、集成学习概述
一基知 分类器对数据集依赖强数据集纷杂很难找到适用所有情况的分类器。比如训练任务和目标任务的数据分布不一致数据过少等。 集成学习(Ensemble Learning) 是通过某种策略将多个模型集成起来通过群体决策来提高决策准确率。
集成学习中的两个核心问题是 (1) 如何获得多个模型(2) 如何集成多个模型?
二相关术语 三集成学习为何能提高性能
1从模型的期望误差分析
设X是样本集yx 是样本的真实的目标值对于T个不同的模型第 t 个模型的期望平方误差是 e ( f t ) E x [ ( f t ( X ) − y x ) 2 ] E x [ ε t ( X ) 2 ] e(f_t)E_x[(f_t(X)-y_x)^2]E_x[\varepsilon_t(X)^2] e(ft)Ex[(ft(X)−yx)2]Ex[εt(X)2]集成模型 f 的期望平方误差 e(f) 满足 1 T ∑ t 1 r E x [ ε t ( X ) 2 ] ≤ e ( f ) ≤ ∑ t 1 r E x [ ε t ( X ) 2 ] \frac{1}{T}\sum_{t1}^{r}E_{x}[\varepsilon_{t}(X)^{2}]\leq e(f)\leq\sum_{t1}^{r}E_{x}[\varepsilon_{t}(X)^{2}] T1t1∑rEx[εt(X)2]≤e(f)≤t1∑rEx[εt(X)2]投票规则的集成模型的期望错误大等于所有模型的平均期望错误的1/M小于等于所有模型的平均期望错误 2从模型的泛化误差分析 分类问题 f i ( X ) 0.5 f_i(\mathbf{X}){}0.5 fi(X)0.5大部分样本错误分类投票后集成学习器的错误率更高。 回归问题 E [ ( f i ( X ) − y ) 2 ] E [ ( y ‾ − y ) 2 ] \mathbb{E}[(f_i(\mathbb{X})-y)^2]\mathbb{E}[(\overline{y}-y)^2] E[(fi(X)−y)2]E[(y−y)2]预测效果弱于均值预测组合预测结果后集成学习器的预测误差更大 集成好于单个分类器的条件 弱分类器独立难满足弱分类器应好于随机猜测分类器即 误差0.5容易满足 3直观理解集成方法对预测能力的提升 提升的优势 假设有25个弱分类器且每个弱分类器的错误率均为0.35采用少数服从多数的提升方式只有当超过13个弱分类器都对样本x错误分类才会导致x被误分类。 e e n s e m b l e ∑ i 13 25 C 25 i ( 0.35 ) i ( 1 − 0.35 ) 25 − i 0.06 e_{ ens em ble} \sum_{i13}^{25}C_{ 25}^{ i}(0.35)^{i}(1-0.35)^{25-i}0.06 eensemblei13∑25C25i(0.35)i(1−0.35)25−i0.06 误分类率降低 四集成学习方法 待解决的问题
怎样获得不同的弱分类器 Bagging 和 Boosting 方法如何将多个弱分类器组合成一个强分类器 投票法、加权平均、Stacking 二、Bagging方法
一装袋Bagging方法
1Bagging方法是基于训练集的划分 (又被称为自举汇聚法Bootstrap aggregating)对原始数据进行自助采样(bootstrap samples)形成T个数据集训练每个数据集获得T个弱模型用投票法或加权平均生成集成学习模型。
自助采样有放回采样是重采样的一种。
2实例 已知原数据集有10个样本利用装袋法产生预测模型。 分别计算每个划分点根据信息熵或Gini系数发现分裂点0.35或0.75能产生最好的分类结果故采用0.35作为分类标准。决策树单个分类器准确率最高是70%。 信息熵 E n t r o p y − ∑ i 1 c p ( i ) log p ( i ) Entropy -\sum_{\mathrm{i}1}^{c} p(\mathrm{i}) \log p(i) Entropy−i1∑cp(i)logp(i) Gini系数 G i n i ( D ) 1 − ∑ i 1 c p ( i ) 2 Gini(D) 1 - \sum_{i1}^{c} p(i)^{2} Gini(D)1−i1∑cp(i)2 G i n i ( D , a ) ∑ v 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini(D,a)\sum_{v1}^V\frac{|D_v|}{|D|}\mathrm{~Gini}\left(D_v\right) Gini(D,a)v1∑V∣D∣∣Dv∣ Gini(Dv) 假设有c个类样本点属于第 i 类的概率为 p ( i ) p(i) p(i)。信息熵和Gini系数都是用于衡量不确定性和多样性的重要指标它们的系数越小越好。 计算步骤 Step1: 以 x 0.35 作为划分点产生子集 {0.1, 0.2, 0.3} 和 {0.4 ~ 1} Gini(x0.35) (3/10) * [1-02-12] (7/10) * [1-(4/7)2-(3/7)2] 24/49类似地 Gini(x0.75)(7/10) * [1-(4/7)2-(3/7)2] (3/10) * [1-02-12] 24/49 Step2: 重复采样10轮每轮获得分类器准确率在70% Step3: 多数表决 决定样本的最终类别10个样本均正确分类。 装袋通过降低弱分类器方差改变了泛化误差。 二特点
结构简单表现不错。通过随机改变训练集的分布产生新的训练子集。某些数据对象被多次采样对于特定的子空间弱学习器会具有很高的分类精度。弱学习器预测能力越强且它们之间的差异越大集成模型效果越好。Bagging方法不偏好任何基学习器可以降低模型的方差对不稳定学习算法非常有效。适合小算例集在大规模训练集上效果会下降(参见改进模型)。
三数据集划分的其他方法
1依据数据或特征对原始训练数据划分形成多个数据集。如随机森林(Random Forest) 方法。 2依据数据的类标号对原始训练数据划分形成迭代的二分类问题。如错误-纠正输出编码方法。 3依据算法模型的变化获得不同的弱学习模型。如改变神经网络结构或算法添加随机性。
四参数设置 n_estimators基学习器个数。criterion分裂标准squared_error均方差均方差等价于特征的方差减少和最小化L2正则项。friedman_mse费尔德曼均方误差。max_depth树的最大深度防止过拟合。min_samples_split内部节点再划分所需要的最少样本数限制是否继续分裂。min_samples_leaf叶子节点的最少样本数用于剪枝。min_weight_fraction_leaf叶子节点所有样本权重的最小值。如果小于这个权重那么和它的兄弟节点一起被剪枝。max_features: Noneauto考虑所有特征log2最多考虑 log2N 个特征sqrt最多考虑平方根个特征整数表示特征的绝对数浮点数表示考虑的特征个数的百分比。节省建树代价。max_leaf_nodes树的最大叶子结点数防止过拟合。min_impurity_decrease结点分裂的纯度减少的最小值限制是否继续分裂。min_samples_leaf叶子节点的最少样本数用于剪枝。bootstrap布尔值是否使用bootstrap采样。false全部数据参与训练每个棵树。oob_score布尔值是否采用袋外样本(out-of-bag sample)来评估模型的好坏。与交叉验证类似可以理解为验证集。当bootstrap为真时使用。oob_score是单颗决策树返回的在验证集上的R2值。n_jobs并行计算作业数量。 三、Boost方法
一基知
提升(Boosting)方法是一种常用的统计学习方法是一种将弱学习器转换为强学习器的迭代方法。在分类问题中 AdaBoost通过改变训练样本的权重学习多个分类器并将这些分类器进行线性组合提升分类的性能。
代表性算法AdaBoost是1995年由Freund和Schapire提出的。
二Boosting如何获得多个弱分类器
从原数据集中抽样样本组成训练集产生弱学习器去除已正确分类的样本保留误分类样本从原数据集中再抽取样本与上一轮的误分类样本构成新的训练集重复(2)-(3)步骤直至获得T个分类器;组合弱学习器形成强学习器。 四、AdaBoost算法
一基知 问题1 怎样获得多个弱分类器 AdaBoost算法提高那些在前一轮弱分类器错误分类的样本的权值降低那些被正确分类样本的权值。问题2 如何将多个弱分类器组合成一个强分类器 AdaBoost算法采用加权表决的方法。具体地加大分类误差率小的弱分类器的权值使其在表决中起到较大的作用。 f ( x ) α 1 f 1 ( x ) α 2 f 2 ( x ) . . . . . . α T f T ( x ) f(x){}\alpha_{1}f_{1}(x){}\alpha_{2}f_{2}(x){}......\alpha_{\mathrm{T}}f_{\mathrm{T}}(x) f(x)α1f1(x)α2f2(x)......αTfT(x)
二弱分类器的权重
设训练集 D { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } , y i ∈ { − 1 , 1 } D\{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\}, y_{i}\in\{-1,1\} D{(x1,y1),(x2,y2),...,(xN,yN)},yi∈{−1,1}产生T个弱分类器其中
第 j 个分类器 fj 的错误率定义为 ε j 1 N [ ∑ i 1 N w i I ( f j ( x i ) ≠ y i ) ] , j 1 , 2 , . . . , T \varepsilon_{j}\frac{1}{N}[\sum_{i1}^{N}w_{i}I(f_{j}(x_{i})\neq y_{i})], j1,2,...,T εjN1[i1∑NwiI(fj(xi)yi)],j1,2,...,T 弱分类器的误分类率 εj 是错误分类样本的加权平均N是样本数wi是第 i 个样本权重指示函数 I(•) 等于0或1。wi是归一化后的值。
弱分类器 fj 的重要性(权重)定义为 α j 1 2 l n ( 1 − ε j ε j ) , j 1 , 2 , . . . , T \alpha_{ j}\frac{1}{2}\mathbf{ln} (\frac{1-\varepsilon_{ j}}{\varepsilon_{ j}}), j1,2,...,T αj21ln(εj1−εj),j1,2,...,T 若 α j \alpha_{j} αj 0.5αj 0 若 α j \alpha_{j} αj 0.5 且 α j \alpha_{j} αj→ 0 α j \alpha_{j} αj是一个很大的正值 若 α j \alpha_{j} αj 0.5 且 α j \alpha_{j} αj→ 1 α j \alpha_{j} αj是一个很大的负值 结论误差大的分类器在预测结果表决时权重小。
三样本集的权重
初始样本权重设为 w 1 i 1 N , i 1... N w_{_{1i}}\frac{1}{N},i1...N w1iN1,i1...N样本权重更新操作 Z j ∑ i 1 N w j i exp ( − α j y i f j ( x i ) ) Z_{ j}\sum_{i1}^{N}w_{ ji}\exp{(-\alpha_{ j}y_{i}f_{ j}(x_{ i}))} Zj∑i1Nwjiexp(−αjyifj(xi)) w j 1 , i w j i Z j exp ( − α j y i f j ( x i ) ) , i 1... N , j 1 , . . . , T ⇒ w j 1 , i { exp ( − α j ) Z j w j i , y i f j ( x i ) exp ( α j ) Z j w j i , y i ≠ f j ( x i ) , α j 1 2 ln 1 − ε j ε j w_{j1, i}\frac{w_{ji}}{Z_{j}}\exp(-\alpha_{j}y_{i}f_{j}(x_{i})),i1...N ,j1,...,T\\\Rightarrow w_{j1, i}\begin{cases}\frac{\exp(-\alpha_{j})}{Z_{j}}w_{ji}, y_{i}f_{j}(x_{i})\\\frac{\exp(\alpha_{j})}{Z_{j}}w_{ji}, y_{i}\neq f_{j}(x_{i})\end{cases}, \alpha_{j}\frac{1}{2}\ln\frac{1-\varepsilon_{j}}{\varepsilon_{j}} wj1,iZjwjiexp(−αjyifj(xi)),i1...N,j1,...,T⇒wj1,i{Zjexp(−αj)wji,yifj(xi)Zjexp(αj)wji,yifj(xi),αj21lnεj1−εj w j 1 , i w_{j1,i} wj1,i是第 i 个样本在 j1 个学习器中的权重。 误分类的样本的权重在下一次学习中起到了更大的作用且权重是指数级更新。
四弱分类器的组合
强分类器是T个弱分类器 f j f_{j} fj的线性组合定义为 C ∗ ( x ) s i g n ( f ( x ) ) s i g n ( ∑ j 1 r α j f j ( x ) ) C^*(x)sign(f(x))sign(\sum_{j1}^r\alpha_jf_j(x)) C∗(x)sign(f(x))sign(j1∑rαjfj(x)) x是待分类对象 f j f_{j} fj是第 j 个弱分类器C* 是分类结果。 对于x分类结果C*(x)是T个弱分类器分类结果的加权表决。 当f(x)为负数x被分类为-1。 当f(x)为正数x被分类为1。 五AdaBoost算法
输入训练集 D { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } , y i ∈ { − 1 , 1 } D\{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\}, y_{i}\in\{-1,1\} D{(x1,y1),(x2,y2),...,(xN,yN)},yi∈{−1,1}T个基学习器。 输出最终分类器 f ( x ) f(x) f(x)。
初始化训练数据的权值分布 D 1 { w 11 , w 12 , w 1 i , . . . , w 1 N } , w 1 i 1 / N D_1\{w_{11} ,w_{12},w_{1i},...,w_{1N}\},w_{1i}1/N D1{w11,w12,w1i,...,w1N},w1i1/N F o r j 1...... T \mathrm{For} j1......\mathrm{T} Forj1......T使用具有权值分布的训练集Dj进行训练得到基分类器 f j ( x ) f_{j}\left(x\right) fj(x) X → { − 1 , 1 } X\to\{-1,1\} X→{−1,1} X→{-11}计算 f j ( x ) f_{j}\left(x\right) fj(x)的分类误差率 ε j 1 N [ ∑ i 1 N w i I ( f j ( x i ) ≠ y i ) ] \varepsilon_{j}\frac{1}{N}[\sum_{i1}^{N}w_{i}I(f_{j}(x_{i})\neq y_{i})] εjN1[i1∑NwiI(fj(xi)yi)]计算 f j ( x ) f_{j}\left(x\right) fj(x)的系数 α j 1 2 l n ( 1 − ε j ε j ) \alpha_{j}\frac{1}{2}\mathbf{ln}(\frac{1-\varepsilon_{j}}{\varepsilon_{j}}) αj21ln(εj1−εj)更新训练数据集的权重分布 w j 1 , i w j i Z e x p ( − α j y i f j ( x i ) ) w_{_{j1, i}}\frac{w_{_{ji}}}{Z}\mathbf{e} \mathbf{x} \mathbf{p}(-\alpha_{_j}y_{_i}f_{_j}(x_{_i})) wj1,iZwjiexp(−αjyifj(xi))由基分类器的线性组合获得强分类器 f ( x ) f\left(x\right) f(x)
六实例 初始化权重分布 w 1 i 0.1 , i 1 , 2 , … , 10 \mathrm{w_{1i}}0.1,\mathrm{i}1,2,\ldots,10 w1i0.1,i1,2,…,10 第1轮迭代 ①产生第1个弱分类器 j 1在D1数据集上阈值取2.5分类误差率最小 ⇒ f 1 ( x ) { 1 , x 2.5 − 1 , x 2.5 \Rightarrow f_1(x)\begin{cases} 1, x2.5\\-1, x2.5\end{cases} ⇒f1(x){1,x2.5−1,x2.5 ②f1在D1的上的误差 e 1 0.1 × 3 0.3 e_10.1\times30.3 e10.1×30.3 f 0.4236 f 1 ( x ) f0.4236f_1(x) f0.4236f1(x)对D1预测3个样本误分类 ③f1的权重 α 1 1 2 l n 1 − e 1 e 1 0.4236 \alpha_{_1}\frac{1}{2}\mathbf{ln} \frac{1-e_{_1}}{e_{_1}} 0.4 2 3 6 α121lne11−e10.4236 ④更新样本权重 D 2 ( 0.0715 , 0.0715 , 0.0715 , 0.0715 , 0.0715 , 0.1666 , 0.1666 , 0.1666 , 0.0715 ) D_{2}(0.0715,0.0715,0.0715,0.0715,0.0715,\boxed{0.1666,0.1666,0.1666},0.0715) D2(0.0715,0.0715,0.0715,0.0715,0.0715,0.1666,0.1666,0.1666,0.0715) 第2轮迭代 ①在权值分布为D2的数据集上阈值取8.5分类误差率最小产生第2个弱分类器 ⇒ f 2 ( x ) { 1 , x 8.5 − 1 , x 8.5 \Rightarrow f_2( x )\begin{cases} 1,x 8 .5\\-1,x 8 .5\end{cases} ⇒f2(x){1,−1,x8.5x8.5 ② f2在D2的上的误差 e 2 0.0715 × 3 0.2143 e_20.0715\times30.2143 e20.0715×30.2143 ③ f2的权重 α 2 1 2 l n 1 − e 2 e 2 0.6496 \alpha_{_2}\frac{1}{2}\mathbf{ln}\frac{1-e_{_2}}{e_{_2}}0.6496 α221lne21−e20.6496 f 0.4236 f 1 ( x ) 0.6496 f 2 ( x ) f0.4236f_1(x)0.6496f_2(x) f0.4236f1(x)0.6496f2(x)对D1分类有3个样本误分类 ④更新样本权重 D 2 ( 0.0715 , 0.0715 , 0.0715 , 0.0715 , 0.0715 , 0.0715 , 0.1666 , 0.1666 , 0.1666 , 0.0715 ) D_{2}(0.0715,0.0715,0.0715,0.0715,0.0715,0.0715,\boxed{0.1666,0.1666,0.1666},0.0715) D2(0.0715,0.0715,0.0715,0.0715,0.0715,0.0715,0.1666,0.1666,0.1666,0.0715) 第3轮迭代 ① 在权值分布为D3的数据集上阈值取5.5分类误差率最小产生第3个弱分类器 ⇒ f 3 ( x ) { 1 , x 5.5 − 1 , x 5.5 \Rightarrow f_{3}(x)\begin{cases} 1, x5.5\\-1, x5.5\end{cases} ⇒f3(x){1,x5.5−1,x5.5 ② f3在D3的上的误差 e 3 0.0455 × 4 0.1820 e_30.0455\times40.1820 e30.0455×40.1820 ③ f3的权重 α 3 1 2 l n 1 − e 3 e 3 0.7514 \alpha_{_3}\frac{1}{2}\mathbf{ln} \frac{1-e_{_3}}{e_{_3}} 0.7 5 1 4 α321lne31−e30.7514 ④更新样本权重 D 4 ( 0.125 , 0.125 , 0.125 , 0.102 , 0.102 , 0.102 , 0.065 , 0.065 , 0.065 , 0.125 ) D_{4}(0.125,0.125,0.125,0.102,0.102,0.102,0.065,0.065,0.065,0.125) D4(0.125,0.125,0.125,0.102,0.102,0.102,0.065,0.065,0.065,0.125) f ( x ) 0.4236 f 1 ( x ) 0.6496 f 2 ( x ) 0.7514 f 3 ( x ) f(x)0.4236f_1(x)0.6496f_2(x)0.7514f_3(x) f(x)0.4236f1(x)0.6496f2(x)0.7514f3(x)对D1分类有0个样本误分类生成分类器过程终止。 强分类器是 f ( x ) 0.4236 f 1 ( x ) 0.6496 f 2 ( x ) 0.7514 f 3 ( x ) f(x)0.4236f_1(x)0.6496f_2(x)0.7514f_3(x) f(x)0.4236f1(x)0.6496f2(x)0.7514f3(x) 达到最大迭代次数或误分类率小于指定阈值等条件算法终止。
六特点
优点泛化错误率低易编码可以应用在大部分分类器上无参数调整。缺点对离群点敏感适用数据类型数值型和标称型 提升方法的直观理解 七参数设置 base_estimator基学习器。None表示默认学习器是深度为1的决策树分类器。如果指定其他学习器需给出样本的权重。n_estimators基学习器个数。learning_rate浮点数学习率取值[0,1]。弱学习器的权重缩减的系数。若基学习器个数较大则学习率可适当取大一些的值否则取小一点的值以免错过最优解。algorithmSAMME用对样本集分类效果作为弱学习器权重而SAMME.R使用了对样本集分类的预测概率大小来作为弱学习器权重。SAMME.R迭代一般比SAMME快。random_state随机种子。
另 1. AdaBoostClassifier的对象 estimators_:以列表的形式返回所有的分类器。classes_:类别标签estimator_weights_:每个分类器权重estimator_errors_:每个分类器的错分率与分类器权重相对应。feature_importances_:特征重要性这个参数使用前提是基分类器也支持这个属性。 2. AdaBoostClassifier的方法decision_function(X):返回决策函数值比如svm中的决策距离fit(X,Y):在数据集X,Y上训练模型。get_parms():获取模型参数predict(X):预测数据集X的结果。predict_log_proba(X):预测数据集X的对数概率。predict_proba(X):预测数据集X的概率值。score(X,Y):输出数据集X,Y在模型上的准确率。staged_decision_function(X):返回每个基分类器的决策函数值staged_predict(X):返回每个基分类器的预测数据集X的结果。 .- staged_predict_proba(X):返回每个基分类器的预测数据集X的概率结果。**staged_score(X, Y)**返回每个基分类器的预测准确率 l loss: { ‘linear’,‘square’,‘exponential’ } \text{loss: }\{\text{‘linear’,‘square,‘exponential’}\} loss: {‘linear’,‘square’,‘exponential’}每次迭代时采用的损失函数 五、Bagging和Boost的区别
1. 样本选择 Bagging训练集是在原始集中有放回选取的从原始集中选出的各轮训练集之间是独立的。 Boosting每一轮的训练集不变只是训练集中每个样例 在分类器中的权重发生变化而权值是根据上一轮的分类结果进行调整。 2. 样例权重 Bagging使用均匀取样每个样例的权重相等。 Boosting根据错误率不断调整样例的权值错误率越大则权重越大。 3. 预测模型 Bagging所有弱学习器的权重相等。 Boosting每个弱学习器都有相应的权重对于误差小的学习器会有更大的权重。 4. 并行计算 Bagging各个弱学习器可以并行生成。 Boosting各个弱学习器只能顺序生成因为后一个模型参数需要前一轮模型的结 果。 5. 计算效果 Bagging因为各个训练子集之间是独立的所以降低了弱学习器的方差从而改进了泛化误差。 Boosting因为弱学习器针对错误样本学习所以降低了学习器的偏差从而改进了泛化误差。 六、模型的组合方法
一怎样组合多个弱分类器
多专家组合一种并行结构所有的弱分类器都给出各自的预测结果通过“组合”把这些预测结果转换为最终结果。 eg.投票及其变种、混合专家模型多级组合一种串行结构下一个分类器只在前一个分类器预测不够准的实例上进行训练或检测。 eg. 级联算法
二Averaging方法 算术平均 y ^ 1 n ∑ i 1 n y ^ i \hat{y}\frac{1}{n}\sum_{i1}^{n} \hat{y}_{i} y^n1∑i1ny^i 加权平均 y ^ ∑ i 1 n ( w i y ^ i ) ∑ i 1 n w i \widehat{y} \frac{\sum_{i1}^n(w_i\widehat{y}_i)}{\sum_{i1}^nw_i} y ∑i1nwi∑i1n(wiy i) 几何平均 y ^ ∏ i 1 n y ^ i n \widehat{y}\sqrt[n]{\prod_{i1}^n\widehat{y}_i} y n∏i1ny i 算术平均的应用软投票Soft voting即计算弱分类器预测概率的均值与概率阈值相比获得最终的分类结果原因算术平均对于弱学习器学习结果相近的情况起到的作用不大。解决采用排序平均(Ranking averaging)。 七Stacking方法
1原理
算法通过两层模型结构来实现模型融合。在第一层Level 0训练多个基学习器这些模型可以是同质的也可以是异质的。在第二层Level 1使用元模型或次学习器将第一层所有模型的预测结果融合起来得到最终的预测结果。
2基础训练过程
Step1首先将训练数据集分为两个部分一部分用于训练基础模型也称为基学习器或一级学习器另一部分作为验证集。 Step2使用这些基础模型对验证集做出预测生成预测结果。这些基础模型可以是不同的算法也可以是同一算法的不同参数设置。 Step3将这些基础模型的预测结果作为新的特征与原始特征一起输入到最终的模型也称为元学习器或二级学习器中进行训练。
3交叉训练
交叉训练提高了Stacking融合有效性信息隔离避免重复学习造成过拟合
4代码示例 另 stack_method选择元学习器的训练数据类型‘auto’、‘predict_proba’、‘decision_function’、predict’四个不同取值passthrough特征增强 完