Hoe de createdatapartition()-functie in r te gebruiken
U kunt de functie createDataPartition() van het caret- pakket in R gebruiken om een dataframe te verdelen in trainings- en testsets voor het bouwen van modellen.
Deze functie gebruikt de volgende basissyntaxis:
createDataPartition(y, tijden = 1, p = 0,5, lijst = TRUE, …)
Goud:
- y : vector van resultaten
- times : aantal partities dat gemaakt moet worden
- p : percentage gegevens dat in de trainingsset moet worden gebruikt
- lijst : of de resultaten in de lijst moeten worden opgeslagen of niet
Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.
Voorbeeld: gebruik createDataPartition() in R
Stel dat we een dataframe in R hebben met 1000 rijen met informatie over de uren die studenten hebben gestudeerd en de bijbehorende score op een eindexamen:
#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
Stel dat we een eenvoudig lineair regressiemodel willen toepassen dat bestudeerde uren gebruikt om het eindexamencijfer te voorspellen.
Laten we zeggen dat we het model willen trainen op 80% van de rijen in het dataframe en het willen testen op de resterende 20% van de rijen.
De volgende code laat zien hoe u de functie createDataPartition() van het dakje- pakket gebruikt om het dataframe te verdelen in trainings- en testsets:
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
We kunnen zien dat onze trainingsdataset 800 rijen bevat, wat 80% is van de oorspronkelijke dataset.
Op dezelfde manier kunnen we zien dat onze testdataset 200 rijen bevat, wat 20% is van de oorspronkelijke dataset.
We kunnen ook de eerste regels van elke set visualiseren:
#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
Vervolgens kunnen we doorgaan met het trainen van het regressiemodel met behulp van de trainingsset en de prestaties ervan evalueren met behulp van de testset.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:
Hoe K-Fold kruisvalidatie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe logistische regressie uit te voeren in R