déséquilibred-learn est un package Python offrant un certain nombre de techniques de rééchantillonnage couramment utilisées dans les ensembles de données montrant un fort déséquilibre entre les classes. Il est compatible avec scikit-learn et fait partie des projets scikit-learn-contrib.
La documentation d'installation, la documentation de l'API et des exemples peuvent être trouvés dans la documentation.
l'apprentissage déséquilibré nécessite les dépendances suivantes :
Python (>= 3.10)
NumPy (>= 1.24.3)
SciPy (>= 1.10.1)
Scikit-learn (>= 1.2.2)
Test Py (>= 7.2.2)
De plus, l'apprentissage déséquilibré nécessite les dépendances facultatives suivantes :
Pandas (>= 1.5.3) pour gérer les dataframes
Tensorflow (>= 2.13.1) pour gérer les modèles TensorFlow
Keras (>= 3.0.5) pour gérer les modèles Keras
Les exemples nécessiteront les dépendances supplémentaires suivantes :
Matplotlib (>= 3.7.3)
Né marin (>= 0.12.2)
déséquilibred-learn est actuellement disponible sur les référentiels PyPi et vous pouvez l'installer via pip :
pip install -U apprentissage déséquilibré
Le package est également disponible sur la plateforme Anaconda Cloud :
conda install -c conda-forge apprentissage déséquilibré
Si vous préférez, vous pouvez le cloner et exécuter le fichier setup.py. Utilisez les commandes suivantes pour obtenir une copie de Github et installer toutes les dépendances :
clone git https://github.com/scikit-learn-contrib/imbalanced-learn.git cd déséquilibré-apprendre pip installer.
Sachez que vous pouvez installer en mode développeur avec :
pip install --no-build-isolation --editable .
Si vous souhaitez faire des pull-requests sur GitHub, nous vous conseillons d'installer le pre-commit :
pip install pré-commit installation préalable à la validation
Après l'installation, vous pouvez utiliser pytest pour exécuter la suite de tests :
faire une couverture
Le développement de cette scikit-learn-contrib s'inscrit dans la lignée de celui de la communauté scikit-learn. Par conséquent, vous pouvez vous référer à leur guide de développement.
Nous approuvons les bonnes pratiques de la Scientific Python Ecosystem Coordination (SPEC). La liste complète des recommandations est disponible ici.
Voir ci-dessous la liste des recommandations que nous soutenons pour le projet d'apprentissage déséquilibré.
Si vous utilisez l'apprentissage déséquilibré dans une publication scientifique, nous apprécierions les citations de l'article suivant :
@article{JMLR:v18:16-365, auteur = {Guillaume Lema{{^i}}tre et Fernando Nogueira et Christos K. Aridas}, title = {Imbalanced-learn : Une boîte à outils Python pour lutter contre la malédiction des ensembles de données déséquilibrés dans l'apprentissage automatique}, journal = {Journal de recherche sur l'apprentissage automatique}, année = {2017}, volume = {18}, nombre = {17}, pages = {1-5}, URL = {http://jmlr.org/papers/v18/16-365} }
La plupart des algorithmes de classification ne fonctionneront de manière optimale que lorsque le nombre d'échantillons de chaque classe est à peu près le même. Les ensembles de données très asymétriques, où la minorité est largement dépassée en nombre par une ou plusieurs classes, se sont révélés être un défi tout en devenant de plus en plus courants.
Une façon de résoudre ce problème consiste à rééchantillonner l'ensemble de données afin de compenser ce déséquilibre dans l'espoir d'arriver à une limite de décision plus solide et plus équitable que vous ne le feriez autrement.
Vous pouvez vous référer à la documentation d'apprentissage déséquilibré pour trouver des détails sur les algorithmes implémentés.