使用 PMML 实现模型融合及优化技巧

这篇具有很好参考价值的文章主要介绍了使用 PMML 实现模型融合及优化技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在机器学习的生产环境中,我们经常需要将多个模型的预测结果进行融合,以便提高预测的准确性。这个过程通常涉及到多个模型子分的简单逻辑回归融合。虽然离线训练时我们可以直接使用sklearn的逻辑回归进行训练和调参,但在生产环境中,模型的上线往往需要使用PMML(Predictive Model Markup Language)格式。PMML不仅能够在一个文件中完成多个模型的融合,还可以输出融合后的Sigmoid打分,极大地方便了生产环境中的模型管理和使用。

使用PMML的Segmentation功能进行模型融合

通过阅读PMML文档,我们发现可以利用其Segmentation功能来实现模型的融合。在PMML文件的最外层使用Segmentation并指定multipleModelMethod为"SelectAll",这样就可以在最终输出中包含所有内层Segment的输出。这一功能为模型融合提供了便利。

处理单模型分数缺失问题

在实际应用中,我们可能会遇到单个模型分数缺失或等于某个固定常数(例如-999,代表缺失)的情况。这时,我们希望将其视为融合失败,即不进行融合处理,直接返回一个特定的融合失败值(如-999)。为了实现这一逻辑,我们可以使用Segmentation来包裹整个回归过程,设置multipleModelMethodselectFirst。这样,当内部的第一个Segment检测到某个模型子分等于-999时,就会选择这条路径,并最终输出-999作为融合失败的标志。

<Segmentation multipleModelMethod="selectFirst">
  <Segment id="model1SegmentInvalidInput">
    <CompoundPredicate booleanOperator="or">
      <SimplePredicate field="field1" operator="equal" value="-999"/>
      <SimplePredicate field="field2" operator="equal" value="-999"/>
    </CompoundPredicate>
    <RegressionModel modelName="InvalidInputModelmodel1" functionName="regression" targetFieldName="result">
      <MiningSchema>
        <MiningField name="field1" usageType="active"/>
        <MiningField name="field2" usageType="active"/>
        <MiningField name="result" usageType="predicted"/>
      </MiningSchema>
      <RegressionTable intercept="-999"/>
    </RegressionModel>
  </Segment>
  ...
</Segmentation>

将最终分数转换为概率值

为了将回归后的预测值通过Sigmoid函数转换为概率值,从而和线上使用的分数保持一致的量纲,我们可以在有效的回归Segment中使用normalizationMethod='logit'。这样,输出的分数就会经过Sigmoid转换,转化为概率值。

<RegressionModel functionName="regression" modelName="ValidInputModelmodel2" algorithmName="regression" normalizationMethod="logit" targetFieldName="result">
  ...
</RegressionModel>

为最终输出重新命名

为了方便调用和解析PMML文件,我们需要在文件的最后为输出统一命名。通过指定OutputFieldname和对应的segmentId,我们可以清晰地标识每个输出值的来源,使得输出结果更加直观易懂。

<Output>
  <OutputField name="NewScore1" feature="predictedValue" segmentId="model1Segment"/>
  <OutputField name="NewScore2" feature="predictedValue" segmentId="model2Segment"/>
</Output>

通过以上步骤和优化技巧,我们可以高效地使用PMML实现多个模型的融合,处理单模型分数缺失问题,并将最终分数转换为概率值,同时为输出结果重新命名,以便于调用和解析。这样不仅提升了模型融合的准确性,也增强了生产环境中模型管理的便利性。文章来源地址https://www.toymoban.com/news/detail-839032.html

参考资料

  • PMML 4.3 Regression
  • PMML 4.3 MultipleModels

到了这里,关于使用 PMML 实现模型融合及优化技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习-模型评估优化

    任务: 拟合反应速率(rate)与温度(temperature)数据,预测85度时的反应速率 欠拟合 过拟合 例2: 欠拟合 过拟合 欠拟合与过拟合 模型不合适,导致其无法对数据实现有效预测 模型对数据的预测情况 训练数据 预测数据 欠拟合 不准确 不准确 过拟合 准确 不准确 好模型 准确

    2024年01月22日
    浏览(40)
  • 【AI机器学习入门与实战】训练模型、优化模型、部署模型

    👍【 AI机器学习入门与实战 】目录 🍭 基础篇 🔥 第一篇:【AI机器学习入门与实战】AI 人工智能介绍 🔥 第二篇:【AI机器学习入门与实战】机器学习核心概念理解 🔥 第三篇:【AI机器学习入门与实战】机器学习算法都有哪些分类? 🔥 第四篇:【AI机器学习入门与实战】

    2024年02月12日
    浏览(52)
  • 机器学习实战六步法之训练模型、优化模型、部署模型(七)

    👍【 AI机器学习入门与实战 】目录 🍭 基础篇 🔥 第一篇:【AI机器学习入门与实战】AI 人工智能介绍 🔥 第二篇:【AI机器学习入门与实战】机器学习核心概念理解 🔥 第三篇:【AI机器学习入门与实战】机器学习算法都有哪些分类? 🔥 第四篇:【AI机器学习入门与实战】

    2024年02月08日
    浏览(41)
  • 【机器学习】最大熵模型【下】最大熵模型学习的最优化算法

    有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 由于字数限制,分成两篇博客。 【机器学习】最大熵模型【上】最大熵模型概述与约束最优化问题 【机器学习】最大熵模型【下】最大熵模型学习的最优化算法 这里的最优化算法就是用于训练最大熵模型参数

    2023年04月15日
    浏览(56)
  • 搭建一个简易的 PMML 模型测试环境

    PMML ,全称为 Predictive Model Markup Language ,是一种标准化的模型描述和交换格式。它允许从不同的数据挖掘和机器学习软件中导出模型,并在其他系统中进行部署,无需重新编写代码。PMML 通过定义一套统一的规则来描述模型,包括数据预处理、模型参数以及输入输出格式等。

    2024年04月22日
    浏览(30)
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(9)模型优化

    模型训练后,就要进行模型优化了。 一般来讲,很简单,优化就是不换模型换参数,或者直接换模型。 换了之后来对比,最后选个最好的。 比如在本案例中,选择LinearRegression后,MSE从22下降到12,因此选择新的模型。 取前20个验证集数据,将标注数据与实际房价对比关系如

    2024年02月21日
    浏览(46)
  • 机器学习基础13-基于集成算法优化模型(基于印第安糖尿病 Pima Indians数据集)

    有时提升一个模型的准确度很困难。如果你曾纠结于类似的问题,那 我相信你会同意我的看法。你会尝试所有曾学习过的策略和算法,但模型正确率并没有改善。这时你会觉得无助和困顿,这也是 90%的数据科学家开始放弃的时候。不过,这才是考验真本领的时候!这也是普

    2024年02月11日
    浏览(41)
  • 深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧

    大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧,TensorRT是NVIDIA公司提供的一个深度学习推理(inference)优化器和运行时库。它专门为生产环境下的高性能深度学习推理提供优化支持。TensorRT可以加速深度学习模型在

    2024年02月02日
    浏览(47)
  • 【植物大战僵尸融合机器学习】+源码

    今天给大家推荐一个Gtihub开源项目:PythonPlantsVsZombies,翻译成中就是植物大战僵尸。 《植物大战僵尸》是一款极富策略性的小游戏。可怕的僵尸即将入侵,每种僵尸都有不同的特点,例如铁桶僵尸拥有极强的抗击打能力,矿工僵尸可以挖地道绕过种植在土壤表面的植物等。玩

    2024年04月17日
    浏览(86)
  • AI时代:探索机器学习与深度学习的融合之旅

    🎉欢迎来到AIGC人工智能专栏~AI时代:探索机器学习与深度学习的融合之旅 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包