stack

Train multiple base learners and combine their predictions with a meta-learner. Cross-validated internally to prevent leakage between levels.

Signature

ml.stack(data, target, *, models=None, meta=None, cv_folds=5, seed, passthrough=False)
ml_stack(data, target, models = NULL, meta = NULL, cv_folds = 5L, seed = NULL)

Parameters

ParameterTypeDefaultDescription
dataDataFrameTraining data
targetstrTarget column
modelslist | NoneNoneBase learner algorithm names. None = sensible defaults.
metastr | NoneNoneMeta-learner algorithm. Default: logistic (classification), linear (regression).
cv_foldsint5CV folds for generating out-of-fold predictions
seedintRandom seed
passthroughboolFalseInclude original features alongside base learner predictions (Python only)

Returns

A Model (stacked ensemble). Use it like any other model — evaluate, assess, predict all work.

Examples

Default stack

model = ml.stack(s.train, "target", seed=42)
ml.evaluate(model, s.valid)
model <- ml_stack(s$train, "target", seed = 42)
ml_evaluate(model, s$valid)

Custom base learners

model = ml.stack(
    s.train, "target",
    models=["xgboost", "random_forest", "logistic"],
    meta="logistic",
    seed=42,
)
model <- ml_stack(
  s$train, "target",
  models = c("xgboost", "random_forest", "logistic"),
  meta = "logistic",
  seed = 42
)