Undvika klassobalans
En del data innehåller mycket ojämnt fördelade utfall – som en datamängd med en sällsynt sjukdom. Vid slumpmässig uppdelning kan du råka ut för en riktigt olycklig fördelning. Tänk dig att alla sällsynta observationer hamnar i testmängden och inga i träningsdatamängden. Det skulle förstöra hela träningsprocessen!
Tur nog erbjuder funktionen initial_split() en lösning. I den här övningen ska du identifiera och åtgärda dessa så kallade klassobalanser.
Det finns redan kod som skapar ett uppdelningsobjekt diabetes_split med 75 % träningsdata och 25 % testdata.
Den här övningen är en del av kursen
Maskininlärning med trädbaserade modeller i R
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))