Accueil Finances personnelles Comment utiliser Python pour sélectionner les bonnes variables pour la science des données - les nuls

Comment utiliser Python pour sélectionner les bonnes variables pour la science des données - les nuls

Table des matières:

Vidéo: Découvrez les librairies Python pour la Data Science 2024

Vidéo: Découvrez les librairies Python pour la Data Science 2024
Anonim

Sélectionner les bonnes variables dans Python peut améliorer le processus d'apprentissage en science des données en réduisant la quantité de bruit (inutile informations) qui peuvent influencer les estimations de l'apprenant. La sélection de variables peut donc réduire efficacement la variance des prédictions. Pour ne faire intervenir que les variables utiles à l'entraînement et ignorer celles qui sont redondantes, vous pouvez utiliser ces techniques:

  • Approche univariée: Sélectionnez les variables les plus proches du résultat cible.

  • Approche gourmande ou rétrograde: Ne conservez que les variables que vous pouvez retirer du processus d'apprentissage sans endommager ses performances.

Sélection par mesures univariées

Si vous décidez de sélectionner une variable en fonction de son niveau d'association avec sa cible, la classe SelectPercentile fournit une procédure automatique permettant de ne conserver qu'un certain pourcentage des meilleures fonctionnalités associées. Les métriques disponibles pour association sont

  • f_regression: Utilisé uniquement pour les cibles numériques et basé sur les performances de régression linéaire.

  • f_classif: Utilisé uniquement pour les cibles catégorielles et basé sur le test statistique Analysis of Variance (ANOVA).

  • chi2: Effectue la statistique du khi-carré pour les cibles catégorielles, ce qui est moins sensible à la relation non linéaire entre la variable prédictive et sa cible.

Lors de l'évaluation des candidats pour un problème de classification, f_classif et chi2 tendent à fournir le même ensemble de variables supérieures. C'est toujours une bonne pratique de tester les sélections des deux métriques d'association.

Hormis l'application d'une sélection directe des associations de percentiles supérieures, SelectPercentile peut également classer les meilleures variables afin de faciliter le choix du percentile pour exclure une fonctionnalité de la participation au processus d'apprentissage. La classe SelectKBest est analogue dans sa fonctionnalité, mais elle sélectionne les k variables supérieures, où k est un nombre, pas un centile.

de sklearn. feature_selection import SelectPercentile de sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Sélecteur_f. fit (X, y) pour n, s dans zip (boston.nom_fonctions, Selector_f.tags_): affiche 'F-score:% 3. 2ft pour la caractéristique% s '% (s, n) F-score: 88. 15 pour la caractéristique CRIM F-score: 75. 26 pour la caractéristique ZN F-score: 153. 95 pour la caractéristique INDUS F-score: 15. 97 pour Caractéristique CHAS F-score: 112. 59 pour la fonction NOX F-score: 471. 85 pour le dispositif RM F-score: 83.48 pour la fonction F-score AGE: 33. 58 pour la caractéristique DIS F-score: 85. 91 pour la caractéristique RAD F-score: 141. 76 pour la caractéristique TAX F-score: 175. 11 pour la caractéristique PTRATIO F-score: 63. 05 pour la fonction B score F: 601. 62 pour la fonction LSTAT

L'utilisation du niveau de sortie de l'association vous aide à choisir les variables les plus importantes pour votre modèle d'apprentissage automatique, mais vous devez faire attention à ces problèmes possibles: > Certaines variables à forte association pourraient aussi être fortement corrélées, introduisant des informations dupliquées, qui agissent comme du bruit dans le processus d'apprentissage.

  • Certaines variables peuvent être pénalisées, notamment les variables binaires (variables indiquant un statut ou une caractéristique en utilisant la valeur 1 quand elle est présente, 0 quand elle ne l'est pas). Par exemple, notez que la sortie affiche la variable binaire CHAS comme étant la moins associée à la variable cible (mais vous savez d'après les exemples précédents qu'elle est influente à partir de la phase de validation croisée).

  • Le processus de sélection univariée peut vous donner un réel avantage lorsque vous avez un grand nombre de variables à sélectionner et que toutes les autres méthodes deviennent infaisables. La meilleure procédure consiste à réduire la valeur de SelectPercentile par au moins la moitié des variables disponibles, à réduire le nombre de variables à un nombre gérable et, par conséquent, à utiliser une méthode plus sophistiquée et plus précise, telle qu'une recherche gourmande.

Utiliser une recherche gourmande

Lorsque vous utilisez une sélection univariée, vous devez décider vous-même du nombre de variables à conserver: La sélection gourmande réduit automatiquement le nombre de caractéristiques impliquées dans un modèle d'apprentissage en fonction de leur contribution effective au la performance mesurée par la mesure d'erreur.

La classe RFECV, qui adapte les données, peut vous fournir des informations sur le nombre de fonctionnalités utiles, vous les signaler et transformer automatiquement les données X, par la méthode transform, en un ensemble de variables réduit, comme indiqué dans l'exemple suivant:

de sklearn. feature_selection import sélecteur RFECV = RFECV (estimateur = régression, cv = 10, scoring = "mean_squared_error") sélecteur. fit (X, y) print ("Nombre optimal de fonctionnalités:% d"% selector.n_features_) Nombre optimal de fonctionnalités: 6

Il est possible d'obtenir un index du jeu de variables optimal en appelant l'attribut support_ de RFECV classe après vous l'adapter.

imprimer boston. feature_names [sélecteur. support_] ['CHAS "NOX" RM "DIS" PTRATIO "LSTAT']

Notez que CHAS est maintenant inclus parmi les fonctionnalités les plus prédictives, ce qui contraste avec le résultat de la recherche univariée La méthode RFECV peut détecter si une variable est important, peu importe qu'il soit binaire, catégorique ou numérique, car il évalue directement le rôle joué par l'entité dans la prédiction.

La méthode RFECV est certainement plus efficace, comparée à l'approche -univariée, parce qu'elle prend en compte les caractéristiques hautement corrélées et est optimisé pour optimiser la mesure d'évaluation (qui n'est généralement pas un Chi-carré ou un F-score) étant un processus gourmand, il est exigeant en termes de calcul et peut seulement approcher le meilleur ensemble de prédicteurs.

Comme RFECV apprend le meilleur ensemble de variables à partir des données, la sélection peut être trop rapide, ce qui arrive avec tous les autres algorithmes d'apprentissage automatique. Essayer RFECV sur différents échantillons des données d'entraînement peut confirmer les meilleures variables à utiliser.

Comment utiliser Python pour sélectionner les bonnes variables pour la science des données - les nuls

Le choix des éditeurs

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Est un pointeur sur le tableau lui-même. Le tableau est une séquence de variables stockée en mémoire. Le nom du tableau pointe vers le premier élément. C'est une question intéressante sur les pointeurs: Pouvez-vous avoir un en-tête de fonction, comme la ligne suivante, et juste utiliser sizeof pour déterminer comment ...

Boost Bibliothèques et C ++ - mannequins

Boost Bibliothèques et C ++ - mannequins

De nombreux développeurs utilisent les bibliothèques Boost car elles fournissent un code de haute qualité une partie de Boost est en train d'être normalisée pour être incluse dans la bibliothèque standard. L'une des meilleures choses à propos de Boost est que la bibliothèque elle-même est gratuite. Le site Web de Boost tient à faire savoir aux développeurs qu'ils ne ...

Casser les programmes Mis à part C ++ - les mannequins

Casser les programmes Mis à part C ++ - les mannequins

Le programmeur peut casser un seul programme en fichiers sources distincts généralement appelés modules. Ces modules sont compilés séparément dans le code machine par le compilateur C ++, puis combinés au cours du processus de génération pour générer un seul programme. Ces modules sont également connus par les geeks du compilateur en tant qu'unités de traduction C ++. Le processus de combinaison ...

Le choix des éditeurs

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

L'information l'affichage ne sert pas uniquement à vérifier les paramètres de prise de vue actuels; Cela vous donne également un accès rapide à certains des paramètres les plus critiques. La touche de cette fonction est le bouton Information Edit, situé à l'arrière de l'appareil photo, à droite du viseur. Voici comment cela fonctionne: Afficher les informations ...

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

En mode d'affichage hautes lumières sur votre Nikon D7100 pense que l'appareil photo peut être surexposé clignoter dans le moniteur de l'appareil photo. L'un des problèmes de photo les plus difficiles à corriger dans un programme de retouche photo est connu sous le nom de surbrillance dans certains cercles et de surbrillance dans d'autres. Les deux termes signifient que les zones les plus claires de ...

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Présentes en bas à gauche Au coin du Nikon D3300, le bouton i active une bande de contrôle qui vous donne un accès rapide à certains paramètres de prise de vue critiques. Voici comment utiliser la bande de contrôle pour la photographie dans le viseur: Affichez l'écran d'informations. Vous pouvez le faire en appuyant sur le bouton Info. Appuyez sur le bouton i. Le haut ...

Le choix des éditeurs

Comment imprimer vos diapositives et notes Keynote - Les tétines

Comment imprimer vos diapositives et notes Keynote - Les tétines

Lorsque vous créez une présentation dans Snow Leopard Application Keynote, vous ne pouvez pas toujours vouloir imprimer des documents. Cependant, si vous présentez un long diaporama avec beaucoup d'informations que vous aimeriez que votre public se souvienne, rien ne vaut les documents qui incluent des images réduites de vos diapositives (et, facultativement, les notes de votre présentateur). Vous pouvez ...

Comment réorganiser ou supprimer les signets - les mannequins

Comment réorganiser ou supprimer les signets - les mannequins

Safari enregistre vos signets et vos dossiers de signets dans l'ordre dans lequel vous les créez, en les ajoutant au bas d'une liste toujours croissante. Si vous continuez à ajouter des marque-pages au menu Signets sans les placer dans des dossiers, vous pouvez constater que vous avez un nombre de signets gazillion indiqué bon gré mal gré et que vous ne vous en souvenez plus ...

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Avec un compte MobileMe actif, iDisk est disponible et vous fournit un espace de stockage supplémentaire. Pour connaître l'espace de stockage utilisé et pour configurer l'accès à votre dossier Public, ouvrez les Préférences Système, cliquez sur l'icône MobileMe, puis sur le bouton iDisk pour afficher les paramètres. Vos paramètres iDisk sont disponibles dans les Préférences Système. Le ...