【问题标题】:Incorrect Predictions after exporting file to PMML from R to Python将文件从 R 导出到 PMML 到 Python 后的错误预测
【发布时间】:2020-10-09 19:42:21
【问题描述】:

我使用库 gbm 在 R 上构建了一个 gbm 分类器。

gbm2<-gbm(deal_stage~.,data=train,train.fraction=1,
          interaction.depth=4,shrinkage=.001,
          n.trees=6000,bag.fraction=0.5,cv.folds=5,
          distribution="bernoulli",verbose=T)

r2pmml(gbm2,"/gbm_test.pmml",compact=TRUE)

然后在 Python 上,当我尝试从 PMML 文件中进行预测时,得到的结果与在 R 上得到的结果不同。

from pypmml import Model
model = Model.fromFile('gbm_test.pmml')
model.predict(observation)

总体而言,我在训练集和测试集上对两种模型的准确度有所不同。 我的数据集包含整数和字符串特征。并且某些字段存在缺失值,通常应该由分类器处理。

我非常感谢您提出建议,看看我应该改变什么以使我对 Python 的预测与我在 R 上观察到的一致! 谢谢!

【问题讨论】:

  • 能不能在pypmml的github上开个issue? github.com/autodeployai/pypmml,你最好附上你的模型,并使用 R 模型提供一个或多个观察记录的结果,然后 pypmml 维护者可以轻松地重现你的问题。

标签: python r gbm pmml


【解决方案1】:

如果您使用 JPMML 工具将模型转换为 PMML 文件,那么您还应该使用 JPMML 评估器对这些 PMML 文件进行评分。 JPMML 软件项目具有广泛的集成测试覆盖率,涵盖了整个管道。

现在,如果你从 PyPMML 切换到 JPMML-Evaluator-Python,你会得到正确的预测吗?

【讨论】:

  • 感谢您的回答!我得到的预测与 JPMML 评估器之前完全相同,因此这不是解决我问题的好方法。
  • 尝试缩小问题范围。对于初学者,错误预测会影响所有/随机行,还是仅影响缺失值的行?如果数据集仅包含整数特征,是否会发生错误预测?可能是 R2PMML 包的问题。
  • 你说得对,我认为这个问题与 R2PMML 包以及它如何处理缺失值有关。我会尽力为它找到解决方案!
猜你喜欢
  • 2013-05-31
  • 2017-10-14
  • 2016-01-18
  • 2016-12-23
  • 1970-01-01
  • 2014-09-25
  • 2014-04-08
  • 1970-01-01
  • 2016-10-19
相关资源
最近更新 更多