1
我正在使用Pyspark和JPMML库从我的管道模型生成PMML模型。但我认为它没有正确生成。为了测试这个,我使用相同的数据集和分类器创建了两个不同的流水线模型,如下所示。使用JPMML和Pyspark不能将管道转换为PMML
pipeline = Pipeline(stages = [assembler, slicer,pca, binarizer,assembler2, formula,classifier])
pipeline2 = Pipeline(stages = [assembler, slicer, binarizer,assembler2, formula,classifier])
但是,当我使用下面的代码片段生成PMML文件时,它会输出两个相同的文件。这意味着模型之间没有区别。我很困惑。生成的PMML文件应该是不同的,如果它正确转换正确?
pipelineModel1 = pipeline.fit(df)
pmmlBytes = toPMMLBytes(spark, df, pipelineModel1)
with open('test.pmml','wb') as output:
output.write(pmmlBytes)
pipelineModel2 = pipeline2.fit(df)
pmmlBytes2 = toPMMLBytes(spark, df, pipelineModel2)
with open('test1.pmml','wb') as output:
output.write(pmmlBytes2)
我有问题。假设有些列不会对最后的输出做出贡献。但是输入数据的预处理步骤应该完成,不管对吗?例如,如果我在预处理步骤中使用矢量切片等,并将它们包含在我的管线中,那么这些信息应该在PMML中进行编码,因为在预测时应该对传入数据应用相同的操作。但是,尽管预处理步骤不同,但是如何生成相同的PMML? – SameeraR
对采矿功能未使用的列进行预处理没有意义。这只是浪费了计算周期。 – user1808924