Changelog#

Unreleased#

  • Feature Type hints are now available for all functions and classes.

  • Enhancement Add support for more than one stochastic variable when building maximum profit metrics with Metric

  • Enhancement Allow Metric to be used as a context manager. This ensures the metric is always built after defining the cost-benefit elements.

  • Fix Fix datasets not properly being packaged together with the package

  • Fix Fix RobustCSClassifier when array-like parameters are passed to fit method.

0.7.0 (05-02-2025)#

  • Major Feature Add CSTreeClassifier, CSForestClassifier, and CSBaggingClassifier to support cost-sensitive decision tree and ensemble models

  • Enhancement Add support for scikit-learn 1.5.2 (previously Empulse only supported scikit-learn 1.6.0 and above).

  • API Change Removed the emp_score and emp functions from the metrics module. Use the Metric class instead to define custom expected maximum profit measures. For more information, read the User Guide.

  • API Change Removed numba as a dependency for Empulse. This will reduce the installation time and the size of the package.

  • Fix Fix Metric when defining stochastic variable with fixed values.

  • Fix Fix Metric when stochastic variable has infinite bounds.

  • Fix Fix CSThresholdClassifier when costs of predicting positive and negative classes are equal.

  • Fix Fix documentation linking issues to sklearn

0.6.0 (28-01-2025)#

  • Major Feature Add Metric to easily build your own value-driven and cost-sensitive metrics

  • Feature Add support for LightGBM and Catboost models in CSBoostClassifier and B2BoostClassifier

  • API Change make_objective_churn and make_objective_acquisition now take a model argument to calculate the objective for either XGBoost, LightGBM or Catboost models.

  • API Change XGBoost is now an optional dependency together with LightGBM and Catboost. To install the package with XGBoost, LightGBM and Catboost support, use the following command: pip install empulse[optional]

  • API Change Renamed y_pred_baseline and y_proba_baseline to baseline in savings_score and expected_savings_score. It now accepts the following arguments:

    • If 'zero_one', the baseline model is a naive model that predicts all zeros or all ones depending on which is better.

    • If 'prior', the baseline model is a model that predicts the prior probability of the majority or minority class depending on which is better (not available for savings score).

    • If array-like, target probabilities of the baseline model.

  • Feature Add parameter validation for all models and samplers

  • API Change Make all arguments of dataset loaders keyword-only

  • Fix Update the descriptions attached to each dataset to match information found in the user guide

  • Fix Improve type hints for functions and classes

0.5.2 (12-01-2025)#

  • Feature Allow savings_score and expected_savings_score to calculate the savings score over the baseline model instead of a naive model, by setting the y_pred_baseline and y_proba_baseline parameters, respectively.

  • Enhancement Reworked the user guide documentation to better explain the usage of value-driven and cost-sensitive models, samplers and metrics

  • API Change CSLogitClassifier and ProfLogitClassifier by default do not perform soft-thresholding on the regression coefficients. This can be enabled by setting the soft_threshold parameter to True.

  • Fix Prevent division by zero errors in expected_cost_loss

0.5.1 (05-01-2025)#

  • Fix Fixed documentation build issue

0.5.0 (05-01-2025)#