1. Adaboost的基本思路?
通过给样本加权实现来对训练样本的分布进行调整。原来的优化目标是想最小化错误率
e
(
h
)
:
=
1
m
∑
i
=
0
m
I
(
x
i
≠
y
i
)
e(h):=\frac{1}{m}\sum_{i=0}^{m}\mathbb{I}(x_i\neq y_i)
e(h):=m1i=0∑mI(xi=yi)
但Adaboost的思路就是最小化加权
w
t
,
i
w_{t,i}
wt,i形式的错误率:
e
(
h
t
,
w
t
)
:
=
∑
i
=
0
m
w
t
,
i
I
(
h
t
(
x
i
)
≠
y
i
)
∑
i
=
0
m
w
t
,
i
e(h_t,w_t):=\frac{\sum_{i=0}^{m}w_{t,i} \mathbb{I}(h_t(x_i) \neq y_i)}{\sum_{i=0}^{m}w_{t,i}}
e(ht,wt):=∑i=0mwt,i∑i=0mwt,iI(ht(xi)=yi)
其中
w
t
,
i
w_{t,i}
wt,i 是在第
t
t
t 轮 (对应第
t
t
t 个基学习器) 第
i
i
i 个样本的权重。
2、Adaboost与GBDT的联系与区别?
二者都属于boosting提升方法,只是损失函数不同:
Adaboost 是通过提升错分数据点的权重来修正模型
而GBDT每一次的计算都为了减少上一次的残差,进而在残差减少(负梯度)的方向上建立一个新的模型。
3、Boosting与 Bagging的区别,以及如何提升模型的精度?
区别
集成学习,是指通过构建多个分类器(弱分类器)对数据集进行预测,然后用某种策略将多个分类器预测的结果集成起来,作为最终预测结果。集成学习根据各个弱分类器之间有无依赖关系,分为Boosting和Bagging两大流派:
- Boosting流派,各分类器之间有依赖关系,必须串行,如AdaBoost、GBDT(Gradient Boosting Decision Tree)、XGBoost。
- Bagging流派,各分类器之间没有依赖关系,可各自并行,如随机森林。bagging方法本质上,是通过Bootstrap 的方式对全样本数据集进行抽样得到抽样子集,对不同的子集使用同一种基本模型进行拟合,然后投票得出最终的预测。
提升模型精度
集成模型本身即可提高精度了,因此要进一步提升精度,要在数据和特征工程上做工作。
Xgboost学习笔记:
https://app.yinxiang.com/fx/fd356935-df59-4247-a40e-9bc2c990c915
4、使用基本分类模型和Boosting提升的模型,并画出他们的决策边界
待补充!!!
5、尝试使用Xgboost模型完成一个具体的分类任务,并进行调参。
待补充!!!