Ensemble learning
目的:让机器学习训练效果更好
Bagging:训练各个分类器取平均
f
(
x
)
=
1
M
∑
m
=
1
M
f
m
(
x
)
f(x)=\frac{1}{M}\sum_{m=1}^{M}f_m(x)
f(x)=M1m=1∑Mfm(x)
Boosting:从弱学习器开始加强,通过加权进行训练
F
m
=
F
m
−
1
+
a
r
g
m
i
n
h
∑
i
=
1
n
L
(
y
i
,
F
m
−
1
(
x
i
)
+
h
(
x
i
)
)
F_m=F_{m-1}+arg\underset{h}{min}\sum_{i=1}^{n}L(y_i,F_{m-1}(x_i)+h(x_i))
Fm=Fm−1+arghmini=1∑nL(yi,Fm−1(xi)+h(xi))(加入一棵树,要比原来的强)
Stacking:聚合多个分类或回归模型(可以分阶段来做)
Bagging模型
全称:boostrap aggregation(说白了就是并行训练一堆分类器)
最典型的代表:随机森林
随机:数据采样随机,特征选择随机(保证泛化能力)
森林:很多个决策树并行放在一起
随机森林优势:它能够处理很高维度(feature很多)的数据,并且不用做特征选择;在训练完后它能给出哪些feature比较重要;容易做成并行化方法,速度比较快;可以进行可视化展示,便于分析。
Boosting模型
典型代表:AdaBoost、Xgboost
Adaboost会根据前一次的分类效果调整数据权重
解释:如果某一个数据在这次分错了,那么在下一次就会给它更大的权重
最终结果:每个分类器根据自身的准确性来确定各自的权重在各自合体
Stacking模型
堆叠:很暴力,拿来一堆分类器直接上
可以堆叠各种各样的分类器(KNN,SVM,PF等)
分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练