Balanced-learn — это пакет Python, предлагающий ряд методов повторной выборки, обычно используемых в наборах данных, демонстрирующих сильный дисбаланс между классами. Он совместим с scikit-learn и является частью проектов scikit-learn-contrib.
Документацию по установке, документацию по API и примеры можно найти в документации.
для несбалансированного обучения требуются следующие зависимости:
Питон (>= 3.10)
NumPy (>= 1.24.3)
SciPy (>= 1.10.1)
Scikit-learn (>= 1.2.2)
Пайтест (>= 7.2.2)
Кроме того, для несбалансированного обучения требуются следующие дополнительные зависимости:
Pandas (>= 1.5.3) для работы с кадрами данных
Tensorflow (>= 2.13.1) для работы с моделями TensorFlow.
Keras (>= 3.0.5) для работы с моделями Keras
Для примеров потребуются следующие дополнительные зависимости:
Матплотлиб (>= 3.7.3)
Сиборн (>= 0.12.2)
Balanced-learn в настоящее время доступен в репозиториях PyPi, и вы можете установить его через pip:
pip install -U несбалансированное обучение
Пакет также доступен на платформе Anaconda Cloud:
conda install -c conda-forge несбалансированное обучение
Если хотите, вы можете клонировать его и запустить файл setup.py. Используйте следующие команды, чтобы получить копию с Github и установить все зависимости:
клон git https://github.com/scikit-learn-contrib/imbalanced-learn.git CD несбалансированное обучение установка пипа.
Имейте в виду, что вы можете установить в режиме разработчика с помощью:
pip install --no-build-isolation --editable .
Если вы хотите делать пул-реквесты на GitHub, мы советуем вам установить pre-commit:
pip install с предварительной фиксацией предварительная установка
После установки вы можете использовать pytest для запуска набора тестов:
сделать освещение
Разработка этого scikit-learn-contrib соответствует развитию сообщества scikit-learn. Поэтому вы можете обратиться к их Руководству по разработке.
Мы поддерживаем передовой опыт Координации экосистемы Scientific Python (SPEC). Полный список рекомендаций доступен здесь.
Ниже приведен список рекомендаций, которые мы поддерживаем для проекта несбалансированного обучения.
Если вы используете несбалансированное обучение в научной публикации, мы будем признательны за ссылки на следующую статью:
@article{JMLR:v18:16-365, автор = {Гийом Лема{{^i}}тре и Фернандо Ногейра и Христос К. Аридас}, title = {Imbalanced-learn: набор инструментов Python для решения проблемы несбалансированных наборов данных в машинном обучении}, журнал = {Журнал исследований машинного обучения}, год = {2017}, объем = {18}, число = {17}, страницы = {1-5}, URL = {http://jmlr.org/papers/v18/16-365} }
Большинство алгоритмов классификации будут работать оптимально только тогда, когда количество выборок каждого класса примерно одинаково. Сильно искаженные наборы данных, в которых численность меньшинства значительно превосходит один или несколько классов, оказались проблемой, но в то же время становятся все более распространенными.
Один из способов решения этой проблемы — повторная выборка набора данных, чтобы компенсировать этот дисбаланс в надежде прийти к более надежной и справедливой границе принятия решений, чем в противном случае.
Вы можете обратиться к документации по несбалансированному обучению, чтобы найти подробную информацию о реализованных алгоритмах.