Generare una suddivisione casuale train/test
Nei prossimi esercizi userai i dati mpg del pacchetto ggplot2. Questi dati descrivono le caratteristiche di diversi marchi e modelli di auto in anni differenti. L’obiettivo è prevedere l’efficienza in città a partire dall’efficienza in autostrada.
In questo esercizio, dividerai mpg in un insieme di training mpg_train (75% dei dati) e un insieme di test mpg_test (25% dei dati). Un modo per farlo è generare una colonna di numeri casuali uniformi tra 0 e 1 usando la funzione runif() (docs).
Se hai un insieme di dati dframe di dimensione \(N\) e vuoi un sottoinsieme casuale di dimensione approssimativa pari al \(100 * X\)% di \(N\) (dove \(X\) è tra 0 e 1), allora:
- Genera un vettore di numeri casuali uniformi:
gp = runif(N). dframe[gp < X,]avrà all’incirca la dimensione desiderata.dframe[gp >= X,]sarà il complemento.
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Usa la funzione
nrow(docs) per ottenere il numero di righe del data framempg. Assegna questo conteggio alla variabileNe stampalo. - Calcola quante righe corrispondono circa al 75% di N. Assegnale alla variabile
targete stampala. - Usa
runif()per generare un vettore diNnumeri casuali uniformi, chiamatogp. - Usa
gpper dividerempginmpg_trainempg_test(conmpg_trainche contiene circa il 75% dei dati). - Usa
nrow()per controllare la dimensione dimpg_trainempg_test. Sono circa della dimensione giusta?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# mpg is available
summary(mpg)
dim(mpg)
# Use nrow to get the number of rows in mpg (N) and print it
(N <- ___)
# Calculate how many rows 75% of N should be and print it
# Hint: use round() to get an integer
(target <- ___)
# Create the vector of N uniform random variables: gp
gp <- ___
# Use gp to create the training set: mpg_train (75% of data) and mpg_test (25% of data)
mpg_train <- ___
mpg_test <- ___
# Use nrow() to examine mpg_train and mpg_test
___
___