作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 xgboost .model 文件,它是在 R 中使用 xgboost::save()
生成的。现在,我想加载该文件并在 python 中使用它。
最佳答案
这似乎是不可能的(编辑:在标准 python xgboost 库中),因为 python 实现无法从字节串加载模型,这是一个根据 this github thread 的错误
该线程中的注释提供了使用 xgboost.core 库的解决方法函数:
import ctypes
import xgboost
import xgboost.core
def xgb_load_model(buf):
if isinstance(buf, str):
buf = buf.encode()
bst = xgboost.core.Booster()
n = len(buf)
length = xgboost.core.c_bst_ulong(n)
ptr = (ctypes.c_char * n).from_buffer_copy(buf)
xgboost.core._check_call(
xgboost.core._LIB.XGBoosterLoadModelFromBuffer(bst.handle, ptr, length)
)
return bst
如果您在二进制文件中读取类似以下内容:
with open('xgb_model.model','rb') as f:
raw = f.read()
您应该能够通过以下方式从字节串加载:
model = xgb_load_model(raw)
关于python - 在Python中加载xgboost模型,该模型由R中的 `xgboost::save()`保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506019/
我是一名优秀的程序员,十分优秀!