mb_seq chains one or more mb_layer objects together. Each layer runs
after the previous one, receiving a dataset enriched with all predictions
produced so far. This allows later layers to use earlier predictions as
input features.
Usage
mb_seq(
...,
train = NULL,
test = NULL,
holdout = NULL,
y_name = NA_character_,
expo_name = NA_character_,
model_display_name = NA_character_
)Arguments
- ...
One or more
mb_layerobjects, in execution order.- train, test, holdout
Data frames for model development and evaluation.
- y_name
[character(1)]Final target variable name. Used by diagnostic functions.- expo_name
[character(1)]Exposure column name. DefaultNA.- model_display_name
[character(1)]Human-readable label.
Details
At construction time, mb_seq validates that every blueprint's required
columns (@x_original_inputs, @expo_name, @offset_name) are present
in the supplied data at the point that blueprint would run – accounting for
the fact that earlier layers add new columns.
See also
mb_layer() to construct individual layers, predict.mb_seq()
for generating predictions.
Examples
if (FALSE) { # \dontrun{
# Pure premium: frequency * severity
seq_ps <- mb_seq(
mb_layer(
blueprints = list(mb_freq, mb_sev),
yhat_name = "pred_pure",
aggregate_fn = function(df) {
df[["pred_pure"]] <- df[["pred_freq"]] * df[["pred_sev"]]
df
}
),
train = df_train,
y_name = "burn_cost",
expo_name = "earned_premium",
model_display_name = "pure_premium"
)
# Expected loss: PD x EAD x LGD
seq_el <- mb_seq(
mb_layer(
blueprints = list(mb_pd, mb_ead, mb_lgd),
yhat_name = "pred_el",
aggregate_fn = function(df) {
df[["pred_el"]] <- df[["pred_pd"]] * df[["pred_ead"]] * df[["pred_lgd"]]
df
}
),
train = df_train,
y_name = "actual_loss"
)
# Sequential: GLM output feeds XGBoost as a feature
seq_chain <- mb_seq(
mb_layer(list(mb_glm)),
mb_layer(list(mb_xgb)),
train = df_train,
y_name = "target"
)
} # }