CommencerCommencer gratuitement

Supprimer les prédicteurs à variance quasi nulle

Comme vous l’avez vu dans la vidéo, pour la prochaine série d’exercices, vous utiliserez le jeu de données blood-brain. Il s’agit d’un jeu de données biochimiques dans lequel la tâche consiste à prédire la valeur suivante pour un ensemble de composés :

log((concentration du composé dans le cerveau) /
      (concentration du composé dans le sang))

Cette valeur fournit une mesure quantitative de la capacité d’un composé à traverser la barrière hémato-encéphalique et aide à comprendre les propriétés biologiques de cette barrière.

Un aspect intéressant de ce jeu de données est qu’il contient de nombreuses variables, dont beaucoup présentent des variances extrêmement faibles. Autrement dit, ces variables contiennent très peu d’information, car elles sont majoritairement constituées d’une seule valeur (par exemple zéro).

Heureusement, caret propose une fonction utilitaire appelée nearZeroVar() pour supprimer ces variables et gagner du temps lors de la modélisation.

nearZeroVar() prend des données x, puis examine le rapport entre la valeur la plus fréquente et la deuxième plus fréquente, freqCut, ainsi que le pourcentage de valeurs distinctes par rapport au nombre total d’échantillons, uniqueCut. Par défaut, caret utilise freqCut = 19 et uniqueCut = 10, ce qui est plutôt conservateur. Je préfère être un peu plus agressif et utiliser freqCut = 2 et uniqueCut = 20 lors de l’appel à nearZeroVar().

Cet exercice fait partie du cours

Machine Learning avec caret en R

Afficher le cours

Instructions

bloodbrain_x et bloodbrain_y sont chargés dans votre espace de travail.

  • Identifiez les prédicteurs à variance quasi nulle en exécutant nearZeroVar() sur le jeu de données blood-brain. Stockez le résultat dans un objet appelé remove_cols. Utilisez freqCut = 2 et uniqueCut = 20 dans l’appel à nearZeroVar().
  • Utilisez names() pour créer un vecteur contenant tous les noms de colonnes de bloodbrain_x. Appelez-le all_cols.
  • Créez une nouvelle table de données appelée bloodbrain_x_small en supprimant les variables à variance quasi nulle. Utilisez setdiff() pour isoler les noms de colonnes à conserver (c’est-à-dire celles que vous ne souhaitez pas supprimer).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Identify near zero variance predictors: remove_cols
remove_cols <- nearZeroVar(___, names = TRUE, 
                           freqCut = ___, uniqueCut = ___)

# Get all column names from bloodbrain_x: all_cols


# Remove from data: bloodbrain_x_small
bloodbrain_x_small <- bloodbrain_x[ , setdiff(___, ___)]
Modifier et exécuter le code