69 lines
2.5 KiB
R
69 lines
2.5 KiB
R
% Generated by roxygen2: do not edit by hand
|
|
% Please edit documentation in R/xgb.save.R
|
|
\name{xgb.save}
|
|
\alias{xgb.save}
|
|
\title{Save XGBoost model to binary file}
|
|
\usage{
|
|
xgb.save(model, fname)
|
|
}
|
|
\arguments{
|
|
\item{model}{Model object of \code{xgb.Booster} class.}
|
|
|
|
\item{fname}{Name of the file to write. Its extension determines the serialization format:
|
|
\itemize{
|
|
\item ".ubj": Use the universal binary JSON format (recommended).
|
|
This format uses binary types for e.g. floating point numbers, thereby preventing any loss
|
|
of precision when converting to a human-readable JSON text or similar.
|
|
\item ".json": Use plain JSON, which is a human-readable format.
|
|
\item ".deprecated": Use \strong{deprecated} binary format. This format will
|
|
not be able to save attributes introduced after v1 of XGBoost, such as the "best_iteration"
|
|
attribute that boosters might keep, nor feature names or user-specifiec attributes.
|
|
\item If the format is not specified by passing one of the file extensions above, will
|
|
default to UBJ.
|
|
}}
|
|
}
|
|
\description{
|
|
Save XGBoost model to a file in binary or JSON format.
|
|
}
|
|
\details{
|
|
This methods allows to save a model in an XGBoost-internal binary or text format which is universal
|
|
among the various xgboost interfaces. In R, the saved model file could be read later
|
|
using either the \code{\link[=xgb.load]{xgb.load()}} function or the \code{xgb_model} parameter of \code{\link[=xgb.train]{xgb.train()}}.
|
|
|
|
Note: a model can also be saved as an R object (e.g., by using \code{\link[=readRDS]{readRDS()}}
|
|
or \code{\link[=save]{save()}}). However, it would then only be compatible with R, and
|
|
corresponding R methods would need to be used to load it. Moreover, persisting the model with
|
|
\code{\link[=readRDS]{readRDS()}} or \code{\link[=save]{save()}} might cause compatibility problems in
|
|
future versions of XGBoost. Consult \link{a-compatibility-note-for-saveRDS-save} to learn
|
|
how to persist models in a future-proof way, i.e., to make the model accessible in future
|
|
releases of XGBoost.
|
|
}
|
|
\examples{
|
|
\dontshow{RhpcBLASctl::omp_set_num_threads(1)}
|
|
data(agaricus.train, package = "xgboost")
|
|
data(agaricus.test, package = "xgboost")
|
|
|
|
## Keep the number of threads to 1 for examples
|
|
nthread <- 1
|
|
data.table::setDTthreads(nthread)
|
|
|
|
train <- agaricus.train
|
|
test <- agaricus.test
|
|
|
|
bst <- xgb.train(
|
|
data = xgb.DMatrix(train$data, label = train$label),
|
|
max_depth = 2,
|
|
eta = 1,
|
|
nthread = nthread,
|
|
nrounds = 2,
|
|
objective = "binary:logistic"
|
|
)
|
|
|
|
fname <- file.path(tempdir(), "xgb.ubj")
|
|
xgb.save(bst, fname)
|
|
bst <- xgb.load(fname)
|
|
}
|
|
\seealso{
|
|
\code{\link[=xgb.load]{xgb.load()}}
|
|
}
|