• 【DW·智慧海洋(捕鱼作业分析)打卡】task05_模型融合 (简单辨析了一下stacking和blending)


    开源地址见Github:https://github.com/datawhalechina/team-learning

    模型融合

    详细参考 https://cloud.tencent.com/developer/article/1614539

    1. 简单加权融合:

    • 回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean);
    • 分类:投票(Voting)

    2. boosting/bagging(在xgboost,Adaboost,GBDT中已经用到):

    • 多树的提升方法

    3. stacking/blending:

    • 构建多层模型,并利用预测结果再拟合预测。
      • stacking

        • 训练
        • 预测
      • blending

        1. 首先将训练集划分为两部分(d1,d2),例如d1为4000条数据用于blending的第一层,d2是6000条数据用于blending的第二层。
        2. 第一层:用d1训练多个模型,将其对d2和test的预测结果作为第二层的New Features。例如同样适用上述三个模型,对d2生成60003的新特征数据;对test生成30003的新特征矩阵。
        3. 第二层:用d2的New Features和标签训练新的分类器,然后把test的New Features输入作为最终的测试集,对test预测出的结果就是最终的模型融合的值。

    stacking/blending的优缺点对比

    Blending的优点在于:

    1. 比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)

    2. 避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集

    3. 在团队建模过程中,不需要给队友分享自己的随机种子

    而缺点在于:

    1. 使用了很少的数据来进行第一节段的数据的基模型的训练(是划分hold-out作为测试集,并非cv)

    2. blender可能会过拟合(其实大概率是第一点导致的)

    3. stacking使用多次的CV会比较稳健,说白了,训练次数少

    5.5 思考题

    1. 如何基于stacking改进出blending?

    答:

    • stacking使用了foldCV,blending使用了holdout.
    • 在第一层中,stacking留出一部分数据扔到第二层参与新特征的提取和训练。

    2. stacking还可以进行哪些优化提升F1-score - 从第一层模型数量?模型差异性?角度出发

    答:

    • F1 Score兼顾了精确率和召回率,在样本缺少平衡性时可以发挥有效的评价作用
      1. 从第一层模型数量来看,不同的模型数量越多,模型差异性越大,多个模型的综合输出结果的泛化能力越强 (接下点)
      2. 模型差异性越大,多个模型可以在数据的凸函数上从不同的方向进行梯度下降,进而逼近全局的最优解,stacking的效果越好,有利于保持精确率的程度下提高召回率
    你不逼自己一把,你永远都不知道自己有多优秀!只有经历了一些事,你才会懂得好好珍惜眼前的时光!
  • 相关阅读:
    使用C#替换Word文档里的文字和图片
    《程序员的思维修炼—开发认知潜能的九堂课》—从新手到专家的历程
    从已有数据库表生成Insert语句的小工具
    我的2010
    Sqlite批量插入速度慢的解决方法小计
    分享一个winForm下的Chart控件
    分享一个任务提醒小工具
    SpringBoot+Vue+Echarts实现选择时间范围内数据加载显示柱状图
    Winform中选取指定文件夹并获取其下所有文件
    Vue中JS遍历后台JAVA返回的Map数据,构造对象数组数据格式
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/14697489.html
Copyright © 2020-2023  润新知