Qu’est-ce que Scikit-learn (Sklearn) ?

Auteur

Bryan Clark

Senior Technology Advocate

Qu’est-ce que scikit-learn (sklearn) ?

Scikit-learn (ou scikit-learn ou encore sklearn) est une bibliothèque de machine learning open source largement utilisée pour Python.

Aujourd’hui, scikit-learn est l’une des bibliothèques de machine learning (ML) les plus utilisées. Écrit en Python, cet ensemble d’outils de science des données rationalise l’intelligence artificielle (IA), le ML et la modélisation statistique grâce à une interface cohérente. Il comprend des modules essentiels pour la classification, la régression, le partitionnement et la réduction de la dimensionnalité, tous conçus sur les bibliothèques NumPy, SciPy et Matplotlib. Mettre en œuvre des algorithmes de machine learning à partir de zéro dans Python peut être une tâche gourmande en calcul et sujette aux erreurs, c’est pourquoi elle demande une expertise en algèbre linéaire, en calcul et en optimisation. scikit-learn peut se révéler une ressource précieuse pour atténuer ces problèmes.

En tirant parti de la suite robuste de réseaux neuronaux préentraînés et d’algorithmes de machine learning de scikit-learn, les novices peuvent prétraiter rapidement et efficacement des jeux de données pour des applications d’apprentissage supervisé, telles que la régression ou la classification. Cette étape ne nécessite pas de connaissances approfondies des concepts mathématiques complexes tels que l’algèbre linéaire, le calcul infinitésimal ou la cardinalité. De plus, ces outils facilitent les processus d’apprentissage non supervisé, notamment le partitionnement et la réduction de la dimensionnalité. Ces outils permettent aux utilisateurs de se concentrer sur des informations de niveau supérieur et la création de valeur métier.

flux de travail scikit-learn
diagramme de flux de travail scikit-learn

Les composants de Scikit-learn

NumPy : c’est l’une des bibliothèques Python essentielles pour l’informatique scientifique. Elle fournit un objet array et plusieurs autres types de jeux de données, ainsi que de nombreuses fonctions pour des opérations efficaces sur les tableaux tout en utilisant scikit-learn.

SciPy : une initiative communautaire visant à créer et à diffuser des logiciels open source à des fins de science des données en Python. Sa mission se concentre sur le développement et la maintenance du package SciPy, disponible gratuitement sous licence open source (comme une licence Berkeley Software Distribution, également appelée BSD) et accessible publiquement via les référentiels GitHub au sein de l’entreprise SciPy.

Matplotlib : c’est une grande bibliothèque de traçage flexible qui permet aux data scientists de transformer leur jeu de données en graphiques, diagrammes et autres visualisations informatives. En fournissant un ensemble complet d’outils et de fonctionnalités, Matplotlib facilite l’analyse, l’exploration et la communication des données.

Cython : étend les capacités de Python en activant les appels directs aux fonctions C et la déclaration explicite des types de jeu de données C sur les variables et les attributs de classe. Cette capacité facilite la génération d’un code C hautement optimisé à partir du code source Cython pour une utilisation dans sklearn.

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Prétraitement

Lorsque vous travaillez avec scikit-learn, vous devez vous assurer que les données d’entraînement sont correctement préparées et formatées avant d’être intégrées au modèle de machine learning : c’est ce qu’on appelle le prétraitement. scikit-learn fournit de nombreux outils pour vous aider à organiser le jeu de données. La normalisation est une tâche courante à ce stade du prétraitement dans scikit-learn. Les fonctionnalités numériques sont mises à l’échelle pour obtenir des magnitudes similaires en utilisant des techniques telles que MinMaxScaler ou StandardScaler. Si le jeu de données doit être encodé à partir de variables catégorielles dans des représentations numériques, l’encodage One-Hot (OHE) ou LabelEncoder (LE) peuvent les rendre compatibles avec le workflow du modèle. L’encodage OHE transforme les valeurs des données catégorielles en vecteurs binaires, créant une nouvelle colonne pour chaque catégorie, un 1 ou un 0 indiquant la présence ou l’absence de la catégorie. L’encodage LE, lui, est utilisé dans le machine learning : des étiquettes numériques sont attribuées à des catégories ou à des classes. Contrairement à One-HotEncoder, cette technique ne permet pas de créer de nouvelles colonnes, mais remplace les valeurs catégorielles par des valeurs entières. Elle peut générer des problèmes tels que l’hypothèse d’ordinalité et est moins courante que l’OHE dans les pratiques modernes de machine learning en raison de ses limites.

Le prétraitement peut également impliquer la sélection de fonctionnalités, où un sous-ensemble de fonctionnalités scikit-learn pertinentes peut être choisi pour entraîner les modèles. Cette étape peut être effectuée en supprimant les colonnes non pertinentes ou en recourant à des techniques telles que l’élimination récursive de fonctionnalité (RFE) ou l’information mutuelle (MI). L’élimination récursive des fonctionnalités est une technique utilisée pour sélectionner les fonctionnalités les plus importantes dans un jeu de données en supprimant et en réentraînant un modèle de manière itérative avec un ensemble de fonctionnalités réduit, pour finalement identifier les fonctionnalités les plus performantes. Le concept d’information mutuelle permet de mesurer la quantité d’informations qu’une variable aléatoire contient au sujet d’une autre afin d’identifier les fonctionnalités hautement corrélées ou pertinentes par rapport à un résultat cible. Cette méthode est utile pour sélectionner des variables informatives. De plus, la gestion des données manquantes est cruciale et scikit-learn propose plusieurs méthodes pour imputer ces lacunes, telles que l’imputation par la moyenne/par la médiane, la méthode ffill (propagation en avant), la méthode bfill (propagation en arrière) ou d’autres approches plus sophistiquées.

Pour effectuer ces tâches, scikit-learn contient une suite complète d’outils de prétraitement. Les classes StandardScaler et MinMaxScaler sont des choix populaires pour la mise à l’échelle des fonctionnalités numériques, tandis que OneHotEncoder convient parfaitement pour les variables catégorielles. Pour l’imputation des valeurs manquantes, la classe SimpleImputer offre plusieurs méthodes. En associant ces outils de manière créative, vous pourrez créer un pipeline de prétraitement robuste pour améliorer le machine learning, la performance et la précision des modèles.

Par exemple, StandardScaler peut être utilisé pour normaliser les fonctionnalités numériques des données, suivi par OneHotEncoder pour transformer les variables catégorielles en représentations numériques. Pour chaque catégorie unique dans une variable catégorielle, une nouvelle fonctionnalité binaire (0 ou 1) est créée. Si une observation possède la catégorie « X », alors la valeur est définie sur 1 et toutes les autres fonctionnalités sont définies sur 0. Ce processus est également connu sous le nom d’extraction de fonctionnalité. En reliant ces opérations, il est possible de préparer un jeu de données unifié pouvant servir à l’entraînement des modèles de machine learning.

AI Academy

Devenir un expert en IA

Obtenez les connaissances nécessaires pour privilégier les investissements dans l’IA qui favorisent la croissance commerciale. Lancez-vous dès aujourd’hui avec notre AI Academy gratuite et menez l’avenir de l’IA au sein de votre organisation.

Indicateurs

scikit-learn fournit un ensemble d’indicateurs intégrés pour les problèmes de classification et de régression, facilitant ainsi le processus de prise de décision concernant l’optimisation ou la sélection de modèles. Dans le contexte du machine learning, et plus particulièrement de scikit-learn, un modèle de régression est un type de modèle prédictif qui estime les résultats continus d’après les fonctionnalités d’entrée. Contrairement aux modèles de classification qui prédisent des étiquettes ou des catégories, les modèles de régression sont utilisés lorsque vous souhaitez prévoir une quantité.

Pour les tâches de classification, les indicateurs incluent l’exactitude, la précision, le rappel, le F1-score et l’aire sous la courbe ROC (AUC-ROC).

  • Précision : mesure la proportion de prévisions correctes par rapport aux prévisions totales.

  • Précision : se concentre sur les prédictions positives, en quantifiant le nombre d’éléments sélectionnés qui sont pertinents.

  • Rappel : également appelé « sensibilité », le rappel permet d’évaluer la capacité du modèle à trouver toutes les instances pertinentes.

  • F1-score : la moyenne harmonique de la précision et du rappel, qui offre un équilibre entre ces deux indicateurs.
  • AUC-ROC : indicateur permettant d’évaluer les performances d’un modèle de classification où la sortie est une probabilité. Il représente visuellement le compromis entre le taux de vrais positifs (TPR) et le taux de faux positifs (FPR).

Pour les tâches de régression, les indicateurs d’évaluation courants dans scikit-learn comprennent l’erreur absolue moyenne (MAE), l’erreur quadratique moyenne racine (RMSE), le score R² et l’erreur quadratique moyenne (MSE).

  • MAE : mesure l’ampleur moyenne des erreurs sans tenir compte de leur direction.

  • RMSE : racine carrée de la moyenne des erreurs quadratiques, qui donne plus de poids aux erreurs plus importantes.

  • Score R2  : également appelé coefficient de détermination, ce score représente la proportion de la variance dans la variable dépendante qui est prévisible à partir des variables indépendantes.

  • MSE : calcule la différence quadratique moyenne entre les valeurs prédites et réelles, permettant de mesurer la proximité entre les ajustements et les points de données.

Par exemple, dans un scénario d’évaluation du risque de crédit où on utilise scikit-learn, l’indicateur d’aire sous la courbe ROC (AUC-ROC) est cruciale pour évaluer la performance du modèle. Cet indicateur mesure la capacité du modèle à distinguer les emprunteurs qui ne remboursent pas leurs prêts de ceux qui les remboursent sur la base de fonctionnalités telles que le revenu, le ratio dette/revenu et les expériences professionnelles. Les valeurs AUC-ROC plus proches de 1 indiquent de meilleurs modèles avec des capacités de différenciation plus élevées. Elles aident les responsables de banque à déterminer la pertinence du modèle pour les décisions de prêt ou à identifier les domaines à améliorer.

Les indicateurs scikit-learn permettent de mener des évaluations approfondies des modèles de machine learning sur plusieurs tâches et scénarios. Comprendre ces indicateurs permet d’interpréter les performances du modèle, d’identifier les domaines potentiels à améliorer et, partant, de sélectionner ou d’optimiser le modèle le plus performant pour un problème spécifique.

Cas d’utilisation de Scikit-learn

Détection des e-mails de spam : les algorithmes de classification de scikit-learn, notamment la régression logistique ou les machines à vecteurs de support (SVM), permettent de filtrer les e-mails indésirables en les classant comme spam ou non. Sklearn permet aussi de contrevalider grâce à la fonction cross_val_score pour évaluer la capacité du classificateur Naive Bayes à faire la distinction entre les e-mails de spam et les e-mails légitimes. Sklearn utilise la validation croisée pour entraîner et tester le modèle sur 5 divisions différentes de vos données. Cela fournit un indicateur de performance moyen qui vous donne une meilleure idée des performances du modèle sur les nouveaux e-mails non lus.

Prévision des prix de l’immobilier : scikit-learn peut être utilisé pour les techniques de régression telles que la régression linéaire pour estimer les prix de l’immobilier sur la base de fonctionnalités comme l’emplacement, la taille et les équipements, aidant ainsi les acheteurs à prendre des décisions éclairées. scikit-learn s’intègre facilement aux bibliothèques de visualisation des données comme Plotly et Matplotlib. Vous pouvez ainsi obtenir des visualisations qui améliorent la compréhension et l’interprétation des résultats de la régression, facilitant ainsi une prise de décision plus éclairée dans un cas d’utilisation comme celui-ci.

Détection de la maladie des feuilles de hêtre : l’algorithme Decision Trees de Scikit-learn peut être utilisé pour les forêts de l’est des États-Unis afin de détecter la maladie des feuilles de hêtre. En analysant des facteurs tels que l’âge de l’arbre, l’emplacement et l’état des feuilles, le modèle permet d’identifier les hêtres menacés par la maladie. En utilisant le machine learning et des approches fondées sur les données, les arbres les plus vulnérables peuvent être identifiés et des stratégies peuvent être déployées pour les protéger.

Détection des anomalies : dans le domaine de la cybersécurité, le partitionnement en k-moyennes de scikit-learn peut être utilisé pour détecter des schémas ou comportements inhabituels susceptibles de signaler des violations de sécurité potentielles. En regroupant des points de données similaires, les k-moyennes permettent d’identifier les données aberrantes, des points de données qui s’écartent considérablement des clusters établis, en tant qu’anomalies potentielles. Ces anomalies peuvent indiquer des tentatives d’accès non autorisées, des activités de logiciels malveillants ou d’autres actions malveillantes. La détection rapide de ces anomalies, à l’aide de sklearn, permet aux équipes de cybersécurité d’enquêter sur les menaces et de les atténuer rapidement, améliorant ainsi la posture de sécurité globale d’une entreprise.

Évaluation du risque de crédit : les institutions financières utilisent l’algorithme de forêts d’arbres décisionnels de scikit-learn pour identifier les fonctionnalités les plus importantes comme l’historique de crédit, le revenu et le ratio dette/revenu lors de l’évaluation du risque de crédit pour les emprunteurs potentiels. En classant l’importance des variables avec les forêts d’arbres décisionnels, les prêteurs peuvent prendre des décisions plus éclairées quant à qui accorder un prêt et à quels taux d’intérêt.

Recherche génomique : sklearn peut appliquer des techniques telles que l’analyse en composantes principales (PCA) pour réduire la complexité des données génétiques, facilitant l’identification de schémas significatifs sans se laisser submerger par le bruit.

Analyse de texte : lorsque vous traitez des documents ou des jeux de données volumineux, la réduction de la dimensionnalité permet de résumer et de visualiser efficacement les thèmes ou les sujets clés, essentiel dans des domaines tels que l’analyse des sentiments ou les systèmes de recommandation de contenu.

Intégration de LLM dans Scikit-learn

scikit-learn se concentre principalement sur les algorithmes de machine learning, mais peut être étendu pour intégrer de grands modèles de langage (LLM)). Bien que centré à l’origine sur des modèles traditionnels tels que les arbres de décision, les machines à vecteurs de support et les algorithmes de partitionnement, l’écosystème flexible de scikit-learn permet une intégration avec les LLM via des configurations d’interface de programmation d’application (API). Cela inclut l’utilisation de modèles tels que la série GPT d’OpenAI et d’autres options fournies par la communauté, comme les modèles Anthropic ou AzureChatOpenAI.

Le processus d’intégration est rationalisé de la même manière que les projets comme Auto-GPT, c’est pourquoi il est accessible aux développeurs qui connaissent bien le workflow de scikit-learn. scikit-learn propose des ressources sur son site GitHub, notamment des tutoriels qui guident les utilisateurs à la découverte des LLM open source. Cette configuration facilite le déploiement du modèle LLM choisi grâce aux identifiants d’API. Ainsi, scikit-learn peut bénéficier de capacités améliorées de traitement automatique du langage naturel.

Exigences

Une compréhension opérationnelle des environnements Python, NumPy, SciPy, Pandas et Matplotlib est essentielle pour exploiter l’efficacité de Scikit-learn, car ils forment une base de prétraitement des données, d’ingénierie des caractéristiques et de visualisation dans les pipelines de machine learning. Ces bibliothèques constituent la base du prétraitement des données, de l’ingénierie de caractéristiques et de la visualisation dans les pipelines de machine learning. La connaissance de leurs capacités permet de gérer efficacement les jeux de données, de sélectionner les caractéristiques pertinentes et de visualiser les résultats, ce qui conduit finalement à une amélioration de la performance des modèles.

Environnement Python

 

Une installation autonome de Python et de ses dépendances, vous permettant d’isoler les exigences de votre projet et d’assurer la cohérence entre les différents projets. Il peut être créé à l’aide d’outils tels que conda ou virtualenv.

Numpy

 

Une bibliothèque qui prend en charge de grands tableaux et matrices multidimensionnelles, ainsi qu’un large éventail de fonctions mathématiques hautes performances pour les manipuler. Il s’agit d’un paquet fondamental pour le calcul scientifique en Python.

Scipy

 

Une bibliothèque qui s’appuie sur NumPy, fournissant des fonctions pour les applications scientifiques et d’ingénierie, telles que le traitement du signal, l’algèbre linéaire, l’optimisation et les statistiques. Elle est largement utilisée dans des domaines tels que la physique, l’ingénierie et l’analyse de données.

Pandas

 

Une bibliothèque qui fournit des structures de données et des fonctions pour gérer efficacement les données structurées, y compris les données tabulaires telles que les feuilles de calcul et les tables SQL. Elle est particulièrement utile pour le nettoyage des données, le filtrage, le regroupement et la fusion de données.

Matplotlib

 

Une bibliothèque de traçage qui fournit un large éventail d’outils de visualisation, vous permettant de créer des tracés, des diagrammes et des graphiques 2D et 3D de haute qualité. Elle est souvent utilisée conjointement avec NumPy et Pandas pour visualiser des données scientifiques.

Développements futurs

Alors que scikit-learn continue d’évoluer, des projets sont en cours pour étendre ses capacités et intégrer des techniques d’ensemble avancées ainsi que des approches de méta-apprentissage. En exploitant la puissance des réseaux neuronaux aux côtés des algorithmes traditionnels, scikit-learn vise à fournir une boîte à outils complète qui répond à un éventail toujours plus important de défis liés au machine learning. Ces développements promettent de les rendre encore plus accessibles aux professionnels qui cherchent à tirer parti des technologies de pointe dans leur travail.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise grâce à l’expertise de pointe d’IBM en matière d’IA et à son portefeuille de solutions.

Découvrir les solutions d’IA
Conseil et services en Intelligence Artificielle (IA)

IBM Consulting et ses services d'IA accompagnent les entreprises dans la redéfinition de leurs activités avec l'intelligence artificielle pour mener leur transformation.

Découvrir les services d’IA
Passez à l’étape suivante

Grâce à l’IA, IBM Concert révèle des informations cruciales sur vos opérations et fournit des recommandations d’amélioration spécifiques aux applications. Découvrez comment Concert peut faire avancer votre entreprise.

Découvrir Concert Découvrir les solutions d’automatisation des processus métier