Come utilizzare la funzione createdatapartition() in r


È possibile utilizzare la funzione createDataPartition() del pacchetto caret in R per partizionare un frame di dati in set di training e test per la creazione di modelli.

Questa funzione utilizza la seguente sintassi di base:

createDataPartition(y, volte = 1, p = 0,5, lista = TRUE, …)

Oro:

  • y : vettore dei risultati
  • volte : numero di partizioni da creare
  • p : percentuale di dati da utilizzare nel training set
  • list : se memorizzare o meno i risultati nella lista

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: utilizzo di createDataPartition() in R

Supponiamo di avere un data frame in R con 1.000 righe contenenti informazioni sulle ore studiate dagli studenti e il punteggio corrispondente in un esame finale:

 #make this example reproducible
set. seeds (0)

#create data frame
df <- data. frame (hours=runif(1000, min=0, max=10),
                 score=runif(1000, min=40, max=100))

#view head of data frame
head(df)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
6 2.016819 47.10139

Supponiamo di voler adattare un semplice modello di regressione lineare che utilizzi le ore studiate per prevedere il voto dell’esame finale.

Diciamo che vogliamo addestrare il modello sull’80% delle righe nel data frame e testarlo sul restante 20% delle righe.

Il codice seguente mostra come utilizzare la funzione createDataPartition() del pacchetto caret per dividere il frame di dati in set di training e test:

 library (caret)

#partition data frame into training and testing sets
train_indices <- createDataPartition(df$score, times= 1 , p= .8 , list= FALSE )

#create training set
df_train <- df[train_indices, ]

#create testing set
df_test <- df[-train_indices, ]

#view number of rows in each set
nrow(df_train)

[1] 800

nrow(df_test)

[1] 200

Possiamo vedere che il nostro set di dati di addestramento contiene 800 righe, ovvero l’80% del set di dati originale.

Allo stesso modo, possiamo vedere che il nostro set di dati di test contiene 200 righe, ovvero il 20% del set di dati originale.

Possiamo anche visualizzare le prime righe di ogni set:

 #view head of training set
head(df_train)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
7 8.983897 42.34600

#view head of testing set
head(df_test)

      hours score
6 2.016819 47.10139
12 2.059746 96.67170
18 7.176185 92.61150
23 2.121425 89.17611
24 6.516738 50.47970
25 1.255551 90.58483

Possiamo quindi procedere all’addestramento del modello di regressione utilizzando il set di addestramento e valutarne le prestazioni utilizzando il set di test.

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come eseguire la convalida incrociata K-Fold in R
Come eseguire la regressione lineare multipla in R
Come eseguire la regressione logistica in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *