r - R 和 PMML xgboost 概率输出之间的最小差异
问题描述
我在 R 中构建了一个 xgboost 模型并将其导出为 PMML(使用 r2pmml)。
我用 R 和 PMML(用 Java)测试了相同的数据集,概率输出非常接近,但它们在 1e-8 和 1e-10 之间都有很小的差异。这些差异太小,不会由输入数据的问题引起。
这是在不同语言/软件之间舍入的经典行为,还是我在某处犯了错误。
解决方案
概率输出非常接近,但它们在 1e-8 和 1e-10 之间都有很小的差异。
XGBoost 库使用float32
数据类型(单精度浮点),其“自然精度”在此范围内约为 1e-7 .. 1e-8(概率值,介于 0 和 1 之间)。
因此,您观察到的差异小于“自然精度”,不应成为进一步关注的原因。
(J)PMML 表示执行与原生 XGBoost 表示完全相同的计算(助推器浮点值的总和,对其应用归一化函数)。
推荐阅读
- typescript - 在 Typescript 中找不到名称“进程”错误并且没有 tsconfig 文件
- c - C Unix msgsnd没有发送一些消息
- java - 不要根据条件返回空元素 - Java Srinboot
- sql - BigQuery:模糊连接两个表
- angular - Angular 中的子组件在 Storybook 中无法识别,同时与 ng serve 完美配合
- html - 借助 html 中的表格创建图片库
- c# - 我无法在 C# 中使用 IComparable 接口比较两个对象
- r - 自动命名表并导出为图像?
- scala - Scala 中的 Future 和 Promise 是什么?
- javascript - 是否有可靠的方法来衡量 JavaScript 中代码的性能?