Skip to content

APLR Version 10.17.0 Release Notes

Choose a tag to compare

@mathias-von-ottenbreit mathias-von-ottenbreit released this 23 Oct 20:47
· 4 commits to main since this release

This release introduces a new flexible loss function, a parameter to accelerate model training, and a significant improvement to the validation and tuning process for more stable and robust modeling.

✨ New Features

1. New exponential_power Loss Function

A new loss_function="exponential_power" has been added. This is a versatile loss function where the shape is controlled by the dispersion_parameter (p), making it a generalization of other common loss functions:

  • When p=2, it is equivalent to the mse loss function.

This allows for greater flexibility in modeling distributions with different tail behaviors. For best results with this new loss function, it is recommended to also set faster_convergence=True.

2. New faster_convergence Parameter

A new boolean constructor parameter, faster_convergence (default False), has been introduced to speed up model training, especially for loss functions that might otherwise converge slowly.

  • When set to True, it applies a scaling to the negative gradient during boosting.
  • This is currently only applied for the identity and log link functions.
  • Note: This option is not effective for all loss functions (e.g., mae, quantile) and is not needed for mse with an identity link, as this combination is already optimized for speed.

🚀 Improvements and Behavioral Changes

validation_tuning_metric Logic Update

The logic for validation_tuning_metric has been updated to improve both training stability and evaluation flexibility.

  • For Training and Convergence: During the boosting process and for selecting the optimal number of steps (m), the model now always uses the "default" metric (which corresponds to the loss_function). This ensures the most stable convergence with respect to the loss being minimized.
  • For Final Evaluation and Tuning: After each cross-validation fold is fitted, the validation_tuning_metric provided by the user is calculated. This final metric is what get_cv_error() returns and what APLRTuner uses to select the best set of hyperparameters.

This change ensures stable model training while still allowing you to evaluate and tune your model based on a business-relevant metric that may differ from the training loss function.

Important Note: When tuning hyperparameters like dispersion_parameter or loss_function, you should not use validation_tuning_metric="default", as the resulting CV errors will not be comparable across different parameter values.