PMML文档结构简介
目录
1 、 PMML 介绍
PMML ( Predictive Model Markup Language )主要是作为分析模型训练实例的载体,截至到 PMML 4.2 版本,支持的模型包括:关联规则、基线模型、决策树、聚类、回归、 KNN 、神经网络、贝叶斯、记分牌、序列、文本、时间序列、规则集和 SVM 。
PMML 使用统一的规范进行验证,使用 XSD 进行词法验证,使用 XSLT 进行语法验证,在构造和解析的时候都要依照统一的 PMML 规范操作。
2 、 PMML 结构
a) PMML 标签
PMML 的命名空间定义如下:
xmlns="http://www.dmg.org/PMML-4_2"
b) Header 标签
Header 标签标识着 PMML 正文的开始,可以包含 copyright 、描述、名称等信息,可以添加时间戳、注解等元素。
c) MiningBuildTask
此元素包含构造模型实例的配置信息,一般是 SQL 或 Java 片段。
d) DataDictionary
此元素包含挖掘模型的每个属性信息,通过 DataDictionary 基本可以确定模型的规模。在 DataDictionary 中的 DataField 的 name 必须在 DataField 和 DerivedField 的 name 中唯一。
e) TransformationDictionary
TransformationDictionary 主要用于从原数据到模型使用数据之间的映射,支持的映射包括正规化、离散化、数值映射、词频、定义函数和聚集。
f) 模型元素
前面已经提到了 PMML 支持的模型种类,这里仅对分类模型进行简介,其他模型类似。
- 分类模型
PMML 中的 TreeModel 可以用来定义一个分类或预测模型,包含 modelName 、 functionName 、 algorithmName 、 missingValueStrategy 、 missingValuePenalty 、 noTrueChildStrategy 、 splitCharacteristic 和 isScorable 属性,这些属性根据字面意思都很容易理解,根据 xsd 中的规定取得枚举值。
- Extension
Extension 标签是 PMML 提供的一种扩展机制,用户可以根据需要在此标签中自行扩展内容,当然这些内容在其他软件中可能是不兼容的。
- MiningSchema
按照 PMML 文档的规范, MiningSchema 是模型元素的门卫,哪个模型都要有,其中包含的 MiningField 应该取至 DataDictionary 的 DataField ,用于标识本模型真正使用到的属性。
- Output
定义了输出的格式。
- ModelStats
提供了一个统计信息的基本框架,提供单个和多个变量的统计。
- ModelExplanation
ModelExplanation 提供针对模型的具体解释,包括单变量统计、分区、预测模型质量、分类模型质量、累计收益提升图和分级质量信息、 ROC 、混淆矩阵、相关性度量。
- Targets
包含多个 Target ,用于标识目标列信息。
- Node
Node 本身包含树中的一个节点,可能是内部节点也可能是叶子节点,节点中包含分类的具体信息。
- ModelVerification
提供了一个数据集,用于校验 PMML 在不同环境中,是否会造成模型能力下降。