学习笔记-不平衡数据及集成学习

董圆成的公众号

学习篇

个人总结 | 学习借鉴 | 经验分享

不平衡数据在商业数据科学中很常见,数据中解释变量的的正负比例一般不太会出现比较平衡的情况,而不平衡的数据则是一种常态,如何处理不平衡的数据是我们遇到不平衡数据第一要思考的问题。

对于排序类模型(业界又称为评分卡模型,例如信用评级)建议使用小数据,需要对不平衡数据进行抽样处理(超额抽样);对于决策类模型(反欺诈,语音识别)建议使用大数据,即使用全部样本进行建模,可使用组合算法,不需要对数据进行抽样处理。

不平衡数据常用处理方法

对于集成学习(emsemble learning)其实是一种机器学习的框架,他会创造出多个基模型,每个基模型被训练出来解决同一个问题,然后通过集成这些基模型的预测结果来提升整体的表现情况

集成学习主要分为三种

装袋法:选用相同的强学习器作为基模型,每个基模型的训练数据不是全部训练数据,而是通过对全部训练数据有放回的采样产生的随机子集,预测时各个基模型等权重投票,是一种并行的训练结构;

装袋法

提升法:选用相同的弱学习器作为基模型,依次训练基模型,每个基模型的训练集根据前一次模型的预测结果进行调整,重点关注被前面模型左无预测的样本,以逐步修正前面基模型的误差,最终的预测结果通过基模型的线性组合来产生,是一种串行训练结构;

提升法

堆栈法:对不同类型的模型进行融合。

对于社会科学而言一般前两种方法足以

随机森林中可调整的参数包括:树的规模、每棵树的样本容量、每棵树的特征数量等。树的颗数尽量大于5,每棵树都希望它充分生长,每次采取样本量不应该超过30%。

Adaboost一般解决二分类问题。该算法根据每个基模型的训练误差率更新各自的权重,相当于自动适应基模型的训练误差率。学习重点则是关注样本的权重和基模型的权重。GDBT是在之前的基础上加入了损失函数,利用二阶泰勒展开式去拟合数据(计算过程我也没看懂。。后续还需要跟进= =)。XGboost则是在GDBT的基础上提供了自剪枝。

对于理解算法的原理才是重中之重,每个算法都有优缺点,只有最合适的算法没有最优的算法。具体哪个模型好,仍然要结合实际的业务去进行分析,考虑成本和效益,对比多个指标,最后给出合理的解决方案。

根据此数据情况提升法的结果要优于装袋法(因为提升法更关注每次分错的情况),提升法和装袋法优于单一决策树。

-LOVE&PEACE-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181122G1LW3V00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励