集成学习在数学建模中的应用
集成学习在数学建模中的应用
- 一、集成学习概述
- (一)基知
- (二)相关术语
- (三)集成学习为何能提高性能?
- (四)集成学习方法
- 二、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_{t=1}^{r}E_{x}[\varepsilon_{t}(X)^{2}]\leq e(f)\leq\sum_{t=1}^{r}E_{x}[\varepsilon_{t}(X)^{2}] T1t=1∑rEx[εt(X)2]≤e(f)≤t=1∑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],预测效果弱于均值预测,组合预测结果后,集成学习器的预测误差更大
集成好于单个分类器的条件:
- 弱分类器独立(难满足)
- 弱分类器应好于随机猜测分类器,即 误差
三、Boost方法
(一)基知
提升(Boosting)方法是一种常用的统计学习方法,是一种将弱学习器转换为强学习器的迭代方法。在分类问题中, AdaBoost通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提升分类的性能。
代表性算法AdaBoost,是1995年由Freund和Schapire提出的。
(二)Boosting如何获得多个弱分类器?
- 设X是样本集,yx 是样本的真实的目标值,对于T个不同的模型,第 t 个模型的期望平方误差是: