CommencezCommencez gratuitement

Retirer les prédicteurs à variance quasi nulle

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

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

Cela donne une mesure quantitative de la capacité du composé à traverser la barrière hémato-encéphalique, utile pour comprendre les propriétés biologiques de cette barrière.

Un aspect intéressant de cet ensemble de données est qu'il contient de nombreuses variables, et plusieurs ont une variance extrêmement faible. Cela signifie qu'elles apportent très peu d'information, car elles se composent surtout d'une seule valeur (p. ex., zéro).

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

nearZeroVar() reçoit 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 lorsque j'appelle nearZeroVar().

Cette activité fait partie du cours

Machine Learning avec caret en R

Voir le cours

Instructions de l’exercice

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

  • Repérez les prédicteurs à variance quasi nulle en exécutant nearZeroVar() sur l'ensemble de données blood-brain. Enregistrez le résultat dans un objet nommé 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. Nommez-le all_cols.
  • Créez un nouveau cadre de données appelé bloodbrain_x_small en retirant les variables à variance quasi nulle. Servez-vous de setdiff() pour isoler les noms de colonnes à garder (c.-à-d. celles que vous ne souhaitez pas retirer).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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