首页  

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指标计算大数据量优化