CommencerCommencer gratuitement

Éviter les déséquilibres de classes

Certaines données présentent des issues très déséquilibrées, comme un jeu de données sur une maladie rare. Avec une répartition aléatoire, vous pourriez tomber sur un découpage très défavorable. Imaginez que toutes les observations rares se retrouvent dans le test et aucune dans l’entraînement : cela compromettrait tout votre apprentissage !

Heureusement, la fonction initial_split() propose une solution. Dans cet exercice, vous allez observer puis corriger ces déséquilibres de classes.

Du code est déjà fourni pour créer un objet de découpage diabetes_split avec 75 % pour l’entraînement et 25 % pour le test.

Cet exercice fait partie du cours

Machine Learning avec des modèles à base d’arbres en R

Afficher le cours

Exercice interactif pratique

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

# Preparation
set.seed(9888)
diabetes_split <- initial_split(diabetes, prop = 0.75)

# Proportion of 'yes' outcomes in the training data
counts_train <- table(training(___)$outcome)
prop_yes_train <- counts_train["___"] / sum(counts_train)

# Proportion of 'yes' outcomes in the test data
counts_test <- table(___)
prop_yes_test <- ___ / sum(___)

paste("Proportion of positive outcomes in training set:", round(prop_yes_train, 2))
paste("Proportion of positive outcomes in test set:", round(prop_yes_test, 2))
Modifier et exécuter le code