在竞赛中如果对多个预测结果进行集成,最方便的做法是直接对预测结果进行加权求和。此时不同任务,加权方法不同:

  • 分类任务:类别投票 & 概率值加权

  • 回归任务:预测值加权

  • 排序任务:排序次序加权

  • 目标检测任务:预测结果NMS

  • 语义分割任务:像素类别投票 & 加权

在本文中我们将介绍最常见的分类 & 回归任务的结果加权方法,也就是Blend操作。

文章目录

  • 技术提升
  • 多样性 & 精度差异
  • Out of fold
  • 方法1:均值加权
  • 方法2:权重加权
  • 方法3:排序加权
  • 方法4:排序权重加权
  • 方法5:爬山法加权
  • 方法6:线性回归加权
  • 方法7:参数优化加权

技术提升

项目代码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、添加微信号:dkl88191,备注:来自CSDN
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

多样性 & 精度差异

在对结果进行集成时需要考虑如下两点:

  • 模型的多样性:

  • 模型的精度差异;

集成学习的精度收益是需要模型&预测结果的多样性,如果多样性不足,则最终预测结果和单个模型类似。

精度差异是指模型之间的精度差异,如果精度差异很大最终集成的效果也不会很好。如下情况2的模型精度差异就较大。

三个模型精度:[0.9, 0.92, 0.92]
三个模型精度:[0.9, 0.8, 0.7]

Out of fold

Out of fold又名袋外预测,是一个模型在交叉验证的过程中使用训练部分进行训练,然后对验证集进行预测,交替得到训练集和测试集预测结果。

如果我们拥有三个模型,通过交叉验证可以得到3个训练集预测结果和3个验证集预测结果。

如下展示的几种方法,都需要训练集标签 与 训练集预测结果搜索得到参数,然后将参数在测试集上进行使用。

方法1:均值加权

  • 原理:对所有模型的预测结果计算均值;

  • 优点:简单,过拟合可能性低;

  • 缺点:会受到模型原始精度差异的影响;

oof_preds = []
for col in oofCols:oof_preds.append(oof_df[col])y_avg = np.mean(np.array(oof_preds), axis=0)

方法2:权重加权

  • 原理:对所有模型的预测结果加权求和;

  • 优点:比均值更加可控;

  • 缺点:权重需人工设置,更容易过拟合;

weights = [1,2,3]
y_wtavg = np.zeros(len(oof_df))for wt, col in zip(weights, oofCols):y_wtavg += (wt*oof_df[col])y_wtavg = y_wtavg / sum(weights)

方法3:排序加权

  • 原理:对预测结果进行排序,使用次序代替原始取值;

  • 优点:适合分类任务,对概率进行集成;

  • 缺点:会受到模型原始精度差异的影响;

rankPreds = []
for i, col in enumerate(oofCols):rankPreds.append(oof_df[col].rank().values)y_rankavg = np.mean(np.array(rankPreds), axis=0)

方法4:排序权重加权

  • 原理:对预测结果进行排序,使用次序进行加权求和;

  • 优点:比均值更加可控;

  • 缺点:权重需人工设置,更容易过拟合;

rankPreds = []
weights = [1,2,3]for i, col in enumerate(oofCols):rankPreds.append(oof_df[col].rank().values * weights[i])y_rankavg = np.mean(np.array(rankPreds), axis=0)

方法5:爬山法加权

  • 原理:权重进行搜索,保留最优的权重;

  • 优点:可以自动权重权重大小;

  • 缺点:更容易过拟合;

for w1 in np.linspace(0, 1, 100):for w2 in np.linspace(0, w2, 100):w3 = 1 - w1 - w3如果 w1, w2, w3取得更好的精度,保留权重否则尝试下一组权重组合

方法6:线性回归加权

  • 原理:使用线性回归确定权重

  • 优点:可以自动权重权重大小;

  • 缺点:需要额外训练,容易过拟合;

from sklearn.linear_model import LinearRegressionlr = LinearRegression(fit_intercept=False)
lr.fit(三个模型对训练集预测结果,训练集标签
)lr.coef_ # 线性回归的权重

方法7:参数优化加权

  • 原理:使用优化方法搜索权重

  • 优点:可以自动权重权重大小;

  • 缺点:需要额外训练,容易过拟合;

def f(x):return x[0]**2 + x[1]**2 + (5 - x[0] - x[1])from scipy import optimize
minimum = optimize.fmin(f, [1, 1])

机器学习知识点:模型加权集成7种方法相关推荐

  1. 7 种模型加权集成方法

    # 7 种模型加权集成方法 不同任务 -> 不同加权方法 分类 类别投票 概率值加权 回归 预测值加权 排序 排序次序加权 目标检测 预测结果NMS 语义分割 像素类别投票 加权 集成学习 考虑 ...

  2. 机器学习中处理缺失值的7种方法

    机器学习中处理缺失值的7种方法 转载 |  https://cloud.tencent.com/developer/article/1680427 作者 | Satyam Kumar 编译 | VK ...

  3. 用于处理机器学习大数据文件的7种方法

    机器学习数据文件太大而不能装入内存数据集是很常见的. 这会导致以下问题: 如何加载多个G的数据文件? 当我尝试运行我的数据集时算法崩溃;我该怎么办? 您能帮助纠正内存不足的错误吗? 在这篇文章中,我想 ...

  4. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  5. 解开机器学习模型黑盒的 4 种方法(终极指南)

    这是解释机器学习模型输出的终极指南 更多机器学习系列请看:芯媒机器学习系列文章和资料 许多人都认为机器学习模型的输出是莫名其妙的,模型预测或决策可能是可靠的,但你无法知道模型是根据什么做出的决策. 这 ...

  6. 【竞赛相关】特征/模型存储的5种方法

    Hello大家好,我是Coggle菌.今天我将继续和大家一起学习竞赛中的各种基础知识点,从基础库使用到具体的比赛案例. 今天将介绍的比赛中存储特征的几种方法,供大家学习和选择. 方法1:csv/txt ...

  7. 全网最全:机器学习算法模型自动超参数优化方法汇总

    什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...

  8. Yolo模型部署的两种方法

    目录 1 需求描述 第1种:封装darknet框架 第2种:weights模型转pb模型 2 weights模型转pb模型方法 3 重要备注 (1)关于预处理: (2)关于模型输入输出的数据结构和节点 ...

  9. 机器学习模型部署的三种方法

    "企业机器学习需要从数据工程和数据平台的角度看待大局[...],"贾斯汀·诺曼(Justin Norman)在今年巴塞罗那的DataWorks峰会上关于机器学习模型的部署的演讲中说 ...

最新文章

  1. 图像点云数据融合方法汇总
  2. 除了海思麒麟 华为在ARM芯片上还有哪些成就?
  3. 微信小程序分析送积分功能如何实现_微信小程序如何做出一个积分系统?
  4. vue --- vue-router(项目模式的导入)
  5. 全文搜索!收藏这篇Solr ElasticSearch 长文就可以搞定
  6. 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式(ubuntu 16.04)
  7. android有关医疗实现功能,基于Android的智能医疗监测系统的设计与实现_问答库
  8. angular 错误处理_可能出什么问题了? 如何处理Angular中的错误
  9. MapGuide/AIMS在台湾?
  10. U盘安装Ubuntu操作系统
  11. opencv图像处理进阶——灰度直方图
  12. 平安产险_杭州平安产险:寒风中靓丽的一抹橙坚守者
  13. 2022化工自动化控制仪表考试试题及模拟考试
  14. 测试宝宝体重的软件,宝宝身高体重测试法
  15. BUUCTF RSA(二)
  16. 【存档】精确的过零检测电路
  17. 网易云音乐React Native体系建设与发展
  18. [转载] 花了三个月终于把所有的Python库全部整理了!祝你早日拿到高薪!
  19. vue组件雨滴、星星、流星特效动画(开箱即用)
  20. 文件系统XFS和EXT4的区别

热门文章

  1. Bugku CTF 每日一题 三色绘恋
  2. 【LeetCode286】墙与门(BFS)
  3. 小红旗图标在excel如何输入_EXCEL还带这么玩,刷新了认知,纯函数实现飘动的小红旗 图文 | Excel实例教学网 微信公众号EXCEL880...
  4. 写给Mac新手:用MacBook Pro办公的一些心得!
  5. html5对flash的影响,浅谈flash和html5的发展趋势对站长的影响
  6. LeetCode 827 最大人工岛 题解
  7. GRNN和PNN神经网络简介与MATLAB实践
  8. python: partical function 偏函数
  9. stm32毕业设计 火灾报警系统设计与实现 - 单片机 物联网
  10. 什么是SAP Note?如何打SAP Note?