Aan de slagGa gratis aan de slag

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

Cursus bekijken

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))
Code bewerken en uitvoeren