PMML与JPMML
所属分类 PMML
浏览量 75
一、PMML基础知识
PMML概述:
PMML全称预测模型标记语言(Predictive Model Markup Language),利用XML描述和存储数据挖掘模型,是W3C接受的标准
主要用于跨平台的机器学习模型部署,任何软件栈都可以调用PMML储存的模型
PMML核心组成:
数据字典(Data Dictionary):描述输入数据
数据转换(Transformation Dictionary和Local Transformations):生成新的派生字段
模型定义(Model):每种模型类型有自己的定义
输出(Output):指定模型输出结果3
PMML优点:
平台无关性:脱离开发环境实现跨平台部署
互操作性:标准协议优势
广泛支持性:30余家厂商和开源项目支持
可读性:基于XML的文本文件
二、JPMML核心组件
JPMML主要项目:
JPMML-Model:用于PMML的Java类模型API
JPMML-Evaluator:用于PMML的Java评估程序API
JPMML功能特点:
完全支持PMML 3.0-4.4架构
完整的数据类型系统和操作类型系统
异常值、缺失值和无效值的处理
支持多种模型评估(神经网络、回归、决策树等)
三、实用教程与示例
1. Python生成PMML
from sklearn2pmml.pipeline import PMMLPipeline
from sklearn2pmml import sklearn2pmml
from sklearn import tree
X = [[1,2,3,1],[2,4,1,5],[7,8,3,6],[4,8,4,7],[2,5,6,9]]
y = [0,1,0,2,1]
pipeline = PMMLPipeline([("classifier", tree.DecisionTreeClassifier(random_state=9))])
pipeline.fit(X,y)
sklearn2pmml(pipeline, "demo.pmml", with_repr=True)
2. Java加载PMML:
Maven依赖
org.jpmml:pmml-evaluator.1.5.15
PMML pmml;
try(InputStream is = ...){
pmml = org.jpmml.model.PMMLUtil.unmarshal(is);
}
四、相关学习资源
https://dmg.org/pmml
用PMML实现机器学习模型的跨平台上线
https://www.cnblogs.com/pinard/p/9220199.html
使用PMML部署机器学习模型
https://zhuanlan.zhihu.com/p/79197337
https://github.com/nyoka-pmml/nyoka
https://github.com/jpmml/jpmml
五、学习路径建议
从PMML基础概念和XML结构开始学习
使用Python的sklearn2pmml或Nyoka库实践模型导出
学习Java环境下使用JPMML加载和评估模型
研究实际项目中的部署案例和问题解决方案
深入PMML高级功能如模型组合和复杂转换
上一篇
下一篇
PMML Model: Independent and Dependent Fields
PMML模型中 TargetFields 和 OutputFields 的区别
PMML模型监控分析
《回荡的钟摆》和《置身事内》
分税制简介
PMML模型PSI指标计算大数据量优化