# imbalanced-learn

> Toolbox for imbalanced dataset in machine learning

- **URL**: https://www.freshcrate.ai/projects/imbalanced-learn
- **Author**: pypi
- **Category**: Frameworks
- **Latest version**: `0.14.1` (2026-04-21)
- **License**: Unknown
- **Source**: https://github.com/scikit-learn-contrib/imbalanced-learn/issues
- **Homepage**: https://pypi.org/project/imbalanced-learn/
- **Language**: Python
- **GitHub**: 7,096 stars, 1,341 forks
- **Registry**: pypi (`imbalanced-learn`)
- **Tags**: `pypi`

## Description

.. -*- mode: rst -*-

.. _scikit-learn: http://scikit-learn.org/stable/

.. _scikit-learn-contrib: https://github.com/scikit-learn-contrib

|GitHubActions|_ |Codecov|_ |CircleCI|_ |PythonVersion|_ |Pypi|_ |Gitter|_ |Black|_

.. |GitHubActions| image:: https://github.com/scikit-learn-contrib/imbalanced-learn/actions/workflows/tests.yml/badge.svg
.. _GitHubActions: https://github.com/scikit-learn-contrib/imbalanced-learn/actions/workflows/tests.yml

.. |Codecov| image:: https://codecov.io/gh/scikit-learn-contrib/imbalanced-learn/branch/master/graph/badge.svg
.. _Codecov: https://codecov.io/gh/scikit-learn-contrib/imbalanced-learn

.. |CircleCI| image:: https://circleci.com/gh/scikit-learn-contrib/imbalanced-learn.svg?style=shield
.. _CircleCI: https://circleci.com/gh/scikit-learn-contrib/imbalanced-learn/tree/master

.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/imbalanced-learn.svg
.. _PythonVersion: https://img.shields.io/pypi/pyversions/imbalanced-learn.svg

.. |Pypi| image:: https://badge.fury.io/py/imbalanced-learn.svg
.. _Pypi: https://badge.fury.io/py/imbalanced-learn

.. |Gitter| image:: https://badges.gitter.im/scikit-learn-contrib/imbalanced-learn.svg
.. _Gitter: https://gitter.im/scikit-learn-contrib/imbalanced-learn?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
.. _Black: :target: https://github.com/psf/black

.. |PythonMinVersion| replace:: 3.10
.. |NumPyMinVersion| replace:: 1.25.2
.. |SciPyMinVersion| replace:: 1.11.4
.. |ScikitLearnMinVersion| replace:: 1.4.2
.. |MatplotlibMinVersion| replace:: 3.7.3
.. |PandasMinVersion| replace:: 2.0.3
.. |TensorflowMinVersion| replace:: 2.16.1
.. |KerasMinVersion| replace:: 3.3.3
.. |SeabornMinVersion| replace:: 0.12.2
.. |PytestMinVersion| replace:: 7.2.2

imbalanced-learn
================

imbalanced-learn is a python package offering a number of re-sampling techniques
commonly used in datasets showing strong between-class imbalance.
It is compatible with scikit-learn_ and is part of scikit-learn-contrib_
projects.

Documentation
-------------

Installation documentation, API documentation, and examples can be found on the
documentation_.

.. _documentation: https://imbalanced-learn.org/stable/

Installation
------------

Dependencies
~~~~~~~~~~~~

`imbalanced-learn` requires the following dependencies:

- Python (>= |PythonMinVersion|)
- NumPy (>= |NumPyMinVersion|)
- SciPy (>= |SciPyMinVersion|)
- Scikit-learn (>= |ScikitLearnMinVersion|)
- Pytest (>= |PytestMinVersion|)

Additionally, `imbalanced-learn` requires the following optional dependencies:

- Pandas (>= |PandasMinVersion|) for dealing with dataframes
- Tensorflow (>= |TensorflowMinVersion|) for dealing with TensorFlow models
- Keras (>= |KerasMinVersion|) for dealing with Keras models

The examples will requires the following additional dependencies:

- Matplotlib (>= |MatplotlibMinVersion|)
- Seaborn (>= |SeabornMinVersion|)

Installation
~~~~~~~~~~~~

From PyPi or conda-forge repositories
.....................................

imbalanced-learn is currently available on the PyPi's repositories and you can
install it via `pip`::

  pip install -U imbalanced-learn

The package is release also in Anaconda Cloud platform::

  conda install -c conda-forge imbalanced-learn

From source available on GitHub
...............................

If you prefer, you can clone it and run the setup.py file. Use the following
commands to get a copy from Github and install all dependencies::

  git clone https://github.com/scikit-learn-contrib/imbalanced-learn.git
  cd imbalanced-learn
  pip install .

Be aware that you can install in developer mode with::

  pip install --no-build-isolation --editable .

If you wish to make pull-requests on GitHub, we advise you to install
pre-commit::

  pip install pre-commit
  pre-commit install

Testing
~~~~~~~

After installation, you can use `pytest` to run the test suite::

  make coverage

Development
-----------

The development of this scikit-learn-contrib is in line with the one
of the scikit-learn community. Therefore, you can refer to their
`Development Guide
<http://scikit-learn.org/stable/developers>`_.

Endorsement of the Scientific Python Specification
--------------------------------------------------

We endorse good practices from the Scientific Python Ecosystem Coordination (SPEC).
The full list of recommendations is available `here`_.

See below the list of recommendations that we endorse for the imbalanced-learn project.

|SPEC 0 — Minimum Supported Dependencies|

.. |SPEC 0 — Minimum Supported Dependencies| image:: https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038
   :target: https://scientific-python.org/specs/spec-0000/

.. _here: https://scientific-python.org/specs/

About
-----

If you use imbalanced-learn in a scientific publication, we would appreciate
citations to the following paper::

  @arti

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `0.14.1` | 2026-04-21 | Low | Imported from PyPI (0.14.1) |
| `0.14.0` | 2025-08-14 | Low | # Changelog  ## Enhancements  - Add [InstanceHardnessCV](https://imbalanced-learn.org/stable/references/generated/imblearn.model_selection.InstanceHardnessCV.html#imblearn.model_selection.InstanceHardnessCV) to split data and ensure that samples are distributed in folds based on their instance hardness. [#1125](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1125) by [Frits Hermans](https://github.com/fritshermans).  ## Compatibility  - Compatibility with scikit-learn 1.7 [ |
| `0.13.0` | 2024-12-20 | Low | ## Changelog  ### Bug fixes  - Fix `get_metadata_routing` in `Pipeline` such that one can use a sampler with metadata routing. #1115 by @glemaitre.  ### Compatibility  - Compatibility with scikit-learn 1.6. #1109 by @glemaitre.  ### Deprecations  - `Pipeline` now uses `check_is_fitted`. In 0.15, it will raise an error instead of a warning. #1109 by @glemaitre.  - `algorithm` parameter in `RUSBoostClassifier` is now deprecated and will be removed in 0.14. #1109 by @glemaitre. |
| `0.12.4` | 2024-10-04 | Low | ## Changelog  ### Compatibility  - Compatibility with NumPy 2.0+ [#1097](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1097) by [Guillaume Lemaitre](https://github.com/glemaitre). |
| `0.12.3` | 2024-05-28 | Low | ## Changelog  ### Compatibility  - Compatibility with scikit-learn 1.5 [#1074](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1074) and [#1084](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1084) by [Guillaume Lemaitre](https://github.com/glemaitre). |
| `0.12.2` | 2024-03-31 | Low | ## Changelog  ### Bug fixes  - Fix the way we check for a specific Python version in the test suite. [#1075](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1075) by [Guillaume Lemaitre](https://github.com/glemaitre). |
| `0.12.1` | 2024-03-31 | Low | ## Changelog  ### Bug fixes  - Fix a bug in [InstanceHardnessThreshold](https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.InstanceHardnessThreshold.html#imblearn.under_sampling.InstanceHardnessThreshold) where estimator could not be a Pipeline object. [#1049](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1049) by [Gonenc Mogol](https://github.com/gmogol).  ### Compatibility  - Do not use distutils in tests due to deprecation. [#1065](https:/ |
| `0.12.0` | 2024-01-24 | Low | Changelog ========  Bug fixes ---------  - Fix a bug in [SMOTENC](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTENC.html#imblearn.over_sampling.SMOTENC) where the entries of the one-hot encoding should be divided by sqrt(2) and not 2, taking into account that they are plugged into an Euclidean distance computation. [#1014](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/1014) by [Guillaume Lemaitre](https://github.com/glemaitre). - Raise an |
| `0.11.0` | 2023-07-08 | Low | # Changelog  ## Bug fixes  - Fix a bug in [classification_report_imbalanced](https://imbalanced-learn.org/stable/references/generated/imblearn.metrics.classification_report_imbalanced.html#imblearn.metrics.classification_report_imbalanced) where the parameter `target_names` was not taken into account when `output_dict=True`. [#989](https://github.com/scikit-learn-contrib/imbalanced-learn/pull/989) by [AYY7](https://github.com/AYY7).  - [SMOTENC](https://imbalanced-learn.org/stable/referenc |
| `0.10.1` | 2023-07-07 | Low | Changelog ========  Bug fixes ---------  - Fix a regression in over-sampler where the string `minority` was rejected as an unvalid sampling strategy. #964 by Prakhyath07. |

## Citation

- HTML: https://www.freshcrate.ai/projects/imbalanced-learn
- Markdown: https://www.freshcrate.ai/projects/imbalanced-learn.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/imbalanced-learn/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
