Releases: scikit-learn-contrib/imbalanced-learn
Version 0.9.1
Compatibility with scikit-learn 1.1.0
Version 0.9.0
Compatibility with scikit-learn 1.0.2
Version 0.8.1
Version 0.8.1
September 29, 2021
Maintenance
Make imbalanced-learn compatible with scikit-learn 1.0. #864 by Guillaume Lemaitre.
Version 0.8.0
Version 0.8.0
February 18, 2021
Changelog
New features
- Add the the function
imblearn.metrics.macro_averaged_mean_absolute_errorreturning the average across class of the MAE. This metric is used in ordinal classification. #780 by Aurélien Massiot. - Add the class
imblearn.metrics.pairwise.ValueDifferenceMetricto compute pairwise distances between samples containing only categorical values. #796 by Guillaume Lemaitre. - Add the class
imblearn.over_sampling.SMOTENto over-sample data only containing categorical features. #802 by Guillaume Lemaitre. - Add the possibility to pass any type of samplers in
imblearn.ensemble.BalancedBaggingClassifierunlocking the implementation of methods based on resampled bagging. #808 by Guillaume Lemaitre.
Enhancements
- Add option
output_dictinimblearn.metrics.classification_report_imbalancedto return a dictionary instead of a string. #770 by Guillaume Lemaitre. - Added an option to generate smoothed bootstrap in `imblearn.over_sampling.RandomOverSampler. It is controled by the parameter shrinkage. This method is also known as Random Over-Sampling Examples (ROSE). #754 by Andrea Lorenzon and Guillaume Lemaitre.
Bug fixes
- Fix a bug in
imblearn.under_sampling.ClusterCentroidswherevoting="hard"could have lead to select a sample from any class instead of the targeted class. #769 by Guillaume Lemaitre. - Fix a bug in
imblearn.FunctionSamplerwhere validation was performed even withvalidate=Falsewhen callingfit. #790 by Guillaume Lemaitre.
Maintenance
- Remove requirements files in favour of adding the packages in the
extras_requirewithin thesetup.pyfile. #816 by Guillaume Lemaitre. - Change the website template to use
pydata-sphinx-theme. #801 by Guillaume Lemaitre.
Deprecation
- The context manager
imblearn.utils.testing.warnsis deprecated in 0.8 and will be removed 1.0. #815 by Guillaume Lemaitre.
Version 0.7.0
A release to bump the minimum version of scikit-learn to 0.23 with a couple of bug fixes.
Check the what's new for more information.
Version 0.6.2
Version 0.6.1
This is a bug-fix release to primarily resolve some packaging issues in version 0.6.0. It also includes minor documentation improvements and some bug fixes.
Changelog
Bug fixes
- Fix a bug in :class:
imblearn.ensemble.BalancedRandomForestClassifierleading to a wrong number of samples used during fitting due max_samples and therefore a bad computation of the OOB score. :pr:656by :user:Guillaume Lemaitre <glemaitre>.
Version 0.6.0
Changelog
Changed models
..............
The following models might give some different sampling due to changes in
scikit-learn:
- :class:
imblearn.under_sampling.ClusterCentroids - :class:
imblearn.under_sampling.InstanceHardnessThreshold
The following samplers will give different results due to change linked to
the random state internal usage:
- :class:
imblearn.over_sampling.SMOTENC
Bug fixes
.........
-
:class:
imblearn.under_sampling.InstanceHardnessThresholdnow take into
account therandom_stateand will give deterministic results. In addition,
cross_val_predictis used to take advantage of the parallelism.
:pr:599by :user:Shihab Shahriar Khan <Shihab-Shahriar>. -
Fix a bug in :class:
imblearn.ensemble.BalancedRandomForestClassifier
leading to a wrong computation of the OOB score.
:pr:656by :user:Guillaume Lemaitre <glemaitre>.
Maintenance
...........
-
Update imports from scikit-learn after that some modules have been privatize.
The following import have been changed:
:class:sklearn.ensemble._base._set_random_states,
:class:sklearn.ensemble._forest._parallel_build_trees,
:class:sklearn.metrics._classification._check_targets,
:class:sklearn.metrics._classification._prf_divide,
:class:sklearn.utils.Bunch,
:class:sklearn.utils._safe_indexing,
:class:sklearn.utils._testing.assert_allclose,
:class:sklearn.utils._testing.assert_array_equal,
:class:sklearn.utils._testing.SkipTest.
:pr:617by :user:Guillaume Lemaitre <glemaitre>. -
Synchronize :mod:
imblearn.pipelinewith :mod:sklearn.pipeline.
:pr:620by :user:Guillaume Lemaitre <glemaitre>. -
Synchronize :class:
imblearn.ensemble.BalancedRandomForestClassifierand add
parametersmax_samplesandccp_alpha.
:pr:621by :user:Guillaume Lemaitre <glemaitre>.
Enhancement
...........
-
:class:
imblearn.under_sampling.RandomUnderSampling,
:class:imblearn.over_sampling.RandomOverSampling,
:class:imblearn.datasets.make_imbalanceaccepts Pandas DataFrame in and
will output Pandas DataFrame. Similarly, it will accepts Pandas Series in and
will output Pandas Series.
:pr:636by :user:Guillaume Lemaitre <glemaitre>. -
:class:
imblearn.FunctionSampleraccepts a parametervalidateallowing
to check or not the inputXandy.
:pr:637by :user:Guillaume Lemaitre <glemaitre>. -
:class:
imblearn.under_sampling.RandomUnderSampler,
:class:imblearn.over_sampling.RandomOverSamplercan resample when non
finite values are present inX.
:pr:643by :user:Guillaume Lemaitre <glemaitre>. -
All samplers will output a Pandas DataFrame if a Pandas DataFrame was given
as an input.
:pr:644by :user:Guillaume Lemaitre <glemaitre>. -
The samples generation in
:class:imblearn.over_sampling.SMOTE,
:class:imblearn.over_sampling.BorderlineSMOTE,
:class:imblearn.over_sampling.SVMSMOTE,
:class:imblearn.over_sampling.KMeansSMOTE,
:class:imblearn.over_sampling.SMOTENCis now vectorize with giving
an additional speed-up whenXin sparse.
:pr:596by :user:Matt Eding <MattEding>.
Deprecation
...........
-
The following classes have been removed after 2 deprecation cycles:
ensemble.BalanceCascadeandensemble.EasyEnsemble.
:pr:617by :user:Guillaume Lemaitre <glemaitre>. -
The following functions have been removed after 2 deprecation cycles:
utils.check_ratio.
:pr:617by :user:Guillaume Lemaitre <glemaitre>. -
The parameter
ratioandreturn_indiceshas been removed from all
samplers.
:pr:617by :user:Guillaume Lemaitre <glemaitre>. -
The parameters
m_neighbors,out_step,kind,svm_estimator
have been removed from the :class:imblearn.over_sampling.SMOTE.
:pr:617by :user:Guillaume Lemaitre <glemaitre>.
0.5.0
Version 0.5.0
Changed models
The following models or function might give different results even if the
same data X and y are the same.
- :class:
imblearn.ensemble.RUSBoostClassifierdefault estimator changed from
:class:sklearn.tree.DecisionTreeClassifierwith full depth to a decision
stump (i.e., tree withmax_depth=1).
Documentation
-
Correct the definition of the ratio when using a
floatin sampling
strategy for the over-sampling and under-sampling.
:issue:525by :user:Ariel Rossanigo <arielrossanigo>. -
Add :class:
imblearn.over_sampling.BorderlineSMOTEand
:class:imblearn.over_sampling.SVMSMOTEin the API documenation.
:issue:530by :user:Guillaume Lemaitre <glemaitre>.
Enhancement
-
Add Parallelisation for SMOTEENN and SMOTETomek.
:pr:547by :user:Michael Hsieh <Microsheep>. -
Add :class:
imblearn.utils._show_versions. Updated the contribution guide
and issue template showing how to print system and dependency information
from the command line. :pr:557by :user:Alexander L. Hayes <batflyer>. -
Add :class:
imblearn.over_sampling.KMeansSMOTEwhich is an over-sampler
clustering points before to apply SMOTE.
:pr:435by :user:Stephan Heijl <StephanHeijl>.
Maintenance
-
Make it possible to
import imblearnand access submodule.
:pr:500by :user:Guillaume Lemaitre <glemaitre>. -
Remove support for Python 2, remove deprecation warning from
scikit-learn 0.21.
:pr:576by :user:Guillaume Lemaitre <glemaitre>.
Bug
-
Fix wrong usage of :class:
keras.layers.BatchNormalizationin
porto_seguro_keras_under_sampling.pyexample. The batch normalization
was moved before the activation function and the bias was removed from the
dense layer.
:pr:531by :user:Guillaume Lemaitre <glemaitre>. -
Fix bug which converting to COO format sparse when stacking the matrices in
:class:imblearn.over_sampling.SMOTENC. This bug was only old scipy version.
:pr:539by :user:Guillaume Lemaitre <glemaitre>. -
Fix bug in :class:
imblearn.pipeline.Pipelinewhere None could be the final
estimator.
:pr:554by :user:Oliver Rausch <orausch>. -
Fix bug in :class:
imblearn.over_sampling.SVMSMOTEand
:class:imblearn.over_sampling.BorderlineSMOTEwhere the default parameter
ofn_neighborswas not set properly.
:pr:578by :user:Guillaume Lemaitre <glemaitre>. -
Fix bug by changing the default depth in
:class:imblearn.ensemble.RUSBoostClassifierto get a decision stump as a
weak learner as in the original paper.
:pr:545by :user:Christos Aridas <chkoar>. -
Allow to import
kerasdirectly fromtensorflowin the
:mod:imblearn.keras.
:pr:531by :user:Guillaume Lemaitre <glemaitre>.