R:将插入符号xgboost训练模型保存为二进制(.model)
我已经创建了我的xgboost模型。它是这样工作的:R:将插入符号xgboost训练模型保存为二进制(.model),r,machine-learning,xgboost,r-caret,training-data,R,Machine Learning,Xgboost,R Caret,Training Data,我已经创建了我的xgboost模型。它是这样工作的: my_model <- caret::train( ... ) 在我的全球环境中,我看到了“我的模型”的描述: 首先,模型工作正常,一切正常。此外,我还可以将此模型保存为.RDA或.RDS对象,并加载它。但对于我的数据工程师同事,我需要将其保存为某种特定的二进制格式-*.model 因此,当我尝试使用xgb.save函数直接保存到“my_model”时,它显然不起作用,因为它的类!='xgb.助推器'。所以我在谷歌上搜索了一下,读到
my_model <- caret::train( ... )
在我的全球环境中,我看到了“我的模型”的描述:
首先,模型工作正常,一切正常。此外,我还可以将此模型保存为.RDA或.RDS对象,并加载它。但对于我的数据工程师同事,我需要将其保存为某种特定的二进制格式-*.model
因此,当我尝试使用xgb.save函数直接保存到“my_model”时,它显然不起作用,因为它的类!='xgb.助推器'。所以我在谷歌上搜索了一下,读到我需要保存“my_model$finalModel”。它看起来不错-它的等级是正确的:
> class(my_model$finalModel)
[1] "xgb.Booster"
我可以这样保存模型。但它的文件大小非常小,当我的同事尝试将它加载到他的Spark系统时,它看起来像一个空文件。它实在太小了:
> object_size(my_model$finalModel)
447 kB
所以看起来“my_model$finalModel”只是“my_model”中不适合我的一小部分
问题是-如何将其保存为*.model格式?我做错了什么?
xgb.save(我的_model$finalModel,“xgb.model”)
将以二进制格式将模型保存为.model
。正如我在邮件中所写,您可以看到它不起作用:“我可以这样保存模型。”。但它的文件大小非常小,当我的同事尝试将它加载到他的Spark系统时,它看起来像一个空文件。而且当我尝试加载保存的.model文件时,它真的太小了——它错误地冲破了我的屏幕
> object_size(my_model$finalModel)
447 kB