Apprentissage Automatique et Réseaux Neuronaux - page 74

 

12.3 Précision équilibrée (Modèle L12 Eval 5 : Mesures de performance)


12.3 Précision équilibrée (Modèle L12 Eval 5 : Mesures de performance)

Très bien, examinons maintenant le concept de précision équilibrée, qui est particulièrement utile lorsqu'il s'agit de problèmes de déséquilibre de classe dans les tâches de classification. Un déséquilibre de classe se produit lorsqu'une classe a un nombre significativement plus élevé d'étiquettes qu'une autre classe. Pour illustrer cela, considérons un problème de classification multi-classes en utilisant l'exemple des fleurs d'Iris, en particulier Iris setosa, Iris versicolor et Iris virginica.

En règle générale, nous calculons la précision de la prédiction en additionnant les valeurs sur la diagonale de la matrice de confusion et en la divisant par le nombre total d'exemples. Dans l'exemple donné, nous avons 3 étiquettes pour la classe zéro, 769 étiquettes pour la classe un et 18 étiquettes pour la classe deux. Comme vous pouvez le constater, il existe un déséquilibre dans les classes, la première classe ayant un nombre d'exemples plus élevé que les deux autres classes. Si nous calculons la précision régulière, elle serait d'environ 80%, principalement influencée par le nombre élevé d'exemples de classe un.

Cependant, la précision régulière peut ne pas fournir une représentation précise des performances du modèle, en particulier lorsque l'accent doit être mis sur l'obtention de prédictions équilibrées pour toutes les classes. Dans de tels cas, la métrique de précision équilibrée vise à fournir une évaluation plus équitable en donnant un poids égal à chaque classe.

Pour calculer la précision équilibrée, nous considérons chaque classe comme la classe positive et fusionnons les classes restantes dans la classe négative. Par exemple, concentrons-nous d'abord sur la classe zéro. Nous traitons la classe zéro comme la classe positive et combinons la classe un et la classe deux comme la classe négative. En analysant la matrice de confusion, nous pouvons déterminer les vrais positifs, les vrais négatifs, les faux positifs et les faux négatifs pour la classe zéro. Ce processus est répété pour chaque classe, créant des problèmes de classification binaire distincts.

En Python, vous pouvez utiliser la fonction precision_score de la bibliothèque mlxtend pour calculer la précision équilibrée. Cette fonction fonctionne de la même manière que le score de précision de scikit-learn, mais inclut des fonctionnalités supplémentaires pour calculer la précision de la classification binaire. En spécifiant la méthode comme binaire et en fournissant l'étiquette positive, vous pouvez calculer la précision binaire pour chaque classe. De plus, vous pouvez utiliser le paramètre moyen comme "macro" ou "micro" pour calculer directement la précision moyenne par classe.

Dans l'exemple fourni, la matrice de confusion est recréée et la précision régulière, la précision moyenne par classe (précision équilibrée) et les précisions binaires sont calculées. Les précisions binaires correspondent à chaque classe traitée comme l'étiquette positive séparément. En faisant la moyenne des précisions binaires, vous obtenez la précision équilibrée. Dans ce cas, la précision équilibrée est d'environ 86 %.

La précision équilibrée, ou précision moyenne par classe, fournit une évaluation juste des performances d'un classificateur dans les problèmes multi-classes avec déséquilibre de classe. Il considère chaque classe de manière égale et offre un aperçu de la capacité du modèle à prédire toutes les classes avec précision.

Passons maintenant à la courbe ROC (Receiver Operating Characteristic), une autre mesure d'évaluation importante dans l'apprentissage automatique. La courbe ROC est une représentation graphique des performances d'un classificateur binaire et fournit des informations précieuses sur le compromis entre le taux de vrais positifs (TPR) et le taux de faux positifs (FPR) à différents seuils de classification.

Pour comprendre la courbe ROC, définissons d'abord le taux de vrais positifs (TPR) et le taux de faux positifs (FPR). Le TPR, également appelé sensibilité ou rappel, mesure la proportion d'instances positives réelles correctement identifiées par le classifieur. Il est calculé comme le nombre de vrais positifs divisé par la somme des vrais positifs et des faux négatifs :

TPR = vrais positifs / (vrais positifs + faux négatifs)

D'autre part, le taux de faux positifs (FPR) mesure la proportion d'instances négatives réelles qui sont incorrectement classées comme positives. Il est calculé comme le nombre de faux positifs divisé par la somme des faux positifs et des vrais négatifs :

FPR = faux positifs / (faux positifs + vrais négatifs)

Pour construire la courbe ROC, les prédictions du classificateur sont classées en fonction de leurs scores de classification ou probabilités. En faisant varier le seuil de classification, nous pouvons générer différentes valeurs de TPR et de FPR. À partir du seuil qui classe toutes les instances comme positives (résultant en un TPR de 1 et un FPR de 1), nous diminuons progressivement le seuil, en classant moins d'instances comme positives et, par conséquent, en réduisant à la fois le TPR et le FPR.

Le tracé du TPR par rapport au FPR pour chaque valeur de seuil nous donne la courbe ROC. La courbe illustre les performances du classificateur sur différents points de fonctionnement, le scénario idéal étant une courbe qui épouse le coin supérieur gauche, indiquant un TPR élevé et un FPR faible pour toutes les valeurs de seuil.

En plus de la courbe ROC, une autre mesure importante qui en est dérivée est la zone sous la courbe ROC (AUC-ROC). L'AUC-ROC quantifie la performance globale du classificateur en calculant l'aire sous la courbe ROC. Un classificateur parfait a un AUC-ROC de 1, indiquant qu'il atteint un TPR de 1 tout en maintenant un FPR de 0. Inversement, un classificateur aléatoire a un AUC-ROC de 0,5, car il ne fonctionne pas mieux que le hasard.

La courbe ROC et AUC-ROC fournissent une analyse complète des performances d'un classificateur binaire, quel que soit le seuil de classification choisi. Cela nous permet de comparer différents classificateurs ou différents paramètres du même classificateur, ce qui permet de prendre des décisions éclairées sur la sélection du modèle.

Pour calculer la courbe ROC et AUC-ROC en Python, diverses bibliothèques telles que scikit-learn offrent des fonctions pratiques. Ces fonctions prennent les véritables étiquettes et les probabilités ou scores prédits comme entrées et renvoient le FPR, le TPR et les seuils de la courbe ROC, ainsi que la valeur AUC-ROC.

En résumé, la courbe ROC et AUC-ROC sont des outils précieux pour évaluer et comparer les performances des classificateurs binaires. Ils fournissent des informations sur le compromis entre les taux de vrais positifs et de faux positifs à différents seuils de classification, permettant une prise de décision éclairée dans la sélection du modèle.

12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video discusses the balanced accuracy (also known as the average-per-class accuracy), which is an alternative to the standard accuracy and can be useful...
 

12.4 Caractéristique de fonctionnement du récepteur (Modèle L12 Eval 5 : Mesures de performance)



12.4 Caractéristique de fonctionnement du récepteur (Modèle L12 Eval 5 : Mesures de performance)

Le sujet de discussion tourne autour de la courbe des caractéristiques de fonctionnement du récepteur (ROC). Cette courbe, également connue sous le nom de courbe caractéristique de fonctionnement du récepteur (ROC), peut ressembler à un virelangue en raison de son nom complexe. Le terme «caractéristique de fonctionnement du récepteur» provient du domaine des opérateurs de récepteurs radar qui travaillaient avec des technologies telles que la télémétrie en direction radio. Initialement, il a été utilisé dans ce contexte. Cependant, il a gagné en popularité dans le domaine de l'apprentissage automatique en raison de sa capacité à combiner deux métriques essentielles : le taux de vrais positifs et le taux de faux positifs.

La courbe ROC est construite en faisant varier le seuil de prédiction. Pour illustrer cela, prenons un exemple. Dans les problèmes de classification binaire, nous avons deux classes : la classe zéro et la classe un. Plutôt que d'avoir une simple décision de classification binaire, nous pouvons attribuer une probabilité d'appartenance à une classe à chaque exemple. Cette probabilité peut être déterminée à l'aide de divers classificateurs tels que la régression logistique, les k plus proches voisins ou les arbres de décision. Par exemple, dans le cas des k plus proches voisins, la probabilité d'appartenance à une classe peut être calculée comme le rapport des occurrences d'une classe sur l'autre dans le voisinage.

Prenons un exemple utilisant l'algorithme des k plus proches voisins. Supposons que nous ayons un ensemble de voisins et que nous voulions déterminer la probabilité d'appartenance à une classe pour un exemple spécifique. Si nous observons que sur les cinq voisins les plus proches, trois appartiennent à la classe zéro et deux appartiennent à la classe un, la probabilité d'appartenance à la classe pour la classe zéro serait calculée comme 3/5, soit 0,6, et pour la classe un comme 2/5 , soit 0,4. Ces probabilités peuvent être ajustées en fonction d'un seuil.

Le seuil représente le point auquel nous prenons la décision entre la classe zéro et la classe un. Par exemple, si nous fixons le seuil à 0,5, toute probabilité supérieure à 0,5 serait classée dans la classe 1, et toute probabilité inférieure à 0,5 serait classée dans la classe zéro. Dans la régression logistique, 0,5 est couramment utilisé comme seuil. Cependant, le seuil peut être arbitraire et dépend de nos objectifs, que nous souhaitions optimiser le taux de vrais positifs, le taux de faux positifs ou tout autre critère. Le choix du seuil comprend également une règle de départage, telle que la sélection de la classe inférieure en cas d'égalité.

La courbe des caractéristiques de fonctionnement du récepteur (ROC) illustre les performances d'un classificateur en traçant le taux de vrais positifs (TPR) sur l'axe des y et le taux de faux positifs (FPR) sur l'axe des x. Chaque point de la courbe correspond à une valeur de seuil différente. En modifiant le seuil, nous pouvons observer comment les performances du classificateur sont affectées en termes de taux de vrais positifs et de taux de faux positifs. La courbe représente la sensibilité du classificateur à différentes valeurs de seuil, ce qui nous permet d'analyser son comportement de manière exhaustive.

En termes de précision, nous utilisons généralement un seuil fixe, tel que 0,5, pour déterminer l'affectation de classe. Cependant, pour la courbe caractéristique de fonctionnement du récepteur, nous explorons la sensibilité du classificateur en modifiant le seuil. Ce faisant, nous pouvons évaluer l'impact de la variation des seuils sur le taux de faux positifs et le taux de vrais positifs. La courbe affiche différents points correspondant à différents seuils, tels que 0,3, 0,4, 0,5, 0,6, etc. Chaque point de la courbe représente les performances du classifieur pour un seuil spécifique.

Examinons maintenant le concept de seuil et sa relation avec la probabilité d'appartenance à une classe. Auparavant, nous avons vu une figure qui représentait une entité sur l'axe des x et la limite de décision décalée. Cependant, ce n'était qu'une abstraction pour aider à la compréhension. En réalité, l'axe des abscisses représente la probabilité d'appartenance à une classe.

Donc, en continuant là où nous nous étions arrêtés, je vais expliquer davantage l'extrait de code. Après avoir calculé les probabilités pour la première classe, nous utilisons la fonction roc_curve de scikit-learn pour calculer le taux de faux positifs (fpr) et le taux de vrais positifs (tpr) pour différents seuils. La fonction roc_curve prend les vraies étiquettes (y_true) et les probabilités prédites (y_scores) comme entrées et renvoie le fpr, le tpr et les seuils.

Ensuite, nous utilisons la fonction roc_auc_score pour calculer l'aire sous la courbe caractéristique de fonctionnement du récepteur (AUC-ROC). Cette métrique fournit une valeur unique qui résume les performances du classifieur sur tous les seuils possibles. Une AUC-ROC plus élevée indique une meilleure performance de classification. Nous calculons séparément l'AUC-ROC pour les ensembles d'entraînement et de test.

Enfin, nous traçons la courbe ROC à l'aide de Matplotlib. Le tracé montre la courbe ROC pour l'ensemble d'apprentissage en bleu et l'ensemble de test en orange. Nous ajoutons également des étiquettes et une légende à l'intrigue pour une meilleure interprétation.

En visualisant les courbes ROC et en calculant l'AUC-ROC, nous pouvons évaluer les performances du classificateur et les comparer entre les ensembles d'entraînement et de test. Si l'AUC-ROC est proche de 1, cela indique un bon classificateur avec un taux de vrais positifs élevé et un taux de faux positifs faible. En revanche, un AUC-ROC proche de 0,5 suggère un classifieur aléatoire ou inefficace.

En résumé, l'extrait de code montre comment utiliser la courbe des caractéristiques de fonctionnement du récepteur (ROC) et l'aire sous la courbe (AUC) comme mesures d'évaluation pour un problème de classification binaire. La courbe ROC visualise le compromis entre le taux de vrais positifs et le taux de faux positifs à différents seuils de prédiction, tandis que l'AUC-ROC fournit une valeur unique pour quantifier les performances du classifieur.

12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video explains the concept behind receiver operating characteristic curves, relating it back to the concept of true and false positive rates.-------This...
 

12.5 Extension de la métrique binaire aux problèmes multiclasses (L12 Model Eval 5 : Performance Metrics)


12.5 Extension de la métrique binaire aux problèmes multiclasses (L12 Model Eval 5 : Performance Metrics)

Dans cette classe, nous avons discuté de divers classificateurs qui peuvent être étendus pour fonctionner avec des paramètres multi-classes. Les arbres de décision, les k plus proches voisins, l'amplification de gradient, les forêts aléatoires et d'autres classificateurs gèrent naturellement les problèmes multi-classes. Cependant, vous pouvez rencontrer des classificateurs comme la régression logistique ou des machines à vecteurs de support qui sont plus adaptés à la classification binaire. Dans de tels cas, nous devons trouver des moyens d'étendre ces classificateurs binaires pour gérer plusieurs classes.

Une approche est la stratégie "un contre repos" ou "un contre tous", également connue sous le nom d'OvR ou OvA. Cette approche consiste à diviser le problème multi-classes en problèmes de classification binaire séparés. Chaque classe est traitée comme la classe positive dans un classificateur binaire, tandis que les classes restantes sont traitées comme la classe négative. Par exemple, si nous avons trois classes (cercles jaunes, carrés rouges et triangles bleus), nous créons trois classificateurs binaires : un pour classer les cercles jaunes par rapport au reste, un pour les carrés rouges par rapport au reste et un pour les triangles bleus par rapport au reste. repos. Pendant la formation, nous adaptons les trois classificateurs, et pendant la prédiction, nous exécutons les trois classificateurs et choisissons celui avec le score de confiance le plus élevé.

Une autre approche est la stratégie "un contre un", où nous adaptons un classifieur binaire pour chaque paire de classes. Si nous avions trois classes, nous aurions trois classificateurs binaires : un pour classer les cercles jaunes par rapport aux carrés rouges, un pour les cercles jaunes par rapport aux triangles bleus et un pour les carrés rouges par rapport aux triangles bleus. Pendant la prédiction, nous exécutons tous les classificateurs et utilisons le vote à la majorité pour déterminer l'étiquette de classe finale.

Les stratégies OvR et OvO nous permettent d'étendre les classificateurs binaires pour gérer les problèmes multi-classes. Cependant, OvO peut être coûteux en calcul, en particulier lorsque le nombre de classes est important, car il nécessite l'ajustement de plusieurs classificateurs.

Lors de l'évaluation des performances des classificateurs multi-classes, nous devons étendre les métriques de classification binaires pour gérer plusieurs classes. Deux approches courantes pour ce faire sont la moyenne micro et macro. La micro-moyenne consiste à calculer la précision, le rappel et le score F1 en agrégeant les vrais positifs et les faux positifs sur toutes les classes. La macro-moyenne consiste à calculer la précision, le rappel et le score F1 pour chaque classe séparément, puis à les moyenner. La moyenne micro traite chaque instance ou prédiction de la même manière, tandis que la moyenne macro pondère toutes les classes de manière égale. De plus, il existe l'approche pondérée, qui considère le déséquilibre de classe en tenant compte du nombre d'instances réelles pour chaque étiquette.

Dans scikit-learn, vous pouvez spécifier la méthode de calcul de la moyenne (micro, macro ou pondérée) lors de l'utilisation de métriques de classification telles que la précision, le rappel et le score F1. Par exemple, vous pouvez utiliser average='micro' ou average='macro' pour calculer la métrique moyenne micro ou macro, respectivement. Il existe également la caractéristique de fonctionnement du récepteur (ROC) et le score de l'aire sous la courbe (AUC), qui peuvent être calculés à l'aide de la fonction roc_auc_score. La méthode de calcul de moyenne par défaut pour ROC AUC est macro.

Traiter le déséquilibre des classes est un autre défi dans la classification multi-classes. Des techniques telles que le suréchantillonnage et le sous-échantillonnage peuvent être utilisées pour résoudre ce problème. La bibliothèque d'apprentissage déséquilibré fournit des méthodes supplémentaires pour gérer le déséquilibre des classes et est compatible avec scikit-learn.

Dans l'ensemble, l'évaluation du modèle dans la classification multi-classes implique l'extension des classificateurs binaires, le choix de méthodes de calcul de moyenne appropriées pour les métriques d'évaluation et la prise en compte du déséquilibre des classes. Bien que nous ne puissions pas couvrir tous les détails dans cette classe, il existe des ressources comme la documentation de la bibliothèque d'apprentissage déséquilibré qui fournissent plus d'informations sur ces sujets.

12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This last video discusses how binary classifiers can be extended to multi-class settings. Then, it discusses how binary evaluation metrics, i.e., via micro- ...
 

13.0 Introduction à la sélection des fonctionnalités (L13 : sélection des fonctionnalités)


13.0 Introduction à la sélection des fonctionnalités (L13 : sélection des fonctionnalités)

Bonjour à tous! J'espère que vous avez tous passé un semestre productif et que vous avez acquis des connaissances précieuses grâce à ce cours. Je comprends que ce semestre a été assez intense pour la plupart d'entre nous, donc je ne voulais pas ajouter plus de stress en vous submergeant de contenu supplémentaire. Cependant, je m'excuse de ne pas pouvoir couvrir certains sujets comme promis dans le syllabus. Pour compenser cela, j'ai préparé quelques conférences bonus pendant les vacances d'hiver, à partir d'aujourd'hui.

Dans cette série de vidéos, je me concentrerai sur la réduction de la dimensionnalité, en particulier sur deux méthodes : la sélection de caractéristiques et l'extraction de caractéristiques. Ces techniques sont incroyablement utiles et importantes à comprendre. Dans la conférence d'aujourd'hui, nous nous plongerons dans la sélection des fonctionnalités, en explorant comment cela fonctionne, pourquoi c'est essentiel et ses applications pratiques. Dans la prochaine série de vidéos, nous aborderons l'extraction de caractéristiques comme approche alternative.

Avant de nous plonger dans les spécificités de la sélection de caractéristiques et de l'extraction de caractéristiques, discutons brièvement du concept de réduction de la dimensionnalité et de son importance. La réduction de la dimensionnalité vise à réduire le nombre d'entités dans un jeu de données. Par exemple, considérez l'ensemble de données Iris bien connu, qui se compose de quatre caractéristiques : la longueur des sépales, la largeur des sépales, la longueur des pétales et la largeur des pétales. Dans la sélection des caractéristiques, nous choisissons un sous-ensemble de ces caractéristiques, telles que la largeur des sépales et la longueur des pétales, à utiliser dans nos algorithmes d'apprentissage automatique. D'autre part, l'extraction de fonctionnalités implique la création de nouvelles fonctionnalités grâce à des techniques telles que les transformations linéaires. L'analyse en composantes principales (ACP) est l'une de ces méthodes qui combine plusieurs fonctionnalités dans un espace de fonctionnalités plus petit.

Dans cette série de conférences, notre objectif principal est la sélection des caractéristiques, où nous sélectionnons les caractéristiques originales de l'ensemble de données. La réduction de la dimensionnalité, en général, implique la création d'espaces d'entités plus petits. Maintenant, pourquoi nous soucions-nous de ces espaces d'entités dimensionnels plus petits ? Explorons quelques raisons :

  1. Malédiction de la dimensionnalité : les classificateurs d'apprentissage automatique ont souvent du mal à mesure que le nombre de fonctionnalités augmente. Ils peuvent souffrir de surajustement, en particulier des algorithmes comme les K plus proches voisins et les arbres de décision. La réduction de l'ensemble de fonctionnalités peut améliorer les performances de ces algorithmes.

  2. Efficacité de calcul : les grands ensembles de données avec de nombreuses fonctionnalités peuvent être coûteux en calcul à traiter. En réduisant l'ensemble de fonctionnalités, nous pouvons améliorer les performances de calcul sans sacrifier les performances prédictives.

  3. Collecte de données simplifiée : parfois, un sous-ensemble de fonctionnalités plus simple peut générer des performances similaires à celles d'un sous-ensemble de fonctionnalités plus important. Cela peut rendre la collecte de données plus facile et plus rentable, car la collecte de certaines fonctionnalités peut être moins chère ou plus accessible.

  4. Espace de stockage : stocker de grandes quantités de données peut être difficile et coûteux. Les techniques d'extraction et de sélection de caractéristiques aident à réduire la dimensionnalité des données, rendant le stockage plus faisable et plus efficace.

  5. Interprétabilité : comprendre les fonctionnalités peut aider à interpréter des algorithmes complexes d'apprentissage automatique. Elle est particulièrement cruciale dans les domaines où des explications sont nécessaires, comme les demandes de cartes de crédit des clients, où les clients ont le droit de connaître la base des décisions prises par les systèmes automatisés.

Pour résumer, la réduction de dimensionnalité peut être divisée en deux sous-problèmes : la sélection de caractéristiques et l'extraction de caractéristiques. Dans la conférence d'aujourd'hui, nous nous concentrerons sur la sélection des fonctionnalités. Dans la prochaine session, nous discuterons plus en détail de l'extraction de caractéristiques.

Pour illustrer l'importance de la sélection des caractéristiques, permettez-moi de partager un exemple tiré d'un projet collaboratif avec des biochimistes étudiant la lamproie marine. L'objectif était de trouver un inhibiteur fédéral du récepteur mon pour contrôler la population de lamproies marines dans les Grands Lacs. Nous avons utilisé la sélection de caractéristiques pour comprendre quelles caractéristiques moléculaires étaient cruciales. En évaluant les performances de différents sous-ensembles de fonctionnalités à l'aide d'un classificateur d'apprentissage automatique, nous avons découvert que certaines fonctionnalités simples, telles que le nombre d'oxygènes de soufre, étaient très informatives. L'ajout de fonctionnalités supplémentaires n'a pas amélioré de manière significative les performances, ce qui indique que ces fonctionnalités simples étaient les plus importantes pour notre tâche de classification. Cette connaissance nous a guidés dans le criblage de millions de molécules et finalement dans la découverte d'un composé qui a montré une inhibition prometteuse.

Dans le signal de phéromone par un pourcentage significatif en utilisant uniquement les fonctionnalités sélectionnées. Cet exemple démontre la puissance de la sélection de caractéristiques dans l'identification des composants ou caractéristiques clés qui contribuent au résultat souhaité.

Maintenant, approfondissons la sélection des fonctionnalités et sa pertinence. La sélection des caractéristiques est une sous-catégorie de la réduction de la dimensionnalité, qui vise à réduire le nombre de caractéristiques ou de variables dans un ensemble de données tout en conservant des informations pertinentes et significatives. L'objectif ultime est de simplifier l'ensemble de données et d'améliorer l'efficacité de calcul, l'interprétabilité et les performances prédictives.

Il existe plusieurs raisons pour lesquelles la sélection des fonctionnalités est importante et bénéfique. Premièrement, la malédiction de la dimensionnalité pose un défi à l'apprentissage automatique. À mesure que le nombre de fonctionnalités augmente, certains algorithmes peuvent connaître une diminution des performances ou devenir plus enclins au surajustement. En réduisant l'ensemble de fonctionnalités, nous pouvons atténuer ces problèmes et améliorer la précision et la fiabilité des modèles, en particulier pour les algorithmes tels que les K plus proches voisins et les arbres de décision.

Deuxièmement, l'efficacité de calcul est une considération importante lorsqu'il s'agit de grands ensembles de données. Le coût de calcul de la formation et du test des modèles d'apprentissage automatique augmente avec le nombre de fonctionnalités. En sélectionnant un sous-ensemble de fonctionnalités pertinentes, nous pouvons réduire la charge de calcul et accélérer le processus sans sacrifier les performances.

De plus, la sélection des fonctionnalités permet une collecte de données plus facile. Parfois, un sous-ensemble simplifié de fonctionnalités peut fournir des performances prédictives similaires à celles d'un ensemble de fonctionnalités plus important. Ceci est particulièrement utile lorsque la collecte de données devient difficile ou coûteuse. Par exemple, dans le contexte d'un diagnostic médical, l'identification de caractéristiques facilement accessibles qui donnent toujours des résultats précis peut économiser des ressources et rendre le processus plus accessible aux patients.

De plus, la sélection des fonctionnalités facilite l'optimisation de l'espace de stockage. Avec la croissance exponentielle de la génération de données, le stockage et la gestion de grands ensembles de données deviennent une préoccupation majeure. En sélectionnant les fonctionnalités pertinentes, nous pouvons réduire les besoins de stockage sans compromettre les performances globales ou les informations obtenues à partir des données.

De plus, l'interprétabilité joue un rôle crucial, en particulier lorsqu'il s'agit de systèmes automatisés ou de domaines réglementés. La sélection des caractéristiques aide à identifier les caractéristiques les plus influentes et les plus interprétables, permettant une meilleure compréhension et explication du processus de prise de décision. Dans les contextes où les exigences légales ou éthiques exigent des explications sur les décisions, la sélection des fonctionnalités peut faciliter la conformité et la responsabilité.

Pour résumer, la réduction de dimensionnalité, en particulier la sélection de caractéristiques, offre de nombreux avantages dans divers domaines. En sélectionnant les fonctionnalités les plus informatives, nous pouvons atténuer la malédiction de la dimensionnalité, améliorer l'efficacité des calculs, simplifier la collecte de données, optimiser l'espace de stockage et améliorer l'interprétabilité. Ces avantages contribuent à des modèles d'apprentissage automatique plus précis et efficaces et permettent une compréhension plus approfondie des problèmes complexes.

Dans les prochaines conférences, nous explorerons l'extraction de caractéristiques comme une autre technique de réduction de la dimensionnalité. L'extraction de caractéristiques consiste à transformer les caractéristiques d'origine en un nouvel ensemble de caractéristiques grâce à des méthodes telles que l'analyse en composantes principales (ACP). Ce processus nous permet de capturer des informations pertinentes tout en réduisant la dimensionnalité. En comprenant à la fois la sélection de caractéristiques et l'extraction de caractéristiques, nous pouvons tirer parti de la technique appropriée en fonction des caractéristiques et des exigences spécifiques de l'ensemble de données et du problème à résoudre.

Ainsi, dans la prochaine conférence, nous approfondirons l'extraction de caractéristiques et explorerons ses techniques, ses avantages et ses applications. Restez à l'écoute pendant que nous poursuivons notre voyage à travers le monde fascinant de la réduction de la dimensionnalité et son impact sur l'apprentissage automatique.

13.0 Introduction to Feature Selection (L13: Feature Selection)
13.0 Introduction to Feature Selection (L13: Feature Selection)
  • 2021.12.08
  • www.youtube.com
This video gives a brief intro of how we care about dimensionality reduction and introduces feature selection as a subcategory that we will cover in more det...
 

13.1 Les différentes catégories de sélection de fonctionnalités (L13 : Sélection de fonctionnalités)


13.1 Les différentes catégories de sélection de fonctionnalités (L13 : Sélection de fonctionnalités)

Dans la vidéo précédente, nous avons exploré le concept de sélection de caractéristiques en tant que sous-catégorie de réduction de la dimensionnalité. La sélection de fonctionnalités implique la sélection de sous-ensembles de fonctionnalités à partir d'un ensemble de données pour améliorer les performances des modèles d'apprentissage automatique. Nous avons discuté de diverses motivations pour la sélection de fonctionnalités, telles que l'amélioration des performances prédictives et de l'efficacité de calcul, l'optimisation de l'espace de stockage et l'obtention d'un aperçu des données.

Maintenant, approfondissons les différentes catégories d'algorithmes de sélection de fonctionnalités : méthodes de filtrage, méthodes intégrées et méthodes wrapper. Les méthodes de filtrage se concentrent sur les propriétés intrinsèques des caractéristiques elles-mêmes et n'impliquent pas de modèle ou de classificateur. Ils analysent les caractéristiques en fonction de leurs caractéristiques individuelles, telles que la variance ou les corrélations par paires. Par exemple, le calcul de la variance d'une caractéristique permet de déterminer son utilité pour distinguer différents exemples d'apprentissage. Si les valeurs des caractéristiques sont réparties sur l'axe, cela indique son importance. D'autre part, les caractéristiques fortement corrélées suggèrent une redondance, et l'une d'entre elles peut être éliminée sans perdre beaucoup d'informations. Les méthodes de filtrage sont souvent appelées statistiques univariées ou bivariées, car elles analysent une ou des paires de variables.

Les méthodes embarquées, comme leur nom l'indique, intègrent la sélection de fonctionnalités dans l'algorithme d'apprentissage. Ces méthodes sont intégrées dans le processus d'optimisation du modèle et visent à optimiser la fonction objectif. Un exemple est les arbres de décision, où les fonctionnalités sont sélectionnées en interne lors de la croissance de l'arbre. L'arbre de décision choisit la fonctionnalité qui maximise le gain d'informations à chaque fractionnement, ce qui entraîne la sélection de fonctionnalités importantes. Les caractéristiques inutilisées dans l'arbre de décision final peuvent être considérées comme moins importantes.

Les méthodes wrapper sont étroitement alignées sur l'objectif d'optimisation des performances prédictives. Ces méthodes impliquent l'ajustement d'un modèle à différents sous-ensembles d'entités et la sélection ou l'élimination d'entités en fonction des performances du modèle. En comparant les performances des modèles entraînés sur différents sous-ensembles de fonctionnalités, nous pouvons déterminer l'importance de chaque fonctionnalité. Par exemple, si la suppression d'une fonctionnalité entraîne une baisse significative de la précision, cela suggère que la fonctionnalité est importante pour les performances du modèle. Les méthodes wrapper fournissent des informations précieuses sur l'importance des caractéristiques en utilisant directement la précision du modèle.

Bien que les méthodes wrapper offrent une sélection précise des fonctionnalités, elles peuvent être coûteuses en calcul, en particulier lorsqu'il s'agit de grands ensembles de fonctionnalités. Le processus d'ajustement des modèles à différents sous-ensembles et d'évaluation de leurs performances peut prendre du temps. En revanche, les méthodes de filtrage sont plus efficaces en termes de calcul, mais elles peuvent ne pas fournir des résultats aussi précis que les méthodes d'encapsulation. Le compromis entre la précision et l'efficacité de calcul est une considération cruciale dans la sélection des caractéristiques.

Dans les prochaines vidéos, nous approfondirons chaque catégorie d'algorithmes de sélection de fonctionnalités. Nous explorerons plus en détail les méthodes de filtrage, suivies des méthodes intégrées et des méthodes d'encapsulation. En comprenant ces techniques, nous pouvons acquérir une compréhension globale de la sélection des fonctionnalités et de la manière dont elle peut être appliquée pour améliorer les modèles d'apprentissage automatique.

Restez à l'écoute pour la prochaine vidéo, où nous discuterons en profondeur des méthodes de filtrage.

13.1 The Different Categories of Feature Selection (L13: Feature Selection)
13.1 The Different Categories of Feature Selection (L13: Feature Selection)
  • 2021.12.09
  • www.youtube.com
In this video, I am introducing the three main categories of feature selection: filter methods, embedded methods, and wrapper methods.Slides: https://sebasti...
 

13.2 Méthodes de filtrage pour la sélection des caractéristiques -- Seuil de variance (L13 : sélection des caractéristiques)


13.2 Méthodes de filtrage pour la sélection des caractéristiques -- Seuil de variance (L13 : sélection des caractéristiques)

Oui, donc dans la vidéo précédente, nous avons discuté des trois différentes catégories de sélection de fonctionnalités : les méthodes de filtrage, les méthodes intégrées et les méthodes d'encapsulation. Maintenant, approfondissons l'une des catégories, les méthodes de filtrage. Dans les prochaines vidéos, nous explorerons également les méthodes embarquées et les méthodes wrapper. Cependant, pour l'instant, concentrons-nous sur les méthodes de filtrage comme sujet principal.

Les méthodes de filtrage sont des techniques de sélection de caractéristiques qui prennent principalement en compte les propriétés intrinsèques des caractéristiques elles-mêmes. Ils ne s'appuient pas sur un modèle spécifique pour la sélection des fonctionnalités. Un exemple de méthode de filtrage est le seuil de variance. Examinons de plus près le fonctionnement du seuil de variance.

Lors de l'utilisation d'un seuil de variance pour la sélection des caractéristiques, nous calculons la variance de chaque caractéristique. L'hypothèse est que les caractéristiques avec des variances plus élevées peuvent contenir des informations plus utiles pour la formation d'un classifieur ou d'un modèle de régression. Mais pourquoi est-ce vrai ? Pour comprendre cela, considérons une fonctionnalité appelée X1. Sur le côté gauche, nous avons une caractéristique avec une variance élevée et les valeurs des caractéristiques sont bien réparties. Sur le côté droit, nous avons une caractéristique avec une faible variance et les valeurs des caractéristiques sont moins étalées. Une variance plus élevée nous permet de reconstruire les limites de décision en fonction de cette caractéristique. Ceci est crucial pour faire des prédictions précises. Même dans le pire des cas où les classes se chevauchent, des caractéristiques bien réparties peuvent toujours aider à construire des limites de décision.

Pour illustrer davantage ce concept, considérons un cas de classification binaire. Supposons que nous ayons deux classes, la classe carrée et la classe étoile. Dans le meilleur des cas, tous les points de données d'une classe sont d'un côté et tous les points de données de l'autre classe sont de l'autre côté. Cela facilite la construction d'une frontière de décision qui sépare parfaitement les classes. Cependant, dans des scénarios réels, une séparation parfaite n'est pas toujours réalisable. Même lorsque les classes se chevauchent, une caractéristique avec une variance élevée peut toujours aider à construire des limites de décision. Par exemple, un arbre de décision peut classer avec précision les points de données en fonction de caractéristiques bien réparties, comme illustré dans l'exemple de codage.

Maintenant que nous comprenons l'importance de la variance, discutons de la façon dont nous pouvons l'utiliser comme mesure pour la sélection des fonctionnalités. La variance d'une variable aléatoire discrète peut être calculée à l'aide d'une formule spécifique, mais en pratique, nous travaillons souvent avec des ensembles de données dont nous ne connaissons pas la distribution de probabilité. Par conséquent, nous supposons des poids uniformes et calculons la variance en fonction des points de données observés. Par exemple, lorsqu'il s'agit de caractéristiques catégorielles, nous effectuons un encodage à chaud pour créer des variables binaires. Dans ce cas, la variance d'une variable de Bernoulli peut être calculée comme p * (1 - p), où p est la probabilité d'observer une valeur de 1. Ce calcul de variance est particulièrement utile pour la sélection de caractéristiques dans des scénarios de caractéristiques catégoriques.

Pour implémenter la sélection de fonctionnalités basée sur la variance, Scikit-learn fournit la classe VarianceThreshold. Cette classe nous permet de supprimer les fonctionnalités avec de faibles variances. En spécifiant un seuil de variance, nous pouvons éliminer les colonnes de caractéristiques où un certain pourcentage des étiquettes sont identiques. Par exemple, si nous voulons supprimer les entités où plus de 80 % des étiquettes sont similaires, nous pouvons définir le seuil de variance sur 0,16 (calculé comme 0,8 * (1 - 0,8)). Ce seuil garantit que les caractéristiques ayant peu de pouvoir discriminant sont rejetées.

En résumé, les méthodes de filtrage telles que le seuil de variance sont utiles pour la sélection des caractéristiques car elles tiennent compte des propriétés intrinsèques des caractéristiques. En analysant la variance des caractéristiques, nous pouvons identifier et supprimer celles qui fournissent des informations limitées pour les tâches de classification ou de régression.

13.2 Filter Methods for Feature Selection -- Variance Threshold (L13: Feature Selection)
13.2 Filter Methods for Feature Selection -- Variance Threshold (L13: Feature Selection)
  • 2021.12.10
  • www.youtube.com
Sorry, I had some issues with the microphone (a too aggressive filter to remove background noise). Should be better in the next vids!Description: This video ...
 

13.2 Méthodes de filtrage pour la sélection des caractéristiques -- Seuil de variance (L13 : sélection des caractéristiques)


13.2 Méthodes de filtrage pour la sélection des caractéristiques -- Seuil de variance (L13 : sélection des caractéristiques)

Oui, donc dans la vidéo précédente, nous avons discuté des trois différentes catégories de sélection de fonctionnalités : les méthodes de filtrage, les méthodes intégrées et les méthodes d'encapsulation. Maintenant, approfondissons l'une des catégories, les méthodes de filtrage. Dans les prochaines vidéos, nous explorerons également les méthodes embarquées et les méthodes wrapper. Cependant, pour l'instant, concentrons-nous sur les méthodes de filtrage comme sujet principal.

Les méthodes de filtrage sont des techniques de sélection de caractéristiques qui prennent principalement en compte les propriétés intrinsèques des caractéristiques elles-mêmes. Ils ne s'appuient pas sur un modèle spécifique pour la sélection des fonctionnalités. Un exemple de méthode de filtrage est le seuil de variance. Examinons de plus près le fonctionnement du seuil de variance.

Lors de l'utilisation d'un seuil de variance pour la sélection des caractéristiques, nous calculons la variance de chaque caractéristique. L'hypothèse est que les caractéristiques avec des variances plus élevées peuvent contenir des informations plus utiles pour la formation d'un classifieur ou d'un modèle de régression. Mais pourquoi est-ce vrai ? Pour comprendre cela, considérons une fonctionnalité appelée X1. Sur le côté gauche, nous avons une caractéristique avec une variance élevée et les valeurs des caractéristiques sont bien réparties. Sur le côté droit, nous avons une caractéristique avec une faible variance et les valeurs des caractéristiques sont moins étalées. Une variance plus élevée nous permet de reconstruire les limites de décision en fonction de cette caractéristique. Ceci est crucial pour faire des prédictions précises. Même dans le pire des cas où les classes se chevauchent, des caractéristiques bien réparties peuvent toujours aider à construire des limites de décision.

Pour illustrer davantage ce concept, considérons un cas de classification binaire. Supposons que nous ayons deux classes, la classe carrée et la classe étoile. Dans le meilleur des cas, tous les points de données d'une classe sont d'un côté et tous les points de données de l'autre classe sont de l'autre côté. Cela facilite la construction d'une frontière de décision qui sépare parfaitement les classes. Cependant, dans des scénarios réels, une séparation parfaite n'est pas toujours réalisable. Même lorsque les classes se chevauchent, une caractéristique avec une variance élevée peut toujours aider à construire des limites de décision. Par exemple, un arbre de décision peut classer avec précision les points de données en fonction de caractéristiques bien réparties, comme illustré dans l'exemple de codage.

Maintenant que nous comprenons l'importance de la variance, discutons de la façon dont nous pouvons l'utiliser comme mesure pour la sélection des fonctionnalités. La variance d'une variable aléatoire discrète peut être calculée à l'aide d'une formule spécifique, mais en pratique, nous travaillons souvent avec des ensembles de données dont nous ne connaissons pas la distribution de probabilité. Par conséquent, nous supposons des poids uniformes et calculons la variance en fonction des points de données observés. Par exemple, lorsqu'il s'agit de caractéristiques catégorielles, nous effectuons un encodage à chaud pour créer des variables binaires. Dans ce cas, la variance d'une variable de Bernoulli peut être calculée comme p * (1 - p), où p est la probabilité d'observer une valeur de 1. Ce calcul de variance est particulièrement utile pour la sélection de caractéristiques dans des scénarios de caractéristiques catégoriques.

Pour implémenter la sélection de fonctionnalités basée sur la variance, Scikit-learn fournit la classe VarianceThreshold. Cette classe nous permet de supprimer les fonctionnalités avec de faibles variances. En spécifiant un seuil de variance, nous pouvons éliminer les colonnes de caractéristiques où un certain pourcentage des étiquettes sont identiques. Par exemple, si nous voulons supprimer les entités où plus de 80 % des étiquettes sont similaires, nous pouvons définir le seuil de variance sur 0,16 (calculé comme 0,8 * (1 - 0,8)). Ce seuil garantit que les caractéristiques ayant peu de pouvoir discriminant sont rejetées.

En résumé, les méthodes de filtrage telles que le seuil de variance sont utiles pour la sélection des caractéristiques car elles tiennent compte des propriétés intrinsèques des caractéristiques. En analysant la variance des caractéristiques, nous pouvons identifier et supprimer celles qui fournissent des informations limitées pour les tâches de classification ou de régression.

13.2 Filter Methods for Feature Selection -- Variance Threshold (L13: Feature Selection)
13.2 Filter Methods for Feature Selection -- Variance Threshold (L13: Feature Selection)
  • 2021.12.10
  • www.youtube.com
Sorry, I had some issues with the microphone (a too aggressive filter to remove background noise). Should be better in the next vids!Description: This video ...
 

13.3.1 Régression logistique régularisée L1 en tant que sélection de fonctionnalités intégrées (L13 : Sélection de fonctionnalités)


13.3.1 Régression logistique régularisée L1 en tant que sélection de fonctionnalités intégrées (L13 : Sélection de fonctionnalités)

Dans la vidéo précédente, nous avons discuté de différentes méthodes de sélection des fonctionnalités, en nous concentrant spécifiquement sur les méthodes de filtrage basées sur les propriétés des fonctionnalités. Examinons maintenant deux catégories différentes de sélection de fonctionnalités : les méthodes intégrées et les méthodes wrapper. Ces deux catégories impliquent l'utilisation d'un modèle, tel qu'un classificateur, pour la sélection des fonctionnalités. Dans cette vidéo, nous nous concentrerons sur les méthodes embarquées, où la sélection de fonctionnalités se produit implicitement dans le cadre du processus de formation ou d'optimisation du modèle.

Les méthodes embarquées intègrent la sélection des caractéristiques dans le processus de formation du modèle. Nous explorerons ce concept dans le contexte de la régression logistique régularisée L1, également connue sous le nom de régression Lasso. Avant de continuer, il est important de noter que cette vidéo suppose une connaissance de base de la régression logistique. Cependant, nous n'aborderons que les notions essentielles pour éviter de trop s'égarer.

Commençons par considérer un modèle de régression logistique binaire avec deux classes, en utilisant le jeu de données Iris avec deux caractéristiques : la longueur et la largeur des pétales. La régression logistique produit une limite de décision linéaire pour séparer les deux classes. La limite de décision est déterminée en appliquant un seuil à la somme pondérée des entrées, qui subissent une transformation non linéaire.

Pour mieux comprendre la régression logistique, examinons une représentation graphique du modèle. Dans ce diagramme, nous avons les poids (w) sur le côté gauche, w1 et w2 représentant les poids des deux caractéristiques. De plus, nous avons l'unité de biais (B) agissant comme un terme d'interception. La somme pondérée est calculée comme la somme du produit de chaque poids et de sa caractéristique correspondante, plus le terme de biais. Cette somme pondérée passe ensuite par une fonction sigmoïde, également appelée sigmoïde logistique, qui génère une valeur comprise entre 0 et 1. Cette valeur représente la probabilité d'appartenance à la classe, indiquant la probabilité qu'un point de données appartienne à la classe 1 compte tenu des caractéristiques observées. . En appliquant un seuil (généralement 0,5), nous pouvons faire des prédictions binaires, classant le point de données en classe 0 ou en classe 1.

Maintenant que nous avons une compréhension de base de la régression logistique, concentrons-nous sur la régression logistique régularisée en L1. L'aspect clé de la régularisation L1 est l'inclusion d'un terme de norme L1, qui mesure l'ampleur des poids. Ce terme est ajouté à la fonction de perte, pénalisant effectivement les modèles complexes avec des poids importants. Dans la régression logistique, nous visons à minimiser la fonction de perte tout en minimisant les poids.

Pour visualiser cela, imaginez des courbes de niveau représentant la fonction de perte. Les contours extérieurs correspondent à de grandes valeurs de perte, tandis que les contours plus proches du centre représentent de plus petites valeurs de perte. Le minimum global de la fonction de perte sans régularisation se produit au centre, indiquant les poids optimaux pour minimiser la perte. Cependant, le terme de pénalité L1 préfère les poids plus petits et encourage la simplicité. En introduisant ce terme de pénalité, nous recherchons un équilibre entre la minimisation de la perte et la minimisation de la pénalité. Remarquablement, la régression logistique régularisée L1 a tendance à produire des poids clairsemés, certains poids étant exactement nuls. Cet aspect de la sélection des fonctionnalités est ce qui rend la régularisation L1 attrayante.

Pour démontrer la régression logistique régularisée L1 dans la pratique, nous utiliserons l'ensemble de données wine. Cet ensemble de données contient 13 caractéristiques différentes liées à diverses caractéristiques du vin, et la tâche consiste à classer les vins en différents types. Nous commençons par diviser les données en ensembles d'apprentissage et de test, une pratique courante en apprentissage automatique.

Veuillez noter que les exemples de code détaillés et des explications supplémentaires se trouvent dans le bloc-notes accompagnant cette vidéo, qui sera fourni ci-dessous.

Passons maintenant à la partie sélection des fonctionnalités en utilisant l'approche de régularisation L1, également connue sous le nom de Lasso. Nous utiliserons le modèle de régression logistique de scikit-learn, qui nous permet d'appliquer la pénalité de régularisation L1.

 from sklearn.linear_model import LogisticRegression

# Create a Logistic Regression model with L1 regularization
model = LogisticRegression(penalty= 'l1' , solver= 'liblinear' )

# Fit the model on the training data
model.fit(X_train, y_train)

En définissant le paramètre de pénalité sur 'l1', nous spécifions que nous voulons utiliser la régularisation L1. Le paramètre du solveur est défini sur "liblinear", ce qui convient aux petits ensembles de données comme celui avec lequel nous travaillons.

Après avoir ajusté le modèle sur les données d'apprentissage, nous pouvons accéder aux coefficients appris, qui représentent les poids attribués à chaque caractéristique. Imprimons les coefficients :

# Get the learned coefficients
coefficients = model.coef_

# Print the coefficients
for i, coef in enumerate(coefficients[ 0 ]):
    print(f 'Feature {i+1}: {coef:.4f}' )
L'attribut coef_ du modèle contient les coefficients. Nous parcourons les coefficients et les imprimons, en associant chaque coefficient à sa caractéristique correspondante.

Ensuite, nous pouvons identifier les caractéristiques qui ont des coefficients non nuls, car ce sont les caractéristiques sélectionnées. Retrouvons les fonctionnalités sélectionnées et imprimons-les :

# Find the indices of non-zero coefficients
selected_features = [i for i, coef in enumerate(coefficients[ 0 ]) if coef != 0 ]

# Print the selected features
print( 'Selected features:' )
for feature in selected_features:
    print(f 'Feature {feature+1}' )
Nous parcourons à nouveau les coefficients, cette fois en stockant les indices des coefficients non nuls dans la liste selected_features. Enfin, nous imprimons les fonctionnalités sélectionnées.

En appliquant la régularisation L1, le modèle de régression logistique effectue implicitement la sélection des caractéristiques en conduisant certains coefficients à zéro. Les caractéristiques avec des coefficients non nuls sont considérées comme importantes pour les prédictions du modèle.

Il est important de noter que le choix du paramètre de régularisation C influence le degré de régularisation appliqué. Une valeur C plus petite entraîne une régularisation plus forte, conduisant potentiellement à plus de fonctionnalités avec des coefficients nuls.

Vous avez maintenant une compréhension de la méthode de sélection des fonctionnalités intégrées à l'aide de la régularisation L1 dans la régression logistique. Dans la prochaine vidéo, nous explorerons la sélection de fonctionnalités avec des arbres de décision et des forêts aléatoires.

Dans la vidéo suivante, nous explorerons la sélection de fonctionnalités à l'aide d'arbres de décision et de forêts aléatoires. Ces méthodes sont appelées méthodes d'ensemble et peuvent être utilisées à la fois pour les problèmes de classification et de régression.

Les arbres de décision sont des modèles simples mais puissants qui effectuent des prédictions en divisant l'espace des caractéristiques en régions et en attribuant une étiquette à chaque région. Les forêts aléatoires, d'autre part, sont un ensemble d'arbres de décision où chaque arbre est formé sur un sous-ensemble aléatoire de données et de caractéristiques.

Commençons par utiliser le Random Forest Classifier de scikit-learn pour la sélection des fonctionnalités :

 from sklearn.ensemble import RandomForestClassifier

# Create a Random Forest Classifier
model = RandomForestClassifier()

# Fit the model on the training data
model.fit(X_train, y_train)

Après avoir ajusté le modèle sur les données d'apprentissage, nous pouvons accéder aux importances des caractéristiques, qui représentent l'importance relative de chaque caractéristique dans les prédictions du modèle. Imprimons les importances des fonctionnalités :

# Get the feature importances
importances = model.feature_importances_

# Print the feature importances
for i, importance in enumerate(importances):
    print(f 'Feature {i+1}: {importance:.4f}' )
L'attribut feature_importances_ du modèle contient les importances des fonctionnalités. Nous parcourons les importances et les imprimons, en associant chaque importance à sa caractéristique correspondante.

Ensuite, nous pouvons classer les fonctionnalités en fonction de leur importance et sélectionner les k principales fonctionnalités. Trouvons les principales fonctionnalités k et imprimons-les :

# Rank the features based on importances
feature_ranks = sorted(range(len(importances)), key=lambda i: importances[i], reverse=True)

# Select the top k features
k = 5   # Number of top features to select
top_features = feature_ranks[:k]

# Print the top features
print(f 'Top {k} features:' )
for feature in top_features:
    print(f 'Feature {feature+1}' )

Nous trions les indices des caractéristiques en fonction de leur importance, par ordre décroissant. Ensuite, nous sélectionnons les top k fonctionnalités en découpant la liste feature_ranks. Enfin, nous imprimons les principales caractéristiques.

Les forêts aléatoires prennent en compte la contribution moyenne de chaque caractéristique dans tous les arbres de décision de l'ensemble. Plus l'importance est élevée, plus la caractéristique a d'influence sur les prédictions.

De cette manière, les forêts aléatoires offrent un moyen simple d'effectuer une sélection de fonctionnalités basée sur les scores d'importance.

Vous comprenez maintenant la sélection de fonctionnalités à l'aide d'arbres de décision et de forêts aléatoires. Dans la vidéo suivante, nous aborderons la méthode d'élimination des fonctionnalités récursives.

13.3.1 L1-regularized Logistic Regression as Embedded Feature Selection (L13: Feature Selection)
13.3.1 L1-regularized Logistic Regression as Embedded Feature Selection (L13: Feature Selection)
  • 2021.12.13
  • www.youtube.com
Without going into the nitty-gritty details behind logistic regression, this lecture explains how/why we can consider an L1 penalty --- a modification of the...
 

13.3.2 Arbres de décision et importance des caractéristiques de la forêt aléatoire (L13 : sélection des caractéristiques)


13.3.2 Arbres de décision et importance des caractéristiques de la forêt aléatoire (L13 : sélection des caractéristiques)

Salutations, téléspectateurs ! Dans notre vidéo précédente, nous avons commencé notre discussion sur les méthodes intégrées pour la sélection des fonctionnalités, en nous concentrant sur un exemple de régression logistique régularisée. Aujourd'hui, nous allons nous plonger dans un autre exemple de méthodes embarquées, à savoir les arbres de décision, et examiner comment elles sélectionnent les fonctionnalités à chaque nœud. Nous explorerons également leur relation avec l'importance des caractéristiques forestières aléatoires, un concept que vous connaissez peut-être déjà. Alors, sautons dedans !

Mais avant de continuer, j'ai une petite annonce à vous faire. Malheureusement, le crayon ou le stylo de mon iPad ne fonctionne plus, j'ai donc opté pour une tablette à stylet. Cependant, je dois admettre qu'il a été un peu plus difficile de s'y habituer que prévu. Il me faudra peut-être quelques vidéos supplémentaires pour devenir vraiment à l'aise et compétent avec cela. De plus, j'essaie un nouveau logiciel d'annotation d'écran, alors soyez indulgent avec moi s'il y a des problèmes. J'espère que le processus d'annotation deviendra plus fluide dans les prochaines vidéos. Maintenant, recentrons-nous sur notre sujet.

Pour récapituler, la sélection de fonctionnalités peut être globalement classée en trois méthodes principales : les méthodes de filtrage, les méthodes d'encapsulation et les méthodes intégrées. Dans notre vidéo précédente, nous avons exploré la régression logistique Lasso ou L1-régularisée comme exemple de méthodes intégrées. Aujourd'hui, nous portons notre attention sur les arbres de décision et les forêts aléatoires.

Tout d'abord, discutons des arbres de décision et de la manière dont ils effectuent la sélection des fonctionnalités. Pour illustrer cela, considérons un ensemble de données que nous avons précédemment examiné. Il se compose de deux caractéristiques, x1 et x2, et de deux classes : carrés (classe 0) et triangles (classe 1). Notre objectif est de classer les points de données, et nous pouvons visualiser la limite de décision comme une ligne de séparation qui sépare les deux classes. Plusieurs limites de décision peuvent y parvenir, comme je le démontrerai bientôt.

Examinons maintenant de plus près comment un arbre de décision divise l'ensemble de données. J'ai formé un arbre de décision à l'aide de scikit-learn et je l'ai tracé pour vous. Cet arbre présente deux divisions. La première division se produit sur la caractéristique x1 à une valeur limite de 5,5, divisant les données en deux groupes. La deuxième division a lieu sur la caractéristique x2 à une valeur limite de 10,5, partitionnant davantage les données. En effectuant ces divisions, l'arbre de décision classe avec succès l'ensemble de données. Nous pouvons évaluer l'efficacité de ces divisions en examinant l'entropie, qui indique le niveau de mélange ou de désordre dans les classes. Notre objectif est de réduire au maximum l'entropie, atteignant idéalement une valeur de zéro, ce qui signifie une classification parfaite. Dans notre exemple, nous observons que l'entropie diminue à chaque division, atteignant finalement zéro.

Ce qui est intéressant à noter, c'est que les arbres de décision effectuent intrinsèquement une sélection de fonctionnalités. À chaque nœud, l'arborescence décide de la fonctionnalité à utiliser pour le fractionnement. Cette décision est basée sur la caractéristique qui maximise la diminution d'entropie ou maximise le gain d'information. Par conséquent, l'arbre de décision sélectionne automatiquement les caractéristiques les plus informatives pour construire le modèle de classification.

Maintenant, concentrons-nous sur les forêts aléatoires, qui sont des ensembles d'arbres de décision. Les forêts aléatoires permettent d'estimer l'importance des caractéristiques. Pour le démontrer, tournons-nous vers l'ensemble de données sur le vin, qui comprend 13 caractéristiques différentes liées à diverses caractéristiques du vin, telles que la teneur en alcool, l'acide malique, les cendres, etc. Sur le côté droit, vous pouvez voir un diagramme d'importance des caractéristiques généré par la forêt aléatoire. Les importances des fonctionnalités vont de 0 à 1 et totalisent jusqu'à 1, représentant l'importance relative de chaque fonctionnalité. L'intrigue est triée par ordre décroissant, avec la caractéristique la plus importante à gauche.

Pour générer ce tracé, j'ai utilisé l'attribut feature_importances_ de scikit-learn, qui calcule l'importance des caractéristiques en fonction du modèle de forêt aléatoire. Comme vous pouvez le constater, la caractéristique la plus importante de cet ensemble de données est la proline, suivie des flavonoïdes et de l'intensité de la couleur.

Les valeurs d'importance des caractéristiques sont déterminées en mesurant la réduction totale de l'impureté (souvent mesurée par l'impureté ou l'entropie de Gini) obtenue par des divisions sur chaque caractéristique dans tous les arbres de décision de la forêt aléatoire. Les caractéristiques qui conduisent systématiquement à une plus grande réduction des impuretés sont considérées comme plus importantes.

Il est important de noter que l'importance des caractéristiques est une mesure relative dans le contexte du modèle de forêt aléatoire. Les valeurs sont spécifiques à la forêt aléatoire que vous avez entraînée et ne peuvent pas être généralisées à d'autres modèles ou ensembles de données. Cependant, il peut toujours fournir des informations précieuses sur les caractéristiques les plus influentes pour faire des prédictions.

Maintenant que nous avons couvert les arbres de décision et les forêts aléatoires, résumons ce que nous avons appris jusqu'à présent. Les arbres de décision effectuent implicitement la sélection des caractéristiques en sélectionnant la caractéristique la plus informative à chaque fractionnement, dans le but de diminuer l'entropie et d'améliorer la classification. D'autre part, les forêts aléatoires, en tant qu'ensemble d'arbres de décision, fournissent une mesure de l'importance des caractéristiques en évaluant la réduction totale des impuretés obtenue par chaque caractéristique dans tous les arbres.

Comprendre l'importance des fonctionnalités peut être bénéfique de diverses manières. Il aide à identifier les caractéristiques les plus pertinentes pour prédire la variable cible, permet de réduire la dimensionnalité en se concentrant sur les caractéristiques les plus informatives et fournit des informations sur les relations sous-jacentes entre les caractéristiques et la variable cible.

Maintenant, approfondissons le processus d'évaluation de l'importance des caractéristiques dans les forêts aléatoires. Nous allons explorer une méthode appelée importance de permutation. Mais avant cela, revoyons brièvement l'échantillonnage bootstrap et le concept d'échantillons hors sac.

L'échantillonnage bootstrap consiste à échantillonner de manière aléatoire l'ensemble de données d'origine avec remplacement, ce qui entraîne des points de données en double. Par conséquent, certains exemples ne sont pas inclus dans l'échantillon bootstrap, créant ce que nous appelons des échantillons hors sac. Ces échantillons servent d'ensembles de validation ou d'évaluation puisque les arbres ne les voient pas pendant la formation.

Maintenant, concentrons-nous sur la méthode B, qui est l'importance de la permutation. Il utilise les échantillons hors sac dont nous avons parlé plus tôt. Tout d'abord, nous pouvons évaluer les performances prédictives des arbres de décision dans la forêt aléatoire lors de l'apprentissage. Pour chaque arbre, des prédictions peuvent être faites pour les échantillons hors sac, qui agissent comme des points de données de validation ou de test exclusifs à cet arbre.

Pour calculer l'importance de la permutation, nous commençons avec une matrice de caractéristiques contenant les valeurs de caractéristiques d'origine pour les exemples hors sac. Pour chaque arbre de décision dans la forêt aléatoire, nous permutons les valeurs de la caractéristique J dans les exemples hors sac. Cela signifie que nous mélangeons au hasard les valeurs des caractéristiques tout en gardant les étiquettes de classe inchangées.

Ensuite, nous utilisons la matrice de caractéristiques permutées pour faire des prédictions sur les exemples hors sac en utilisant l'arbre de décision actuel. N'oubliez pas que ces prédictions sont basées sur les valeurs de caractéristiques permutées, elles représentent donc les performances du modèle lorsque la caractéristique J est randomisée.

Nous comparons les prédictions permutées avec les prédictions d'origine pour chaque exemple hors sac et comptons combien de fois la prédiction de classe correcte change en raison de la permutation de la caractéristique J. Ce nombre reflète l'impact de la caractéristique J sur la précision du modèle. Si la caractéristique J est importante, la permutation de ses valeurs devrait entraîner une diminution significative de la précision de la prédiction.

Nous répétons ce processus pour chaque caractéristique de l'ensemble de données, en calculant l'impact de chaque caractéristique sur la précision du modèle. Plus la permutation d'une caractéristique affecte les prédictions, plus elle est considérée comme importante.

Pour quantifier l'importance de la caractéristique, nous calculons la diminution de la précision causée par la permutation de chaque caractéristique. Cela se fait en soustrayant la précision permutée de la précision d'origine et en faisant la moyenne de cette différence sur tous les arbres de décision de la forêt aléatoire.

Enfin, nous normalisons les valeurs d'importance des caractéristiques afin qu'elles totalisent un, fournissant une mesure relative de l'importance entre les caractéristiques. Cette normalisation garantit que les valeurs d'importance sont comparables et interprétables.

Cependant, il est essentiel de savoir que la méthode de l'importance de la permutation présente certaines limites et considérations.

Premièrement, l'importance de la permutation peut sous-estimer l'importance des caractéristiques corrélées. Lors de la permutation d'une caractéristique, cela peut entraîner des modifications des prédictions pour d'autres caractéristiques corrélées. Par conséquent, l'importance de ces caractéristiques corrélées peut ne pas être reflétée avec précision dans le diagramme d'importance des caractéristiques. Il est important de prendre en compte la corrélation entre les fonctionnalités lors de l'interprétation de leur importance.

Deuxièmement, l'importance de la permutation suppose que l'importance de la caractéristique est uniquement basée sur la précision prédictive du modèle. Bien que la précision prédictive soit un facteur crucial, elle peut ne pas saisir tous les aspects de l'importance des caractéristiques. Il pourrait y avoir d'autres dimensions importantes, telles que l'interprétabilité ou la pertinence de la connaissance du domaine d'une caractéristique.

Malgré ces limites, l'importance de la permutation fournit une mesure quantitative précieuse de l'importance des caractéristiques. Il permet aux chercheurs et aux praticiens de comprendre quelles caractéristiques ont le plus d'influence sur les prédictions du modèle et peut guider les décisions liées à la sélection des caractéristiques, à l'interprétation du modèle et à la réduction de la dimensionnalité.

Dans la vidéo suivante, nous explorerons une autre catégorie de méthodes de sélection de fonctionnalités appelées méthodes wrapper. Les méthodes wrapper impliquent l'évaluation de différents sous-ensembles de fonctionnalités à l'aide d'un modèle d'apprentissage automatique spécifique. Nous approfondirons l'élimination des fonctionnalités récursives et la sélection des fonctionnalités avant/arrière. Ces méthodes peuvent être particulièrement utiles lorsque le nombre de caractéristiques est important et que la sélection du sous-ensemble le plus pertinent devient cruciale pour les performances du modèle.

Pour récapituler, nous avons couvert les méthodes embarquées, en particulier les arbres de décision et les forêts aléatoires, en tant que techniques de sélection de caractéristiques. Les arbres de décision effectuent implicitement la sélection des caractéristiques en sélectionnant la caractéristique la plus informative à chaque fractionnement, dans le but de réduire l'entropie et d'améliorer la classification. Les forêts aléatoires, en tant qu'ensemble d'arbres de décision, fournissent une mesure de l'importance des caractéristiques en évaluant la réduction totale des impuretés obtenue par chaque caractéristique dans tous les arbres. Nous avons également discuté de la méthode d'importance de la permutation, qui quantifie l'importance des caractéristiques en permutant les valeurs des caractéristiques et en mesurant leur impact sur la précision du modèle.

Comprendre l'importance des caractéristiques permet aux scientifiques et aux praticiens des données de prendre des décisions éclairées sur la sélection des caractéristiques, d'interpréter les modèles et de mieux comprendre les relations sous-jacentes entre les caractéristiques et la variable cible. Il s'agit d'un outil précieux dans la boîte à outils d'apprentissage automatique qui peut contribuer à améliorer les performances et la compréhension du modèle.

Dans nos vidéos précédentes, nous avons couvert différentes méthodes de sélection de fonctionnalités, y compris les méthodes de filtrage, les méthodes d'encapsulation et les méthodes intégrées. Dans cette vidéo, nous nous concentrerons sur les méthodes wrapper, en particulier l'élimination récursive des fonctionnalités (RFE) et la sélection des fonctionnalités avant/arrière.

Les méthodes wrapper sont des techniques de sélection de fonctionnalités qui impliquent l'évaluation de différents sous-ensembles de fonctionnalités à l'aide d'un modèle d'apprentissage automatique spécifique. Contrairement aux méthodes de filtrage, qui reposent sur des mesures statistiques, et aux méthodes intégrées, qui intègrent la sélection des caractéristiques dans le processus de formation du modèle, les méthodes wrapper utilisent les performances d'un modèle comme critère de sélection des caractéristiques.

Commençons par discuter de l'élimination récursive des fonctionnalités (RFE). RFE est une approche itérative de sélection de fonctionnalités qui fonctionne en éliminant de manière récursive les fonctionnalités et en créant des modèles sur les fonctionnalités restantes. Il commence par former un modèle sur l'ensemble complet des fonctionnalités et classe les fonctionnalités en fonction de leur importance. Ensuite, il élimine la ou les fonctionnalités les moins importantes et répète le processus avec les fonctionnalités restantes. Ce processus itératif se poursuit jusqu'à ce qu'un nombre spécifié de fonctionnalités soit atteint ou qu'un seuil de performances prédéfini soit atteint.

L'idée derrière RFE est qu'en supprimant de manière récursive les fonctionnalités les moins importantes, il se concentre sur les fonctionnalités les plus informatives qui contribuent le plus aux performances du modèle. RFE peut être utilisé avec n'importe quel modèle d'apprentissage automatique qui fournit une mesure de l'importance ou de la pondération des fonctionnalités. Les modèles populaires utilisés avec RFE incluent la régression logistique, les machines à vecteurs de support et les forêts aléatoires.

Passons maintenant à la sélection des fonctions avant/arrière. Il s'agit de deux méthodes wrapper liées qui recherchent un sous-ensemble optimal de fonctionnalités en ajoutant ou en supprimant de manière itérative des fonctionnalités en fonction de leur contribution aux performances du modèle.

La sélection de fonctionnalités vers l'avant commence par un ensemble de fonctionnalités vide et ajoute de manière itérative une fonctionnalité à la fois. À chaque itération, il évalue les performances du modèle à l'aide de la validation croisée ou d'une autre métrique d'évaluation et sélectionne la fonctionnalité qui améliore le plus les performances. Le processus se poursuit jusqu'à ce qu'un critère d'arrêt prédéfini soit satisfait, tel que l'atteinte d'un nombre souhaité de fonctionnalités ou un plateau d'amélioration des performances.

La sélection de fonctionnalités en amont, en revanche, commence par l'ensemble complet de fonctionnalités et supprime de manière itérative une fonctionnalité à la fois. A chaque itération, il évalue les performances du modèle et supprime la fonctionnalité qui a le moins d'impact sur les performances. Le processus se poursuit jusqu'à ce qu'un critère d'arrêt soit satisfait.

La sélection d'entités en avant et en arrière peut être coûteuse en calcul, en particulier lorsqu'il s'agit d'un grand nombre d'entités. Pour atténuer cela, diverses stratégies peuvent être utilisées, telles que l'utilisation d'heuristiques ou d'approximations pour accélérer le processus de recherche.

Il convient de noter que les méthodes de wrapper, y compris RFE, la sélection directe et la sélection arrière, peuvent être sensibles au choix de la métrique d'évaluation et du modèle d'apprentissage automatique utilisé. Différentes métriques d'évaluation peuvent conduire à différents sous-ensembles de fonctionnalités sélectionnées, et les performances des fonctionnalités sélectionnées peuvent varier selon les différents modèles.

En pratique, il est recommandé d'effectuer une validation croisée ou d'utiliser un ensemble de validation externe pour obtenir une estimation robuste des performances du modèle avec différents sous-ensembles de fonctionnalités. Cela permet d'éviter le surajustement et de sélectionner les fonctionnalités qui se généralisent bien aux données invisibles.

Pour résumer, les méthodes wrapper, telles que l'élimination récursive des caractéristiques (RFE), la sélection des caractéristiques vers l'avant et la sélection des caractéristiques vers l'arrière, sont des techniques itératives de sélection des caractéristiques qui évaluent différents sous-ensembles de caractéristiques en fonction des performances d'un modèle. Ces méthodes peuvent aider à identifier les caractéristiques les plus pertinentes pour une tâche d'apprentissage automatique spécifique, à améliorer l'interprétabilité du modèle et à réduire la dimensionnalité de l'espace des caractéristiques.

Dans la vidéo suivante, nous explorerons d'autres techniques avancées de sélection de caractéristiques, notamment les algorithmes génétiques et l'analyse en composantes principales (ACP). Ces méthodes offrent des options supplémentaires pour sélectionner des fonctionnalités basées sur différents principes d'optimisation et techniques statistiques. Restez à l'écoute pour ça!

La sélection des fonctionnalités est une étape critique dans le pipeline d'apprentissage automatique, et le choix de la bonne méthode de sélection des fonctionnalités dépend de l'ensemble de données spécifique, de la tâche d'apprentissage automatique et des compromis souhaités entre les performances du modèle, l'interprétabilité et l'efficacité de calcul.

13.3.2 Decision Trees & Random Forest Feature Importance (L13: Feature Selection)
13.3.2 Decision Trees & Random Forest Feature Importance (L13: Feature Selection)
  • 2021.12.22
  • www.youtube.com
This video explains how decision trees training can be regarded as an embedded method for feature selection. Then, we will also look at random forest feature...
 

13.4.1 Élimination récursive des fonctionnalités (L13 : sélection des fonctionnalités)


13.4.1 Élimination récursive des fonctionnalités (L13 : sélection des fonctionnalités)

Dans cette section, nous explorerons le sujet des méthodes Wrapper pour la sélection de fonctionnalités, en nous appuyant sur nos discussions précédentes sur les méthodes de filtrage et les méthodes intégrées. Les méthodes wrapper utilisent explicitement des modèles pour sélectionner des fonctionnalités. Un exemple populaire de méthode wrapper est l'élimination récursive de caractéristiques (RFE), sur laquelle nous nous concentrerons dans cette vidéo. De plus, nous approfondirons également d'autres méthodes de sélection de fonctionnalités à l'aide de techniques d'emballage dans les prochaines vidéos.

Pour fournir une vue d'ensemble, il existe trois méthodes principales de sélection des fonctionnalités : les méthodes de filtrage, les méthodes intégrées et les méthodes d'encapsulation. Aujourd'hui, nous nous concentrons sur les méthodes d'emballage. L'idée centrale derrière RFE peut être résumée en trois étapes.

Tout d'abord, nous ajustons un modèle à l'ensemble de données, en utilisant généralement des modèles linéaires tels que la régression linéaire ou la régression logistique. Cette étape n'a rien d'extraordinaire.

Ensuite, nous examinons le modèle et examinons plus particulièrement les coefficients du modèle, dont nous discuterons plus en détail sous peu. Sur la base des grandeurs de ces coefficients, nous éliminons la caractéristique avec le plus petit coefficient. En considérant la caractéristique avec le plus petit coefficient comme la moins importante, nous pouvons la retirer de toute considération ultérieure. Il convient de noter que la normalisation ou la standardisation des fonctionnalités est importante pour ce processus, garantissant qu'elles sont à une échelle comparable. Nous en verrons des exemples concrets plus tard.

La dernière étape consiste à répéter les étapes un et deux jusqu'à ce que nous atteignions le nombre de fonctionnalités souhaité. Essentiellement, nous ajustons continuellement le modèle et éliminons la caractéristique la moins importante jusqu'à ce que nous ayons l'ensemble de caractéristiques souhaité. Cette méthode simple mais efficace offre une approche directe de la sélection des fonctionnalités.

Un aspect critique de l'élimination des caractéristiques récursives réside dans l'élimination des coefficients ou des poids du modèle. Pour illustrer cela, considérons les modèles de régression linéaire et de régression logistique. La régression linéaire est utilisée pour modéliser des cibles continues, tandis que la régression logistique est un classificateur pour les étiquettes discrètes ou catégorielles. Nous n'entrerons pas dans les détails de ces modèles ici, car ils ont été couverts dans des conférences précédentes.

Dans la régression linéaire et logistique, les modèles ont des coefficients ou des poids. Dans la régression linéaire, ces poids représentent les pentes, tandis que dans la régression logistique, ils sont associés à l'influence de chaque caractéristique sur le résultat de la classification. En examinant l'ampleur de ces poids, nous pouvons déterminer l'importance de chaque caractéristique. L'élimination de la caractéristique avec le plus petit poids ou coefficient le supprime efficacement de la considération. Alternativement, définir le poids sur zéro permet d'obtenir le même résultat, car le calcul de la somme pondérée exclut la contribution de la caractéristique.

Pour mieux comprendre le fonctionnement de l'élimination des fonctionnalités, examinons un exemple utilisant la régression logistique. Nous avons un problème de classification binaire avec deux caractéristiques, x1 et x2, et nous voulons déterminer la probabilité d'appartenance à une classe. En calculant une somme pondérée à l'aide des valeurs des caractéristiques et des poids du modèle, nous obtenons l'entrée nette. En appliquant une fonction sigmoïde logistique à l'entrée nette, nous dérivons la probabilité d'appartenance à la classe. La comparaison de cette probabilité à un seuil, typiquement 0,5, nous permet d'attribuer des étiquettes de classe.

L'essentiel à retenir est que les pondérations de ces modèles reflètent l'importance de chaque caractéristique. Des poids plus grands indiquent une plus grande importance, car ils contribuent plus significativement à l'apport net et affectent par la suite le résultat de la classification. Standardiser ou normaliser les poids garantit qu'ils sont sur la même échelle, ce qui facilite une meilleure interprétation de leur importance.

Passons à autre chose, explorons un exemple d'utilisation de l'élimination récursive de caractéristiques dans scikit-learn avec l'ensemble de données wine. Le code présenté ici illustre le processus. Nous préparons d'abord l'ensemble de données en le divisant en ensembles d'apprentissage et de test, puis en standardisant les fonctionnalités. Ensuite, nous instancions un objet RFE à partir de la classe RFE dans scikit-learn. Nous passons un estimateur de régression logistique à l'objet RFE et spécifions le nombre souhaité d'entités à sélectionner (par exemple, 5 dans ce cas).

Une fois que nous avons instancié l'objet RFE, nous pouvons l'adapter à nos données d'apprentissage à l'aide de la méthode d'ajustement. Cela lancera le processus d'élimination des fonctionnalités récursives. L'objet RFE formera le modèle de régression logistique sur les données d'apprentissage, puis éliminera la caractéristique avec le plus petit coefficient. Il répétera ce processus de manière itérative jusqu'à ce que le nombre de fonctionnalités souhaité soit atteint.

Après avoir ajusté l'objet RFE, nous pouvons accéder aux fonctionnalités sélectionnées à l'aide de l'attribut support_. Cet attribut renvoie un masque booléen indiquant les entités sélectionnées. Nous pouvons également obtenir le classement des caractéristiques en fonction de leur importance à l'aide de l'attribut ranking_. Plus le rang est bas, plus la caractéristique est importante.

Dans l'étape suivante, nous pouvons transformer nos données d'entraînement d'origine et nos données de test pour inclure uniquement les fonctionnalités sélectionnées à l'aide de la méthode de transformation de l'objet RFE. Cela créera de nouveaux ensembles de fonctionnalités avec les fonctionnalités sélectionnées uniquement.

Enfin, nous pouvons entraîner un modèle de régression logistique sur les données d'entraînement transformées et évaluer ses performances sur les données de test transformées. Cela nous permettra d'évaluer l'efficacité du processus de sélection des caractéristiques et de déterminer s'il a amélioré la précision prédictive du modèle.

Il convient de noter que le nombre de fonctionnalités à sélectionner et la taille du pas sont des hyperparamètres qui peuvent être réglés pour trouver la configuration optimale pour un jeu de données et un modèle spécifiques. La recherche de grille ou d'autres techniques d'optimisation d'hyperparamètres peuvent être utilisées pour trouver la meilleure combinaison de ces paramètres.

Dans l'ensemble, l'élimination récursive des fonctionnalités est une méthode wrapper pour la sélection des fonctionnalités qui repose sur la formation d'un modèle et l'élimination itérative des fonctionnalités les moins importantes. Il peut être appliqué à la fois aux problèmes de régression et de classification et peut être utilisé avec différents types de modèles. La sélection des caractéristiques est basée sur les coefficients ou pondérations attribués aux caractéristiques par le modèle. En supprimant de manière itérative les fonctionnalités les moins importantes, RFE vise à améliorer les performances du modèle en se concentrant sur les fonctionnalités les plus informatives.

13.4.1 Recursive Feature Elimination (L13: Feature Selection)
13.4.1 Recursive Feature Elimination (L13: Feature Selection)
  • 2021.12.27
  • www.youtube.com
In this video, we start our discussion of wrapper methods for feature selection. In particular, we cover Recursive Feature Elimination (RFE) and see how we c...