# 7 种模型加权集成方法

不同任务 -> 不同加权方法

分类

  • 类别投票
  • 概率值加权

回归

  • 预测值加权

排序

  • 排序次序加权

目标检测

  • 预测结果NMS

语义分割

  • 像素类别投票
  • 加权

集成学习

考虑

  • 模型的多样性

    • 多样性不足 -> 最终预测结果和单个模型类似。
  • 模型的精度差异

    • 精度差异很大 -> 最终集成的效果也不会很好

Out of fold

中文:袋外预测

就是交叉验证

Blend操作

最常见的分类 & 回归任务的结果加权方法

方法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)

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])

参考文献

[1] https://mp.weixin.qq.com/s/a77kNwNCAsHCvnfpKUvQYQ

7 种模型加权集成方法相关推荐

  1. 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending

    机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化.分析和预测数据.一个通用的机器学习模型包括一个数据集(用于训练模型)和一个算法(从数据学习).但是有些模型的 ...

  2. 机器学习知识点:模型加权集成7种方法

    在竞赛中如果对多个预测结果进行集成,最方便的做法是直接对预测结果进行加权求和.此时不同任务,加权方法不同: 分类任务:类别投票 & 概率值加权 回归任务:预测值加权 排序任务:排序次序加权 目 ...

  3. 模型融合(集成方法) -投票法

    参考: https://www.cnblogs.com/gobetter/p/13786704.html https://blog.csdn.net/oyww710/article/details/1 ...

  4. 面向对象三种模型之间的关系

    功能模型指明了系统应该"做什么":动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做:对象模型则定义了做事情的实体.在面向对象方法学中,对象模型是最基本最重要的,它 ...

  5. Ghost Module/GhostNet:一种模型压缩的轻量级模块/网络(论文阅读)(1)

    温馨提示:(1)讲Ghost模块 (2)讲GhostNet,文章过于话多,快速理解内容只需看图 (2)GhostNet网络架构请看博客下篇 Ghost Module是一种模型压缩的方法,即在保证网络精 ...

  6. 目标检测多模型集成方法总结

    本文转载自AI公园. 前段时间推送了文章:难以置信的目标检测小妙招:多训练几个epochs,平均一下就能获得更好的模型 ,不少朋友对模型集成感兴趣,本文是个小总结. 作者:Vikas S Shetty ...

  7. 常见深度学习模型集成方法

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 历届kaggle竞赛冠军的做法,或简单或复杂,其最后一步必然是集成学习,尽管现有的模型已经很强大了, ...

  8. 基于信息熵确立权重的topsis法_一种基于加权秩和比法的光伏并网逆变器多性能指标评价方法研究...

    电能质量测试周马上就要开始,在各位粉丝阅读本篇推文之前,你的评论多少赞了?想要奖品的粉丝可得抓紧时间,活动截止之前都还有机会哦.点击下方链接赶快留言点赞吧! 电能质量测试周,让数据说话 作者:郑陆海  ...

  9. python椭圆形骨料_一种基于python再生混凝土三维随机球形骨料模型的构建方法与流程...

    本发明涉及建筑技术领域,尤其涉一种基于python再生混凝土三维随机球形骨料模型的构建方法. 背景技术: 再生混凝土是指利用再生粗骨料部分或者全部代替天然骨料配置而成的混凝土,再生混凝土技术的开发和利 ...

最新文章

  1. iOS 屏幕亮度和闪光灯控制
  2. java消费者和生产者模型_Java实现简易生产者消费者模型过程解析
  3. 重磅推荐:2020年人工智能最精彩的25篇论文(附下载)
  4. 得到一个汉字的拼音第一个字母
  5. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询
  6. pat题解java,1039 到底买不买 (20分) Java题解 PAT (Basic Level) Practice (中文)- 巧妙开大数组减少代码量...
  7. CVE-2020-16875:Microsoft Exchange RCE复现
  8. javascript在IE和Firefox中兼容性问题
  9. [转]关于Win32 Console的计时器
  10. OpenCV C++安装和配置
  11. OSChina 周五乱弹 —— 谁家做的饭好吃 问新垣吉衣
  12. Android打字机动画,Android自定义View实现打字机效果
  13. 寻票软件医院挂号攻略
  14. 洛谷 P5594 【XR-4】模拟赛 记录
  15. python常用画图颜色
  16. uvc摄像头代码解析6
  17. 全球液晶面板供应紧张推动价格上涨,中国面板企业再迎高光时刻
  18. 如何批量生成16进制偶数标
  19. 2022实操搬砖副业攻略
  20. Template 基础篇-函数模板

热门文章

  1. 高维空间中椭圆的基本方程
  2. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第四篇 新版kernel(L4.1.15-r)移植
  3. Memcached的LRU策略
  4. HTML 文件里开头 Doctype 的作用是什么?
  5. 第四章 Caché JSON 处理数据类型
  6. asc码即ascii,没有asc这一说,ascii后是ii而不是罗马数字
  7. C++基础2:ASC码中 ‘A’ 和 ‘a’ 分别在什么位置??
  8. 北邮邮箱配置客户端教程(如Windows自带邮件)
  9. AcWing寒假每日一题2022-第1周
  10. ubuntu/linux安装Atom