写在前面:
由于想在暑期实习之前多学点东西,所以贪心基本上把Datawhale感兴趣的班都给报了,导致现在压力贼大,所以本文很多复杂公式就用图片代替了,另外也没有真正打代码,等后期课程轻松一点以后再把代码那部分补上。集成学习这一块我之前也稍微总结过,所以这一块也不全是按照群里给的框架写的,请见谅。
文章目录
- 一.集成学习
-
- 1.定义:
- 2.作用:
- 3.基学习器
- 4. 两类集成学习
-
- 4.1 Boosting
- 4.2 Bagging
- 5.结合策略
- 二. 随机森林
-
- 1. 思想
- 2.构建过程
- 3.推广
- 4.优缺点
- 5.应用场景
一.集成学习
1.定义:
对于训练集,同时训练若干个个体学习器,在通过一定的结合策略然后形成一个强学习器。即若干个基学习器 + 结合策略 = 强学习器
2.作用:
不同的模型通常会在测试集上产生不同的误差,如果成员的误差是相互独立的,则集成模型的效果会成员模型好。
3.基学习器
(1)特点:
- 决策树的表达能力和泛化能力可通过剪枝快速调整
- 决策树可以方便的将样本的权重整合到训练过程中(也就是Boosting)
- 决策树是一种不稳定的学习器,即模型容易受数据样本的影响(bagging此时能起作用)
- 基学习器有什么特点?基学习器有什么要求?为什么用决策树来做基学习器?这三个问题的答案都是这个,挺常问的。
- 一般改变权重(即处理机器学习中的不平衡分类问题)都是通过重采样,欠采样和过采样等方法
(2)其他适合的基学习器: 神经网络
4. 两类集成学习
4.1 Boosting
(1)首先从训练集中用初始权重训练一个弱学习器,根据学习误差率表现来更新样本的权重,让学习误差率高的样本权重变高(即重点关注班里的差生,让全班的平均成绩提高),然后调整权重后的训练集在训练一个弱学习器2,如此不断重复,直到弱学习器达到事先指定的数目T结束,最终将T个学习器通过集合策略(一般是加权整合)得到最终结果。
(2)boosting算法是基学习器之间串行生成的,代表算法是 AdaBoost 和 GBDT 两种。
4.2 Bagging
(1)对训练集经过 T 次随机采样得到T个采样集,对于T个采样集独立的训练出 T 个弱学习器,在对 T 个弱学习器通过集合策略得到最终强学习器
.(2)bagging 是基学习器之间并行生成的,代表算法就是随机森林
(3)自助采样法:Bootstrap sampling
对于 m 个样本的训练集,有放回的取样本放入采样集中重复 m 次(即采样集的样本数也是 m 个),则样本在 m 次采样中始终没有被采样的概率为0.368,故每次自助采样只能得到全部样本的63%,即训练每个基学习器时只用了一部分样本。
5.结合策略
(1)平均分(算术平均/加权平均)
(2)投票法
(3)Stacking法:
从初训练器集训练出 T 个不同的初级学习器,将每个初级学习器的输出构建一个次级数据集,该数据集仍然采用初始数据集的标签,根据新的数据集训练次级学习器,进而得到最终预测结果。
为了降低过拟合的风险,一般利用交叉验证的方法使不同的初级学习器在不完全相同的子集上训练。
二. 随机森林
1. 思想
随机森林利用随机的方式将许多决策树组合成一个森林,当有一个新的输入样本进入的时候,让森林中的每一棵决策树分别进行一下判断。对于分类问题,按多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测值的均值决定最终预测结果。
2.构建过程
- 从原始训练集中使用Bootstraping随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集;
- 对于n_tree个训练集,我们分别训练n_tree个决策树模型;
- 对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂;
- 每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝;
- 将生成的多棵决策树组成随机森林。
3.推广
Extra Tree 是RF的变种,原理与RF几乎一样,但还是有些不同。
4.优缺点
(1)优点:
- 训练可以并行化,计算开销小,能够高效地对大数据集进行训练;
- 实现简单、准确率高;
- 能够评估各个特征在分类问题上的重要性;
- 能够处理高维特征的输入样本,且不需要降维操作;
- 对部分特征的缺失不敏感;
- 能够取到内部生成误差的一种无偏估计,不需要交叉验证或者用一个独立的测试集获得误差的无偏估计;
- 由于存在随机抽样,训练出来的模型方差小,泛化能力强。
(2) 缺点:
- 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合.
- 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的.
5.应用场景
集成学习可以应用到金融领域的风险控制中,从互联网行为、APP、运营商等途径获取特征维度,比如信贷历史记录、消费能力、社会信用等特征,在通过boosting、bagging等算法进行训练预测,可以进行预测是否存在反欺诈、违约概率大小、风险定价等问题。