desequilíbrio-learn é um pacote python que oferece uma série de técnicas de reamostragem comumente usadas em conjuntos de dados que mostram forte desequilíbrio entre classes. É compatível com o scikit-learn e faz parte dos projetos scikit-learn-contrib.
Documentação de instalação, documentação de API e exemplos podem ser encontrados na documentação.
O aprendizado desequilibrado requer as seguintes dependências:
Pitão (>= 3.10)
NumPy (>= 1.24.3)
SciPy (>= 1.10.1)
Scikit-learn (>= 1.2.2)
Pytest (>= 7.2.2)
Além disso, o aprendizado desequilibrado requer as seguintes dependências opcionais:
Pandas (>= 1.5.3) para lidar com dataframes
Tensorflow (>= 2.13.1) para lidar com modelos TensorFlow
Keras (>= 3.0.5) para lidar com modelos Keras
Os exemplos exigirão as seguintes dependências adicionais:
Matplotlib (>= 3.7.3)
Nascido no mar (>= 0,12,2)
O Unbalanced-learn está atualmente disponível nos repositórios do PyPi e você pode instalá-lo via pip:
pip install -U aprendizagem desequilibrada
O pacote é lançado também na plataforma Anaconda Cloud:
conda install -c conda-forge desequilibrado-aprender
Se preferir, você pode cloná-lo e executar o arquivo setup.py. Use os seguintes comandos para obter uma cópia do Github e instalar todas as dependências:
clone do git https://github.com/scikit-learn-contrib/imbalanced-learn.git cd desequilibrado-aprender instalação do pip.
Esteja ciente de que você pode instalar no modo de desenvolvedor com:
pip install --no-build-isolation --editável.
Se você deseja fazer pull-requests no GitHub, aconselhamos instalar o pré-commit:
pip instalar pré-commit instalação pré-confirmada
Após a instalação, você pode usar o pytest para executar o conjunto de testes:
fazer cobertura
O desenvolvimento deste scikit-learn-contrib está alinhado com o da comunidade scikit-learn. Portanto, você pode consultar o Guia de Desenvolvimento.
Endossamos boas práticas da Coordenação Científica do Ecossistema Python (SPEC). A lista completa de recomendações está disponível aqui.
Veja abaixo a lista de recomendações que endossamos para o projeto de aprendizagem desequilibrada.
Se você usar aprendizagem desequilibrada em uma publicação científica, agradeceríamos citações do seguinte artigo:
@artigo{JMLR:v18:16-365, autor = {Guillaume Lema{{^i}}tre e Fernando Nogueira e Christos K. Aridas}, title = {Aprendizado desequilibrado: uma caixa de ferramentas Python para enfrentar a maldição dos conjuntos de dados desequilibrados no aprendizado de máquina}, diário = {Journal of Machine Learning Research}, ano = {2017}, volume = {18}, número = {17}, páginas = {1-5}, url={http://jmlr.org/papers/v18/16-365} }
A maioria dos algoritmos de classificação só terá desempenho ideal quando o número de amostras de cada classe for aproximadamente o mesmo. Conjuntos de dados altamente distorcidos, onde a minoria é fortemente superada em número por uma ou mais classes, provaram ser um desafio e, ao mesmo tempo, tornaram-se cada vez mais comuns.
Uma forma de resolver esta questão é reamostrar o conjunto de dados para compensar este desequilíbrio, na esperança de chegar a um limite de decisão mais robusto e justo do que seria possível de outra forma.
Você pode consultar a documentação de aprendizagem desequilibrada para encontrar detalhes sobre os algoritmos implementados.