Unikanie nierównowagi klas
Niektóre dane zawierają bardzo nierównomiernie rozłożone wyniki – jak na przykład zbiór danych dotyczący rzadkiej choroby. Przy losowym podziale możesz trafić na bardzo niekorzystny układ. Wyobraź sobie, że wszystkie rzadkie obserwacje trafiają do zbioru testowego, a żadna do treningowego. To mogłoby zniweczyć cały proces uczenia!
Na szczęście funkcja initial_split() oferuje rozwiązanie tego problemu. W tym ćwiczeniu zaobserwujesz i rozwiążesz tzw. nierównowagę klas.
Kod tworzący obiekt podziału diabetes_split w proporcji 75% zbiór treningowy i 25% zbiór testowy jest już gotowy.
To ćwiczenie jest częścią kursu
Uczenie maszynowe z modelami drzewiastymi w R
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))