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