Releases: ShimantoRahman/empulse
0.7.0
Full Changelog: 0.6.0...0.7.0
- MajorFeature: Add
empulse.models.CSTreeClassifier
,empulse.models.CSForestClassifier
,
andempulse.models.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: Removed the
emp_score
andemp
functions from theempulse.metrics
module.
Use theempulse.metrics.Metric
class instead to define custom expected maximum profit measures.
For more information, read the User Guide. - API: Removed numba as a dependency for Empulse. This will reduce the installation time and the size of the package.
- Fix: Fix
empulse.metrics.Metric
when defining stochastic variable with fixed values. - Fix: Fix
empulse.metrics.Metric
when stochastic variable has infinite bounds. - Fix: Fix
empulse.models.CSThresholdClassifier
when costs of predicting positive and negative classes are equal. - Fix: Fix documentation linking issues to sklearn
0.6.0
-
Add
Metric
class to easily build your own value-driven and cost-sensitive metrics -
Add support for LightGBM and Catboost models in
CSBoostClassifier
andB2BoostClassifier
-
make_objective_churn
andmake_objective_acquisition
now take amodel
argument to calculate the objective for either XGBoost, LightGBM or Catboost models. -
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]
-
Renamed
y_pred_baseline
andy_proba_baseline
tobaseline
insavings_score
andexpected_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.
- If
-
Add parameter validation for all models and samplers
-
Make all arguments of dataset loaders keyword-only
-
Update the descriptions attached to each dataset to match information found in the user guide
-
Improve type hints for functions and classes
Full Changelog: 0.5.2...0.6.0
0.5.2
- 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. - Reworked the user guide documentation to better explain the usage of value-driven
and cost-sensitive models, samplers and metrics - 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. - Prevent division by zero errors in expected_cost_loss
Full Changelog: 0.5.1...0.5.2
0.5.1
- Fix documentation build issue
Full Changelog: 0.5.0...0.5.1
0.5.0
- Added supported for python 3.13
- Added cost-sensitive models
- CSLogitClassifier
- CSBoostClassifier
- RobustCSClassifier
- CSThresholdClassifier
- Added cost-sensitive metrics
- cost_loss
- expected_cost_loss
- expected_log_cost_loss
- savings_score
- expected_savings_score
- Added cost-sensitive sampler
- CostSensitiveSampler
- Added datasets module
- rename metric arguments which expect target score from y_pred to y_score and
target probabilities from y_pred to y_proba. - Allow all cost-sensitive models and samplers to accept cost parameters during initialization
Full Changelog: 0.4.6...0.5.0
0.4.6
Full Changelog: 0.4.0...0.4.6
Empulse 0.4.0
Added the Area Under the Expected Profit Curve metric.
Empulse 0.3.1
Bump to version 0.3.1