首页 > 其他分享 >模型标准化——预测模型标记语言(PMML)

模型标准化——预测模型标记语言(PMML)

时间:2024-12-22 09:45:50浏览次数:4  
标签:文件 PMML 标记 模型 生成 加载 sklearn

在机器学习用于产品的时候,我们经常会遇到跨平台的问题。比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环境比如Java,为了上一个机器学习模型去大动干戈修改环境配置很不划算,此时我们就可以考虑用预测模型标记语言(Predictive Model Markup Language,以下简称PMML)来实现跨平台的机器学习模型部署了。
1. PMML概述
    PMML是数据挖掘的一种通用的规范,它用统一的XML格式来描述我们生成的机器学习模型。这样无论你的模型是sklearn,R还是Spark MLlib生成的,我们都可以将其转化为标准的XML格式来存储。当我们需要将这个PMML的模型用于部署的时候,可以使用目标环境的解析PMML模型的库来加载模型,并做预测。
    可以看出,要使用PMML,需要两步的工作,第一块是将离线训练得到的模型转化为PMML模型文件,第二块是将PMML模型文件载入在线预测环境,进行预测。这两块都需要相关的库支持。
2. PMML模型的生成和加载相关类库
    PMML模型的生成相关的库需要看我们使用的离线训练库。如果我们使用的是sklearn,那么可以使用sklearn2pmml这个python库来做模型文件的生成,这个库安装很简单,使用"pip install sklearn2pmml"即可,相关的使用我们后面会有一个demo。如果使用的是Spark MLlib, 这个库有一些模型已经自带了保存PMML模型的方法,可惜并不全。如果是R,则需要安装包"XML"和“PMML”。此外,JAVA库JPMML可以用来生成R,SparkMLlib,xgBoost,Sklearn的模型对应的PMML文件。github地址是:https://github.com/jpmml/jpmml。
    加载PMML模型需要目标环境支持PMML加载的库,如果是JAVA,则可以用JPMML来加载PMML模型文件。相关的使用我们后面会有一个demo。
3. PMML模型生成和加载示例
    下面我们给一个示例,使用sklearn生成一个决策树模型,用sklearn2pmml生成模型文件,用JPMML加载模型文件,并做预测。
    完整代码参见我的github:https://github.com/ljpzzz/machinelearning/blob/master/model-in-product/sklearn-jpmml
    首先是用用sklearn生成一个决策树模型,由于我们是需要保存PMML文件,所以最好把模型先放到一个Pipeline数组里面。这个数组里面除了我们的决策树模型以外,还可以有归一化,降维等预处理操作,这里作为一个示例,我们Pipeline数组里面只有决策树模型。代码如下:

参考博客:https://www.cnblogs.com/sddai/p/9877249.html

https://www.cnblogs.com/exmyth/p/15877873.html

 

标签:文件,PMML,标记,模型,生成,加载,sklearn
From: https://www.cnblogs.com/jelly12345/p/18621778

相关文章

  • 【AI+模型】RAG 架构图解:从基础到高级的7种模式
    RAG技术通过在AI生成过程中引入外部知识检索,从基础的文档查询发展到多模态、Multi-Agent体协同的智能架构,让AI回答更准确、更全面。核心组件嵌入模型:将文本转换为向量表示生成模型:负责最终的内容生成重排序模型:优化检索结果的相关性向量数据库:存储和检索向量......
  • 【AI+模型】大模型驱动的智能客服
    一、中国智能客服市场发展在中国,智能客服已经不再是一个新鲜的话题,而是逐步成为企业服务体系中不可或缺的一部分。按功能划分,智能客服可分为在线客服、语音客服、辅助机器人、智能质检及数字人等五大类别。从2000年开始,中国的智能客服产业经历了关键词匹配阶段、多渠道交互阶......
  • Redis篇-13--数据结构篇5--List内存模型(LinkedList,zipList,quicklist,Listpack,内存对齐,
    Redis的List(列表)数据类型是一个双向链表,允许从两端高效地插入和删除元素。为了提高性能和内存利用率,Redis对List进行了多种优化。特别是在Redis3.2版本中引入的quicklist结构,和Redis6.2版本中引入Listpack结构(替代之前的ziplist压缩列表),逐步提升List的性能。简单概括如下......
  • 【专题】大模型时代的具身智能2024报告汇总PDF洞察(附原数据表)
    原文链接: https://tecdat.cn/?p=38597在当今科技飞速发展的时代,大模型的崛起如同一股强劲的浪潮,席卷了整个科技领域,而具身智能则在这浪潮中崭露头角,成为人工智能领域备受瞩目的前沿方向。随着数据的海量增长与计算能力的迅猛提升,大模型为具身智能注入了强大的智慧源泉,使其能够以......
  • 【人工智能时代】-人工智能大模型相关工具
    **......
  • 机器学习实验一:数据准备与模型评估
    实验一:数据准备与模型评估一、实验目的 熟悉Python的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;加深对训练集、测试集、N折交叉验证、模型评估标准的理解。 二、实验内容(1)利用pandas库从本地读取iris数据集;(2)从scikit-learn库中直接加载ir......
  • Python调用星火认知大模型API(流式传输)
    Python调用星火认知大模型API流式传输前言1.获取API认证信息2.快速调用集成星火认知大模型3.实现AI流式回复1)SparkApi.py2)SparkApiMain.py3)SparkPicture.py4)spider.py5)开始测试参考文档前言最近对大模型比较感兴趣,想要调用大模型的API,实现AI助手那种问答效果,正......
  • 机器学习基础 衡量模型性能指标
    前言大家知道已经,机器学习通常都是将训练集上的数据对模型进行训练,然后再将测试集上的数据给训练好的模型进行预测,最后根据模型性能的好坏选择模型,对于分类问题,大家很容易想到,可以使用正确率来评估模型的性能,那么回归问题可以使用哪些指标用来评估呢?错误率(Errorrate)&精度(......
  • 大模型--采样技术 TopK TopP 惩罚系数--37
    目录1.参考2.概述重复惩罚(RepetitionPenalty)1.参考https://mp.weixin.qq.com/s/mBZA6PaMotJw7WeVdA359g2.概述大型语言模型(LLMs)通过“根据上下文预测下一个token的概率分布”来生成文本。最简单的采样方法是贪心采样(GreedySampling),它在每一步选择概率最高的token。......
  • 深度学习——模型过拟合和欠拟合的原因及解决方法
    一、定义1.过拟合(Overfitting)过拟合是指模型在训练数据上表现非常好,但在测试数据或新的数据上表现很差的现象。模型过度地学习了训练数据中的细节和噪声,以至于它无法很好地泛化到未见过的数据。例如,在一个图像分类任务中,过拟合的模型可能对训练集中的每一张图像的特定细......