知识库 : PMML聚类模型导入导出

Edit Document

 

 

 

 

 

PMML聚类模型导入导出


目录

一、 PMML 聚类模型介绍

二、 聚类模型结构

三、 构造导出 PMML 过程

四、 解析导入 PMML 过程

五、 其他聚类算法

1 、 PMML 聚类模型介绍

a)          PMML 模型中肯定包括数据字典,字典中包括数据输入列、类型以及可能取值范围。

b)         在 PMML 中添加聚类模型信息,有提供者提供 PMML 信息,获取者解析 PMML 中包含的信息,并创建聚类模型,完成聚类工作。

c)          通过 PMML 模型,可以做到跨平台,跨软件的挖掘模型信息传递。

2 、 聚类模型结构

a)          ClusteringModel 是用于标记聚类模型的标签。

b)         ClusteringModel 中包括 modelName 、 functionName 、 algorithmName 、 modelClass 、聚类个数、是否可产生数值等属性。 modelName 表示模型名,是可选的; functionName 表示挖掘方法,这个属性是必须的,在聚类模型中必须被设置为 clustering ; algorithmName 表示算法名称,可选; modelClass 是必选的,表示模型类别,分为基于中心的和基于分布的两种,基于中心模型如 K-Means ,基于分布的模型如 EM 。

c)          MiningSchema

      1. 按照 PMML 文档的规范, MiningSchema 是模型元素的门卫,哪个模型都要有,其中包含的 MiningField 应该取至 DataDictionary 的 DataField ,用于标识本模型真正使用到的属性。

d)         Output

      1. 定义输入格式, OutputField 定义每列输入的信息。

e)          LocalTransformations

      1. 类似于 TransformationDictionary 。

f)           ComparisonMeasure

      1. 指定度量指标,如 euclidean 、 squaredEuclidean 、 minkowski 等,是必选的。

g)          ClusteringField

      1. 指定参与聚类的列。

h)         Cluster

      1. 每个 Cluster 包含一个聚类的簇信息

3 、 构造导出 PMML 过程

a)          这里使用的是 org.dmg.pmml 包,首先创建 PMMLDocument ,通过 PMMLDocument.getPMML() 获取 PMML ,使用 PMML.addNew 方法按照 dmg.org 网站上提供的 schema.xsd 信息进行添加,最终完成 PMMLDocument 的构造。

4 、 解析导入 PMML 过程

a)          在导入 PMML 后,首先需要经过 PMMLDocument.validate() 的验证,如果词法和语法有问题,就不能保证解析出的内容完整性。

b)         获取 PMMLDocument 对象后,通过 ClusteringField 获取参与聚类的列,获取指标和簇心信息。

c)          比如 K-Means ,会获取各个质点的信息,然后根据 ComparisonMeasure 指定的指标类型,计算测试集各点所属聚类信息。

5 、 其他聚类算法

a)          对于一些聚类算法, PMML 并没有直接的支持,比如 modelClass 中不支持密度聚类。

b)         这时,可以使用 ClusteringModel.addNewExtension() 添加扩展,使用 Extension.newCursor 获取 XmlCursor ,通过 XmlCursor 添加扩展内容。在导入模型时,再通过 XmlCursor 解析扩展内容,来达到定制的目的。

Attachments:

PMML聚类模型导入导出.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)