Skip to contents

Trains and tests prediction models

Usage

traintest(
  y_train,
  X_train,
  y_test = NULL,
  X_test = NULL,
  family = "gaussian",
  alpha = 1,
  method = c("wrap_empty", "wrap_separate", "sparselink"),
  alpha.init = 0.95,
  type = "exp",
  cands = NULL
)

Arguments

y_train

target of training samples: \(n \times q\) matrix (multi-task learning) or list of \(q\) vectors of length \(n_1,\ldots,n_q\) (transfer learning)

X_train

features of training samples: \(n \times p\) matrix (multi-task learning) or list of \(q\) matrices of dimensions \(n_1 \times p,\ldots,n_q \times p\) (transfer learning)

y_test

target of testing samples: \(m \times p\) matrix (multi-task learning) or list of \(q\) vectors of length \(m_1,\ldots,m_q\) (transfer learning)

X_test

features of testing samples: \(m \times p\) matrix (multi-task learning) or list of \(q\) matrices of dimensions \(m_1 \times p,\ldots,m_q \times p\) (transfer learning)

family

character "gaussian" or "binomial"

alpha

elastic net mixing parameter of final regressions, default: 1 (lasso)

alpha.init

elastic net mixing parameter for initial regressions, default: 0.95 (lasso-like elastic net)

type

default "exp" scales weights with \(w_{ext}^{v_{ext}}+w_{int}^{v_{int}}\) (see internal function construct_penfacs for details)

cands

candidate values for both scaling parameters, default: NULL ({0, 0.2, 0.4, 0.6, 0.8, 1})

Value

Returns a list with the computation time in slot time, the out-of-sample deviance in slot deviance, the out-of-sample ROC-AUC in slot auc, the coefficients in slot coef, the predicted value in slot y_hat, and the optimal hyperparameters in slot hyperpar.

Examples

#--- multi-task learning ---
# \donttest{
family <- "gaussian"
data <- sim_data_multi(family=family)
result <- traintest(data$y_train,data$X_train,family=family)# }
#> method: wrap_empty
#> method: wrap_separate
#> method: sparselink
#> mode: multi-target learning, alpha.init=0.95 (elastic net), alpha=1 (lasso)

#--- transfer learning ---
# \donttest{
family <- "gaussian"
data <- sim_data_trans(family=family)
result <- traintest(data$y_train,data$X_train,family=family)# }
#> method: wrap_empty
#> method: wrap_separate
#> method: sparselink
#> mode: transfer learning, alpha.init=0.95 (elastic net), alpha=1 (lasso)