Evitare lo sbilanciamento delle classi
Alcuni dati hanno esiti molto sbilanciati, come nei casi di malattie rare. Se fai una suddivisione casuale, potresti ottenere un risultato davvero sfortunato. Immagina che tutte le osservazioni rare finiscano nel test e nessuna nel training set. Rovinerebbe l’intero processo di addestramento!
Per fortuna, la funzione initial_split() offre una soluzione. In questo esercizio osserverai e risolverai i cosiddetti sbilanciamenti di classe.
È già presente il codice per creare un oggetto di split diabetes_split con una suddivisione 75% training e 25% test.
Questo esercizio fa parte del corso
Machine Learning con modelli ad albero in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))