Survival Priority Lasso Learner
mlr_learners_surv.priority_lasso.Rd
Patient outcome prediction based on multi-omics data taking practitioners’ preferences into account.
Calls prioritylasso::prioritylasso()
from prioritylasso.
Many parameters for this survival learner are the same as mlr_learners_surv.cv_glmnet
as prioritylasso()
calls glmnet::cv.glmnet()
during training phase.
Note that prioritylasso()
has ways to deal with block-wise missing data,
but this feature is not supported currently.
Prediction types
This learner returns three prediction types:
lp
: a vector containing the linear predictors (relative risk scores), where each score corresponds to a specific test observation. Calculated usingprioritylasso::predict.prioritylasso()
.crank
: same aslp
.distr
: a survival matrix in two dimensions, where observations are represented in rows and time points in columns. Calculated usingmlr3proba::breslow()
where the Breslow estimator is used for computing the baseline hazard.
Initial parameter values
family
is set to"cox"
for the Cox survival objective and cannot be changedtype.measure
set to"deviance"
(cross-validation measure)
Meta Information
Task type: “surv”
Predict Types: “crank”, “distr”, “lp”
Feature Types: “logical”, “integer”, “numeric”
Required Packages: mlr3, mlr3proba, prioritylasso
Parameters
Id | Type | Default | Levels | Range |
blocks | untyped | - | - | |
max.coef | untyped | NULL | - | |
block1.penalization | logical | TRUE | TRUE, FALSE | - |
lambda.type | character | lambda.min | lambda.min, lambda.1se | - |
standardize | logical | TRUE | TRUE, FALSE | - |
nfolds | integer | 5 | \([1, \infty)\) | |
foldid | untyped | NULL | - | |
cvoffset | logical | FALSE | TRUE, FALSE | - |
cvoffsetnfolds | integer | 10 | \([1, \infty)\) | |
return.x | logical | TRUE | TRUE, FALSE | - |
include.allintercepts | logical | FALSE | TRUE, FALSE | - |
use.blocks | untyped | "all" | - | |
alignment | character | lambda | lambda, fraction | - |
alpha | numeric | 1 | \([0, 1]\) | |
big | numeric | 9.9e+35 | \((-\infty, \infty)\) | |
devmax | numeric | 0.999 | \([0, 1]\) | |
dfmax | integer | - | \([0, \infty)\) | |
eps | numeric | 1e-06 | \([0, 1]\) | |
epsnr | numeric | 1e-08 | \([0, 1]\) | |
exclude | untyped | - | - | |
exmx | numeric | 250 | \((-\infty, \infty)\) | |
fdev | numeric | 1e-05 | \([0, 1]\) | |
gamma | untyped | - | - | |
grouped | logical | TRUE | TRUE, FALSE | - |
intercept | logical | TRUE | TRUE, FALSE | - |
keep | logical | FALSE | TRUE, FALSE | - |
lambda | untyped | - | - | |
lambda.min.ratio | numeric | - | \([0, 1]\) | |
lower.limits | untyped | -Inf | - | |
maxit | integer | 100000 | \([1, \infty)\) | |
mnlam | integer | 5 | \([1, \infty)\) | |
mxit | integer | 100 | \([1, \infty)\) | |
mxitnr | integer | 25 | \([1, \infty)\) | |
nlambda | integer | 100 | \([1, \infty)\) | |
offset | untyped | NULL | - | |
parallel | logical | FALSE | TRUE, FALSE | - |
penalty.factor | untyped | - | - | |
pmax | integer | - | \([0, \infty)\) | |
pmin | numeric | 1e-09 | \([0, 1]\) | |
prec | numeric | 1e-10 | \((-\infty, \infty)\) | |
standardize.response | logical | FALSE | TRUE, FALSE | - |
thresh | numeric | 1e-07 | \([0, \infty)\) | |
trace.it | integer | 0 | \([0, 1]\) | |
type.gaussian | character | - | covariance, naive | - |
type.logistic | character | Newton | Newton, modified.Newton | - |
type.multinomial | character | ungrouped | ungrouped, grouped | - |
upper.limits | untyped | Inf | - | |
relax | logical | FALSE | TRUE, FALSE | - |
References
Simon K, Vindi J, Roman H, Tobias H, Anne-Laure B (2018). “Priority-Lasso: a simple hierarchical approach to the prediction of clinical outcome using multi-omics data.” BMC Bioinformatics, 19. doi:10.1186/s12859-018-2344-6 .
See also
as.data.table(mlr_learners)
for a table of available Learners in the running session (depending on the loaded packages).Chapter in the mlr3book: https://mlr3book.mlr-org.com/basics.html#learners
mlr3learners for a selection of recommended learners.
mlr3cluster for unsupervised clustering learners.
mlr3pipelines to combine learners with pre- and postprocessing steps.
mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.
Super classes
mlr3::Learner
-> mlr3proba::LearnerSurv
-> LearnerSurvPriorityLasso
Methods
Examples
# Define a Task
task = tsk("grace")
# Create train and test set
ids = partition(task)
# check task's features
task$feature_names
#> [1] "age" "los" "revasc" "revascdays" "stchange"
#> [6] "sysbp"
# partition features to 2 blocks
blocks = list(bl1 = 1:3, bl2 = 4:6)
# define learner
learner = lrn("surv.priority_lasso", blocks = blocks, block1.penalization = FALSE,
lambda.type = "lambda.1se", standardize = TRUE, nfolds = 5)
# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
# selected features
learner$selected_features()
#> [1] "age" "los" "revasc" "revascdays"
# Make predictions for the test observations
pred = learner$predict(task, row_ids = ids$test)
pred
#> <PredictionSurv> for 330 observations:
#> row_ids time status crank lp distr
#> 3 2 FALSE 1.2755418 1.2755418 <list[1]>
#> 6 5 FALSE 1.2544833 1.2544833 <list[1]>
#> 14 12 TRUE 0.6423523 0.6423523 <list[1]>
#> --- --- --- --- --- ---
#> 993 53 TRUE 3.2680253 3.2680253 <list[1]>
#> 996 69 TRUE 3.3841130 3.3841130 <list[1]>
#> 999 3 TRUE 3.1355789 3.1355789 <list[1]>
# Score the predictions
pred$score()
#> surv.cindex
#> 0.7468656