INTRODUCTION
Scikit-learn est une bibliothèque libre python considéré comme un Framework destiné à
l’apprentissage automatique lancé initialement en 2007 par des membres de la communauté
scientifique python.
Scikit-learn est une bibliothèque libre Python destinée à l'apprentissage automatique. Elle est
développée par de nombreux contributeurs notamment dans le monde académique par des
instituts français d'enseignement supérieur et de recherche comme Inria.
Elle propose dans son Framework de nombreuses bibliothèques d’algorithmes à implémenter,
clé en main. Ces bibliothèques sont à disposition notamment des data scientists.
Elle comprend notamment des fonctions pour estimer des forêts aléatoires, des régressions
logistiques, des algorithmes de classification, et les machines à vecteurs de support. Cette
bibliothèque est construite sur NumPy, SciPy et Matplotlib
HISTORIQUE
Scikit-learn a été initialement développé par David Cournapeau dans le cadre d'un projet Google
Summer of Code en 2007. Plus tard cette année-là, Matthieu Brucher a rejoint le projet et a
commencé à l'utiliser dans le cadre de ses travaux de thèse.
Lancé initialement en 2007 par des membres de la communauté scientifique Python, le projet
scikit-learn a connu son véritable essor dans le cadre de travaux de recherche sur l'imagerie
fonctionnelle du cerveau, menés au sein de l'équipe-projet Pariétal d'Inria.
LES FONCTIONNALITES DE SCIKIT LEARN
Scikit-learn propose plusieurs type d’apprentissage notamment :
1. Apprentissage supervisé
Dans ce type d’apprentissage on considère un ensemble de données et chaque occurrence de cet
ensemble correspond à une étiquette précise. En fonction de l’espace 𝑌 des étiquettes, le processus
d’apprentissage correspond à :
Une classification binaire dans le cas où l’ensemble 𝑌 = {1,0}.
Une classification multi-classe ici l’ensemble des étiquettes est discret et fini 𝑌 = {1,2, … , 𝐶}.
Une régression l’ensemble des étiquettes est continu et confondu à 𝑌 = ℝ.
Comme exemple d’apprentissage supervisé on a :
Détection de spam
Reconnaissance d’image et d’objet
Diagnostiques médicaux
Prévision météorologique
2. Apprentissage non supervisé
Dans ce type d’apprentissage l’ensemble des données dont nous disposons n’est pas étiqueté et
apprend sur le jeu de donnée sans supervision humaine. Nous distinguons deux principaux types
d’apprentissage non supervisés à savoir :
Clustering est un modèle d’apprentissage qui consiste à regrouper des données en fonction de
leur similitude.
Association qui permet d’identifier les points qui apparaissent ensemble et définit une relation
entre eux.
Comme exemple nous avons :
Détection d’anomalie dans la finance.
Moteur de recommandation et publicité personnalisée
Clustering de données médicales.
3. Apprentissage par renforcement
L'apprentissage par renforcement (RL) est un domaine du machine learning où un agent
autonome apprend à prendre des décisions dans un environnement interactif afin de maximiser
sa récompense cumulée. L'agent peut explorer l'environnement, recevoir des récompenses pour
ses actions et apprendre à choisir les actions qui lui rapporteront le plus de récompenses à long
terme.
Comme exemple on a :
Robotique:
Apprentissage à marcher: Un robot apprend à marcher en ajustant ses mouvements en fonction
des récompenses reçues pour se tenir debout et avancer.
Jeux:
Apprentissage à jouer à des jeux vidéo: Un agent apprend à jouer à des jeux vidéo comme Go,
Dota 2 ou StarCraft en utilisant des algorithmes de deep reinforcement learning.
4. Arbre de décision
Un arbre de décision est un outil puissant qui peut être utilisé à la fois pour les problèmes
de classification et de régression. Il utilise un modèle arborescent pour prendre des
décisions et prédire le résultat. Il est constitué de racines et de nœuds. Les racines
représentent la décision de scission et les nœuds représentent une valeur de variable de
sortie. Un arbre de decision est un concept important.
Les arbres de décision sont utiles lorsque les variables dépendantes ne suivent pas une
relation linéaire avec la variable indépendante, c'est-à-dire que la régression linéaire ne
donne pas de résultats précis.
IMPORTANCE SCI-KIT LEARN
Scikit-Learn, également connu sous le nom de sklearn, est une bibliothèque Python
permettant d'implémenter des modèles d'apprentissage automatique et une modélisation
statistique. Grâce à scikit-learn, nous pouvons implémenter divers modèles d'apprentissage
automatique pour les outils de régression, de classification, de clustering et statistiques
pour analyser ces modèles. Il fournit également des fonctionnalités pour la réducti on de
dimensionnalité, la sélection de fonctionnalités, l'extraction de fonctionnalités, les
techniques d'ensemble et les ensembles de données intégrés. Nous examinerons ces
fonctionnalités une par une.
CARACTERISTIQUES DE SCI-KIT LEARN
1. Ensembles de données
Scikit-learn est livré avec plusieurs ensembles de données intégrés tels que l'ensemble de
données sur l'iris, l'ensemble de données sur les prix de l'immobilier, l'ensemble de
données sur le diabète, etc. Les principales fonctions de ces ensembles de données sont
qu'ils sont faciles à comprendre et que vous pouvez directement y implémenter des
modèles ML. Ces ensembles de données conviennent aux débutants. De même, vous
pouvez importer d'autres ensembles de données disponibles dans sklearn.
2. Fractionnement des données
Sklearn a fourni la fonctionnalité permettant de diviser l'ensemble de données pour la
formation et les tests. Le fractionnement de l'ensemble de données est essentiel pour une
évaluation impartiale des performances de prédiction. Nous pouvons définir la proportion
de nos données à inclure dans les ensembles de données d'entraînement et de test.
3. Régression linéaire
Ce modèle ML supervisé est utilisé lorsque la variable de sortie est continue et qu'elle suit
une relation linéaire avec les variables dépendantes. Il peut être utilisé pour prévoir les
ventes des mois à venir en analysant les données de ventes des mois précédents.
4. Régression logistique
La régression logistique est également un algorithme de régression supervisée, tout comme
la régression linéaire. La seule différence est que la variable de sortie est catégorielle. Il
peut être utilisé pour prédire si un patient souffre ou non d’une maladie cardiaque.
AVANTAGES ET INCOVENIENTS
Scikit-learn, une bibliothèque de machine learning très appréciée pour Python, offre plusieurs
avantages qui en font un outil précieux pour les data scientists et les praticiens du machine
learning. Voici quelques-uns de ses principaux atouts :
Facilité d'utilisation : Scikit-learn est reconnue pour sa simplicité et son API cohérente.
Cela signifie qu'elle suit une structure claire et uniforme pour différentes tâches, ce qui
la rend facile à apprendre et à utiliser. Vous pouvez appliquer des méthodes et des
principes similaires à différents modèles et types de données, rationalisant ainsi le
workflow.
Large éventail d'algorithmes : Scikit-learn propose une collection complète
d'algorithmes pour diverses tâches de machine learning. Elle couvre l'apprentissage
supervisé (classification, régression), l'apprentissage non supervisé (clustering), et plus
encore. Cela vous permet d'aborder un large éventail de problèmes sans avoir besoin de
changer de bibliothèque.
Intégration avec d'autres bibliothèques Python : Scikit-learn s'intègre parfaitement avec
d'autres bibliothèques Python puissantes pour la science des données, telles que NumPy
et Pandas. Cela permet un workflow fluide, car vous pouvez exploiter ces bibliothèques
pour la manipulation de données, les calculs numériques et l'analyse de données avant
de les intégrer dans les modèles Scikit-learn.
Open-source et gratuit : Scikit-learn est une bibliothèque open-source, disponible
gratuitement pour un usage commercial et non commercial. Cela élimine les coûts de
licence et favorise une large communauté active qui contribue à son développement et
fournit une documentation et un support étendus.
Évolutivité et efficacité : Bien que Scikit-learn ne soit pas forcément la plus puissante
pour les tâches exceptionnellement complexes, elle offre une bonne évolutivité et une
bonne efficacité pour de nombreuses applications de machine learning. Cela la rend
adaptée à divers cas d'utilisation, du prototypage à la production.
Dans l'ensemble, l'approche conviviale de Scikit-learn, sa vaste sélection d'algorithmes et le
solide soutien de sa communauté en font un excellent choix pour les débutants comme pour les
praticiens expérimentés.
Scikit-learn est certes un excellent outil, mais il ne vient pas sans quelques inconvénients. Voici
quelques aspects à garder à la pointe :
Manque de modèles à la pointe: Scikit-learn se concentre sur les algorithmes
d'apprentissage automatique classiques et éprouvés. Si vous avez besoin des modèles
les plus récents et les plus sophistiqués, en particulier pour les tâches de deep learning,
d'autres bibliothèques comme TensorFlow ou PyTorch pourraient être plus adaptées.
Adapté à Python: Scikit-learn est conçu pour fonctionner avec Python. Cela peut être un
avantage pour les utilisateurs de Python, mais si vous travaillez dans un autre langage de
programmation, vous devrez peut-être envisager d'autres bibliothèques.
Boîte noire pour certains modèles: Certains modèles de Scikit-learn peuvent
fonctionner comme des "boîtes noires", ce qui signifie qu'il peut être difficile
d'interpréter leurs résultats et de comprendre comment ils arrivent à leurs prédictions.
Cela peut être un inconvénient pour les applications où la compréhension du modèle est
cruciale.
Limites de Scalabilité: Pour des tâches impliquant des ensembles de données massifs,
Scikit-learn peut rencontrer des problèmes d'efficacité et de scalabilité. D'autres
bibliothèques distribuées, comme Apache Spark, peuvent être plus performantes pour
gérer des volumes de données importants.
Accent sur la prédiction plus que sur l'ingénierie des features: Scikit-learn excelle dans
la construction de modèles, mais la préparation des données et l'ingénierie des features
restent souvent à la charge de l'utilisateur. D'autres bibliothèques peuvent proposer des
outils plus avancés pour ces étapes cruciales du machine learning.
CONCLUSION