robyn_train()
consumes output from robyn_input()
and runs the robyn_mmm()
on each trial.
robyn_train(
InputCollect,
hyper_collect,
cores,
iterations,
trials,
intercept_sign,
intercept,
nevergrad_algo,
dt_hyper_fixed = NULL,
ts_validation = TRUE,
add_penalty_factor = FALSE,
objective_weights = NULL,
rssd_zero_penalty = TRUE,
refresh = FALSE,
seed = 123,
quiet = FALSE
)
List. Iteration results to include in robyn_run()
results.
List. Contains all input parameters for the model.
Required when robyn_object
is not provided.
List. Containing hyperparameter bounds. Defaults to
InputCollect$hyperparameters
.
Integer. Default to parallel::detectCores() - 1
(all cores
except one). Set to 1 if you want to turn parallel computing off.
Integer. Recommended 2000 for default when using
nevergrad_algo = "TwoPointsDE"
.
Integer. Recommended 5 for default
nevergrad_algo = "TwoPointsDE"
.
Character. Choose one of "non_negative" (default) or
"unconstrained". By default, if intercept is negative, Robyn will drop intercept
and refit the model. Consider changing intercept_sign to "unconstrained" when
there are context_vars
with large positive values.
Boolean. Should intercept(s) be fitted (default=TRUE) or set to zero (FALSE).
Character. Default to "TwoPointsDE". Options are
c("DE","TwoPointsDE", "OnePlusOne", "DoubleFastGADiscreteOnePlusOne",
"DiscreteOnePlusOne", "PortfolioDiscreteOnePlusOne", "NaiveTBPSA",
"cGA", "RandomSearch")
.
data.frame or named list. Only provide when loading
old model results. It consumes hyperparameters from saved csv
pareto_hyperparameters.csv
or JSON file to replicate a model.
Boolean. When set to TRUE
, Robyn will split data
by test, train, and validation partitions to validate the time series. By
default the "train_size" range is set to c(0.5, 0.8)
, but it can be
customized or set to a fixed value using the hyperparameters input. For example,
if train_size = 0.7
, validation size and test size will both be 0.15
and 0.15. When ts_validation = FALSE
, nrmse_train is the
objective function; when ts_validation = TRUE
, nrmse_val is the objective
function.
Boolean. Add penalty factor hyperparameters to glmnet's penalty.factor to be optimized by nevergrad. Use with caution, because this feature might add too much hyperparameter space and probably requires more iterations to converge.
Numeric vector. Default to NULL to give equal weights
to all objective functions. Order: NRMSE, DECOMP.RSSD, MAPE (when calibration
data is provided). When you are not calibrating, only the first 2 values for
objective_weights
must be defined, i.e. set c(2, 1) to give double weight
to the 1st (NRMSE). This is an experimental feature. There's no research on
optimal weight setting. Subjective weights might strongly bias modeling results.
Boolean. When TRUE, the objective function DECOMP.RSSD will penalize models with more 0 media effects additionally. In other words, given the same DECOMP.RSSD score, a model with 50% 0-coef variables will get penalized by DECOMP.RSSD * 1.5 (larger error), while another model with no 0-coef variables gets un-penalized with DECOMP.RSSD * 1.
Boolean. Set to TRUE
when used in robyn_refresh()
.
Integer. For reproducible results when running nevergrad.
Boolean. Keep messages off?