Class-imbalance voorkomen
Sommige data heeft erg scheve uitkomsten – zoals bij een gegevensset over een zeldzame ziekte. Als je willekeurig splitst, kun je pech hebben. Stel dat alle zeldzame observaties in de testset zitten en geen in de trainingsset. Dan gaat je hele trainingsproces de mist in!
Gelukkig biedt de functie initial_split() een oplossing. In deze oefening ga je deze zogeheten class-imbalances opsporen en aanpakken.
Er is al code aanwezig om een splitobject diabetes_split te maken met 75% training en 25% test.
Deze oefening maakt deel uit van de cursus
Machine Learning met boomgebaseerde modellen in R
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))