7.11. Principes d'apprentissage supervisé : ingénierie des fonctionnalités

L'apprentissage supervisé est une approche fondamentale de l'apprentissage automatique, dans laquelle un modèle est entraîné à l'aide d'un ensemble de données qui comprend les entrées (caractéristiques) et les sorties (étiquettes) correspondantes. L’objectif est que le modèle apprenne à mapper les entrées aux sorties afin que lorsque de nouveaux exemples sont présentés, il puisse faire des prédictions précises. Dans ce contexte, l'Feature Engineering est un aspect critique qui peut influencer de manière significative les performances du modèle. Explorons les concepts et techniques essentiels de l'ingénierie des fonctionnalités dans l'apprentissage supervisé avec Python.

Importance de l'ingénierie des fonctionnalités

L'ingénierie des fonctionnalités est le processus d'utilisation des connaissances du domaine pour extraire et transformer les variables d'entrée les plus pertinentes pour le modèle d'apprentissage automatique. Ces transformations peuvent inclure la création de nouvelles fonctionnalités à partir de fonctionnalités existantes, la sélection des fonctionnalités les plus importantes, l'encodage de variables catégorielles, la normalisation ou la standardisation des variables numériques et la gestion des données manquantes.

Les fonctionnalités ont un impact direct sur la capacité du modèle à apprendre et à généraliser à partir des données. Des fonctionnalités bien conçues peuvent améliorer l'efficacité de la formation, l'interprétabilité des modèles et, à terme, la précision des prédictions.

Sélection des fonctionnalités

L'une des premières étapes de l'ingénierie des fonctionnalités est la sélection des fonctionnalités. Cela implique d’identifier les données les plus pertinentes pour la tâche à accomplir. En Python, des bibliothèques comme Scikit-learn fournissent des outils de sélection automatique de fonctionnalités à l'aide de méthodes statistiques, telles que des tests d'hypothèses, ou de modèles d'apprentissage automatique qui attribuent de l'importance aux fonctionnalités, tels que des arbres de décision.

La sélection des fonctionnalités appropriées peut réduire la dimensionnalité du problème, accélérer la formation et améliorer les performances du modèle. Cependant, il est crucial que cette sélection soit effectuée avec soin afin de ne pas exclure des informations importantes qui pourraient améliorer la capacité du modèle à faire des prédictions précises.

Création de fonctionnalités

La création de nouvelles fonctionnalités est souvent le point où la connaissance du domaine entre en jeu. Cela peut impliquer de combiner des fonctionnalités existantes pour former des interactions, d'extraire des informations du texte, de la date et de l'heure, ou de toute autre transformation pouvant rendre les informations plus accessibles au modèle.

Par exemple, dans un ensemble de données sur les prix de l'immobilier, la distance jusqu'au centre-ville peut ne pas être directement présente dans les données, mais elle peut être calculée à partir des coordonnées géographiques. En Python, les bibliothèques comme Pandas sont extrêmement utiles pour manipuler des données et créer de nouvelles fonctionnalités.

Codage des variables catégorielles

Les modèles de machine learning exigent généralement que toutes les entrées soient numériques. Cela signifie que les variables catégorielles, telles que la couleur ou la marque, doivent être transformées en format numérique avant de pouvoir être utilisées pour entraîner un modèle. Des techniques telles que l'encodage à chaud, l'encodage d'étiquettes ou l'intégration peuvent être utilisées pour convertir ces variables catégorielles en nombres.

En Python, la bibliothèque Scikit-learn propose plusieurs fonctions pour effectuer ce codage efficacement. Le choix de la méthode de codage peut avoir un impact significatif sur les performances du modèle, et il est important de prendre en compte la nature de la variable catégorielle au moment de décider comment la coder.

Normalisation et standardisation

La normalisation et la standardisation sont des techniques utilisées pour mettre à l'échelle des caractéristiques numériques afin qu'elles possèdent des propriétés spécifiques qui peuvent être bénéfiques lors de l'entraînement du modèle. La normalisation fait généralement référence à la mise à l'échelle des caractéristiques dans une plage comprise entre 0 et 1, tandis que la standardisation fait référence à l'ajustement des caractéristiques afin qu'elles aient une moyenne de 0 et un écart type de 1.

Ces techniques sont particulièrement importantes lors de l'utilisation de modèles sensibles à l'échelle des fonctionnalités, tels que les machines à vecteurs de support (SVM) ou les réseaux de neurones. La bibliothèque Scikit-learn fournit des fonctions telles que StandardScaler et MinMaxScaler pour faciliter ces transformations.

Traitement des données manquantes

Les données manquantes sont courantes dans de nombreux ensembles de données et peuvent dégrader les performances du modèle si elles ne sont pas gérées correctement. Des techniques d'imputation peuvent être utilisées pour combler ces valeurs manquantes avec des estimations raisonnables, telles que la moyenne, la médiane ou les modes des caractéristiques, ou même avec des modèles plus complexes qui prédisent les valeurs manquantes en fonction des autres caractéristiques.< /p>

Scikit-learn propose la classe SimpleImputer pour l'imputation de base, tandis que des approches plus avancées peuvent être implémentées manuellement ou avec l'aide d'autres bibliothèques.

Conclusion

L'ingénierie des fonctionnalités est une étape cruciale dans le processus de modélisation de l'apprentissage supervisé. Le succès d’un modèle d’apprentissage automatique dépend fortement de la qualité des fonctionnalités qui y sont intégrées. En appliquant des techniques d'ingénierie de fonctionnalités, telles que la sélection, la création, le codage, la normalisation et le traitement des données manquantes, nous pouvons améliorer considérablement les performances du modèle.

En Python, le riche écosystème de bibliothèques telles que Scikit-learn et Pandas offre une variété d'outils pour effectuer efficacement l'ingénierie des fonctionnalités. En combinant ces outils avec une connaissance du domaine et une solide compréhension des principes d'apprentissage supervisé, nous pouvons développer des modèles robustes et précis pour un large éventail de tâches de prédiction.

Répondez maintenant à l’exercice sur le contenu :

Lequel des énoncés suivants décrit le mieux le processus d’ingénierie des fonctionnalités dans le contexte de l’apprentissage supervisé ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Principes d'apprentissage supervisé : équilibrage des classes

Page suivante de lebook gratuit :

33Principes d'apprentissage supervisé : équilibrage des classes

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte