# Survival L1 and L2 Penalized Cox Learner

`mlr_learners_surv.penalized.Rd`

Penalized (L1 and L2) Cox Proportional Hazards model.
Calls `penalized::penalized()`

from penalized.

## Details

The `penalized`

and `unpenalized`

arguments in the learner are implemented slightly
differently than in `penalized::penalized()`

. Here, there is no parameter for `penalized`

but
instead it is assumed that every variable is penalized unless stated in the `unpenalized`

parameter.

## Prediction types

This learner returns two prediction types:

`distr`

: a survival matrix in two dimensions, where observations are represented in rows and time points in columns. Calculated using the internal`penalized::predict()`

function. By default the Breslow estimator`penalized::breslow()`

is used for computing the baseline hazard.`crank`

: the expected mortality using`mlr3proba::.surv_return()`

.

## Meta Information

Task type: “surv”

Predict Types: “crank”, “distr”

Feature Types: “logical”, “integer”, “numeric”, “factor”

Required Packages: mlr3, mlr3proba, mlr3extralearners, penalized, pracma

## Parameters

Id | Type | Default | Levels | Range |

unpenalized | untyped | - | - | |

lambda1 | untyped | 0 | - | |

lambda2 | untyped | 0 | - | |

positive | logical | FALSE | TRUE, FALSE | - |

fusedl | logical | FALSE | TRUE, FALSE | - |

startbeta | numeric | - | \((-\infty, \infty)\) | |

startgamma | numeric | - | \((-\infty, \infty)\) | |

steps | integer | 1 | \([1, \infty)\) | |

epsilon | numeric | 1e-10 | \([0, 1]\) | |

maxiter | integer | - | \([1, \infty)\) | |

standardize | logical | FALSE | TRUE, FALSE | - |

trace | logical | TRUE | TRUE, FALSE | - |

## References

Goeman, J J (2010).
“L1 penalized estimation in the Cox proportional hazards model.”
*Biometrical journal*, **52**(1), 70–84.

## 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`

-> `LearnerSurvPenalized`

## Methods

## Inherited methods

### Method `selected_features()`

Selected features are extracted with the method `coef()`

of the S4 model
object, see `penalized::penfit()`

.
By default it returns features with non-zero coefficients.

**Note**: Selected features can be retrieved only for datasets with
`numeric`

features, as the presence of factors with multiple levels makes
it difficult to get the original feature names.

## Examples

```
# Define the Learner
learner = mlr3::lrn("surv.penalized")
print(learner)
#> <LearnerSurvPenalized:surv.penalized>: Penalized Regression
#> * Model: -
#> * Parameters: trace=FALSE
#> * Packages: mlr3, mlr3proba, mlr3extralearners, penalized, pracma
#> * Predict Types: [crank], distr
#> * Feature Types: logical, integer, numeric, factor
#> * Properties: -
# Define a Task
task = mlr3::tsk("grace")
# Create train and test set
ids = mlr3::partition(task)
# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
print(learner$model)
#> $model
#> Penalized cox regression object
#> 6 regression coefficients
#>
#> Loglikelihood = -1324.814
#>
#> $task_has_factors
#> [1] FALSE
#>
# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)
# Score the predictions
predictions$score()
#> surv.cindex
#> 0.829731
```