首页 > 解决方案 > R 和 PMML xgboost 概率输出之间的最小差异

问题描述

我在 R 中构建了一个 xgboost 模型并将其导出为 PMML(使用 r2pmml)。
我用 R 和 PMML(用 Java)测试了相同的数据集,概率输出非常接近,但它们在 1e-8 和 1e-10 之间都有很小的差异。这些差异太小,不会由输入数据的问题引起。

这是在不同语言/软件之间舍入的经典行为,还是我在某处犯了错误。

标签: rxgboostpmml

解决方案


概率输出非常接近,但它们在 1e-8 和 1e-10 之间都有很小的差异。

XGBoost 库使用float32数据类型(单精度浮点),其“自然精度”在此范围内约为 1e-7 .. 1e-8(概率值,介于 0 和 1 之间)。

因此,您观察到的差异小于“自然精度”,不应成为进一步关注的原因。

(J)PMML 表示执行与原生 XGBoost 表示完全相同的计算(助推器浮点值的总和,对其应用归一化函数)。


推荐阅读