This class logs the inbag risk for a specific loss function. It is also possible to use custom losses to log performance measures. For details see the use case or extending compboost vignette.


S4 object.


LoggerInbagRisk$new(logger_id, use_as_stopper, used_loss, eps_for_break, patience)


logger_id [character(1)]

Unique identifier of the logger.

use_as_stopper [logical(1)]

Boolean to indicate if the logger should also be used as stopper.

used_loss [Loss object]

The loss used to calculate the empirical risk by taking the mean of the returned defined loss within the loss object.

eps_for_break [numeric(1)]

This argument is used if the loss is also used as stopper. If the relative improvement of the logged inbag risk falls above this boundary the stopper returns TRUE.


This logger computes the risk for the given training data \(\mathcal{D} = \{(x^{(i)},\ y^{(i)})\ |\ i \in \{1, \dots, n\}\}\) and stores it into a vector. The empirical risk \(\mathcal{R}\) for iteration \(m\) is calculated by: $$ \mathcal{R}_\mathrm{emp}^{[m]} = \frac{1}{n}\sum\limits_{i = 1}^n L(y^{(i)}, \hat{f}^{[m]}(x^{(i)})) $$


  • If \(m=0\) than \(\hat{f}\) is just the offset.

  • The implementation to calculate \(\mathcal{R}_\mathrm{emp}^{[m]}\) is done in two steps:

    1. Calculate vector risk_temp of losses for every observation for given response \(y^{(i)}\) and prediction \(\hat{f}^{[m]}(x^{(i)})\).

    2. Average over risk_temp.

This procedure ensures, that it is possible to e.g. use the AUC or any arbitrary performance measure for risk logging. This gives just one value for risk_temp and therefore the average equals the loss function. If this is just a value (like for the AUC) then the value is returned.


This class doesn't contain public fields.



Summarize the logger object.


# Used loss: log_bin = LossBinomial$new() # Define logger: log_inbag_risk = LoggerInbagRisk$new("inbag", FALSE, log_bin, 0.05, 5) # Summarize logger: log_inbag_risk$summarizeLogger()
#> Inbag risk logger: #> - Use logger as stopper: 0