* [R] make sure things work for a single split model; fixes #2191 * [R] add option use_int_id to xgb.model.dt.tree * [R] add example of exporting tree plot to a file * [R] set save_period = NULL as default in xgboost() to be the same as in xgb.train; fixes #2182 * [R] it's a good practice after CRAN releases to bump up package version in dev * [R] allow xgb.DMatrix construction from integer dense matrices * [R] xgb.DMatrix: silent parameter; improve documentation * [R] xgb.model.dt.tree code style changes * [R] update NEWS with parameter changes * [R] code safety & style; handle non-strict matrix and inherited classes of input and model; fixes #2242 * [R] change to x.y.z.p R-package versioning scheme and set version to 0.6.4.3 * [R] add an R package versioning section to the contributors guide * [R] R-package/README.md: clean up the redundant old installation instructions, link the contributors guide
43 lines
1.7 KiB
R
43 lines
1.7 KiB
R
#' Save xgboost model to binary file
|
|
#'
|
|
#' Save xgboost model to a file in binary format.
|
|
#'
|
|
#' @param model model object of \code{xgb.Booster} class.
|
|
#' @param fname name of the file to write.
|
|
#'
|
|
#' @details
|
|
#' This methods allows to save a model in an xgboost-internal binary format which is universal
|
|
#' among the various xgboost interfaces. In R, the saved model file could be read-in later
|
|
#' using either the \code{\link{xgb.load}} function or the \code{xgb_model} parameter
|
|
#' of \code{\link{xgb.train}}.
|
|
#'
|
|
#' Note: a model can also be saved as an R-object (e.g., by using \code{\link[base]{readRDS}}
|
|
#' or \code{\link[base]{save}}). However, it would then only be compatible with R, and
|
|
#' corresponding R-methods would need to be used to load it.
|
|
#'
|
|
#' @seealso
|
|
#' \code{\link{xgb.load}}, \code{\link{xgb.Booster.complete}}.
|
|
#'
|
|
#' @examples
|
|
#' data(agaricus.train, package='xgboost')
|
|
#' data(agaricus.test, package='xgboost')
|
|
#' train <- agaricus.train
|
|
#' test <- agaricus.test
|
|
#' bst <- xgboost(data = train$data, label = train$label, max_depth = 2,
|
|
#' eta = 1, nthread = 2, nrounds = 2,objective = "binary:logistic")
|
|
#' xgb.save(bst, 'xgb.model')
|
|
#' bst <- xgb.load('xgb.model')
|
|
#' pred <- predict(bst, test$data)
|
|
#' @export
|
|
xgb.save <- function(model, fname) {
|
|
if (typeof(fname) != "character")
|
|
stop("fname must be character")
|
|
if (!inherits(model, "xgb.Booster")) {
|
|
stop("model must be xgb.Booster.",
|
|
if (inherits(model, "xgb.DMatrix")) " Use xgb.DMatrix.save to save an xgb.DMatrix object." else "")
|
|
}
|
|
model <- xgb.Booster.complete(model, saveraw = FALSE)
|
|
.Call("XGBoosterSaveModel_R", model$handle, fname[1], PACKAGE = "xgboost")
|
|
return(TRUE)
|
|
}
|