首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14款机器学习加权平均模型融合的火花

14款机器学习加权平均模型融合的火花

作者头像
AI算法与图像处理
发布2019-12-23 13:49:32
1.1K0
发布2019-12-23 13:49:32
举报

来源:素质云笔记

模型融合的方法很多,Voting、Averaging、Bagging 、Boosting、 Stacking,那么一些kaggle比赛中选手会选用各种方法进行融合,其中岭回归就是一类轻巧且非常有效的方法,当然现在还有很多更有逼格的方法。本文是受快照集成的启发,把 titu1994/Snapshot-Ensembles 项目中,比较有意思的加权平均集成的内容抽取出来,单独应用。

练习案例简单易懂,无需外部调用数据,

code更新于:https://github.com/mattzheng/WA-ModelEnsemble

——戳原文阅读

1 快照集成 Snapshot Ensembles

因为受其启发,所以在这提一下,快照集成是一种无需额外训练代价的多神经网络集成方法。 通过使单个神经网络沿它的优化路径进行多个局部最小化,保存模型参数。 利用多重学习速率退火循环实现了重复的快速收敛。

1

比较有意思的做法

作者在训练相同网络时使用权重快照,在训练结束后用这些结构相同但权重不同的模型创建一个集成模型。这种方法使测试集效果提升,而且这也是一种非常简单的方法,因为你只需要训练一次模型,将每一时刻的权重保存下来就可以了。

也就是,同一款模型,在学习率稍微调高,训练中得到的不同阶段的模型文件都保存并拿来做最后的模型融合。

长学习率循环的思想 在于能够在权重空间找到足够多不同的模型。如果模型相似度太高,集合中各网络的预测就会太接近,而体现不出集成带来的好处.

2

权重的解决方案

对于一个给定的网络结构,每一种不同的权重组合将得到不同的模型。因为所有模型结构都有无限多种权重组合,所以将有无限多种组合方法。

训练神经网络的目标是找到一个特别的解决方案(权重空间中的点),从而使训练集和测试集上的损失函数的值达到很小。

3

相关实现:cifar100 图像分类任务

可参考项目:titu1994/Snapshot-Ensembles 该项目用keras1.1 做了cifar_10、cifar_100两套练习,使用的是比较有意思的图像框架: Wide Residual Net (16-4)。作者已经预先给定了5款训练快照,拿着5套模型的预测结果做模型集成,使使训练集和测试集上的损失函数的值达到很小。

2、14款常规机器学习模型

sklearn官方案例中就有非常多的机器学习算法示例,本着实验的精神笔者借鉴了其中几个。

01

特征重要性

在本次10+机器学习案例之中,可以看到,可以输出重要性的模型有:

  • 随机森林 rf.feature_importances_
  • GBT grd.feature_importances_
  • Decision Tree decision.feature_importances_
  • AdaBoost AdaBoost.feature_importances_

可以计算系数的有:线性模型,lm.coef_ 、 SVM svm.coef_

Naive Bayes得到的是:NaiveBayes.sigma_

解释为:variance of each feature per class

02

机器学习算法输出

算法输出主要有:重要指标(本案例中提到的是acc/recall)、ROC值的计算与plot、校准曲线(Calibration curves)

Calibration curves may also be referred to as reliability diagrams.

3、权重空间优化 Optimize

主要是从titu1994/Snapshot-Ensembles抽取出来的。简单看看逻辑:

01

简述权重空间优化逻辑

先定义loss函数:log_loss(testY_cat, final_prediction)

testY_cat为正确预测标签, final_prediction为多款模型预测概率组合。

迭代策略:minimize(log_loss_func, prediction_weights, method='SLSQP')

SciPy的optimize模块提供了许多数值优化算法,minimize就是其中一种。

02

实践

具体code笔者会上传至笔者的github之上了。 步骤为:

  • 1、随机准备数据make_classification
  • 2、两套模型的训练与基本信息准备
  • 3、观察14套模型的准确率与召回率
  • 4、刻画14套模型的calibration plots校准曲线
  • 5、14套模型的重要性输出
  • 6、14套模型的ROC值计算与plot
  • 7、加权模型融合数据准备
  • 8、基准优化策略:14套模型融合——平均
  • 9、加权平均优化策略:14套模型融合——加权平均优化

可以观察到基准优化策略:14套模型融合——平均的结果为:

>>> Accuracy : 79.7

>>> Recall : 0.7043390514631686

弱分类器的性能拉低了整个集成模型的结论。

加权平均优化策略:14套模型融合——加权平均优化

>>> Best Accuracy : 90.4

>>> Best Weights : [1.57919854e-02 2.25437178e-02 1.60078948e-01 1.37993631e-01 1.60363024e-03 1.91105368e-01 2.34578651e-02 1.24696769e-02 3.18793907e-03 1.29753377e-02 1.12151337e-01 7.62845967e-04 3.05643629e-01 2.34089531e-04]

>>> Accuracy : 90.4

>>> Recall : 0.9112008072653885

在迭代了20次之后,通过加权求得的综合预测水平,要高于平均水平很多。不过,跟一些比较出众的机器学习模型差异不大。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法与图像处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 比较有意思的做法
  • 权重的解决方案
  • 相关实现:cifar100 图像分类任务
  • 特征重要性
  • 机器学习算法输出
  • 简述权重空间优化逻辑
    • 先定义loss函数:log_loss(testY_cat, final_prediction)
      • 迭代策略:minimize(log_loss_func, prediction_weights, method='SLSQP')
        • 加权平均优化策略:14套模型融合——加权平均优化
        相关产品与服务
        千帆神笔 aPaaS
        千帆神笔 aPaaS 是一款专注于企业级应用可视化开发管理的开发平台。通过图形化业务建模、页面设计、流程编排创建全新应用,同时支持将多个 SaaS 应用按业务逻辑和审批流程进行自定义连接,提升开发效率3倍以上。千帆神笔 aPaaS 与企业微信深度集成,应用开发完成后可一键发布到企业微信,助力企业更高效的服务客户。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档