Cara membagi data dalam pelatihan & #038; set pengujian di r (3 metode)
Seringkali, saat kita mengadaptasi algoritme pembelajaran mesin ke kumpulan data, pertama-tama kita membagi kumpulan data tersebut menjadi kumpulan pelatihan dan kumpulan pengujian.
Ada tiga cara umum untuk membagi data menjadi set pelatihan dan pengujian di R:
Metode 1: Gunakan Basis R
#make this example reproducible set. seeds (1) #use 70% of dataset as training set and 30% as test set sample <- sample(c( TRUE , FALSE ), nrow(df), replace= TRUE , prob=c( 0.7 , 0.3 )) train <- df[sample, ] test <- df[!sample, ]
Metode 2: Gunakan paket caTools
library (caTools) #make this example reproducible set. seeds (1) #use 70% of dataset as training set and 30% as test set sample <- sample. split (df$any_column_name, SplitRatio = 0.7 ) train <- subset(df, sample == TRUE ) test <- subset(df, sample == FALSE )
Metode 3: Gunakan paket dplyr
library (dplyr) #make this example reproducible set. seeds (1) #create ID column df$id <- 1:nrow(df) #use 70% of dataset as training set and 30% as test set train <- df %>% dplyr::sample_frac( 0.70 ) test <- dplyr::anti_join(df, train, by = ' id ')
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan himpunan data iris bawaan di R.
Contoh 1: Membagi data menjadi set pelatihan dan pengujian menggunakan Basis R
Kode berikut menunjukkan cara menggunakan basis R untuk membagi kumpulan data iris menjadi kumpulan pelatihan dan pengujian, menggunakan 70% baris sebagai kumpulan pelatihan dan 30% sisanya sebagai kumpulan pengujian:
#load iris dataset data(iris) #make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample(c( TRUE , FALSE ), nrow(iris), replace= TRUE , prob=c( 0.7 , 0.3 )) train <- iris[sample, ] test <- iris[!sample, ] #view dimensions of training set sun(train) [1] 106 5 #view dimensions of test set dim(test) [1] 44 5
Dari hasilnya kita dapat melihat:
- Set pelatihan adalah bingkai data 106 baris dan 5 kolom.
- Pengujiannya berupa blok data yang terdiri dari 44 baris dan 5 kolom.
Karena database asli memiliki total 150 baris, set pelatihan berisi sekitar 106/150 = 70,6% baris asli.
Kita juga dapat menampilkan beberapa baris pertama dari set pelatihan jika kita ingin:
#view first few rows of training set
head(train)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
Contoh 2: Pisahkan data menjadi set pelatihan dan pengujian menggunakan caTools
Kode berikut menunjukkan cara menggunakan paket caTools di R untuk membagi kumpulan data iris menjadi kumpulan pelatihan dan pengujian, menggunakan 70% baris sebagai kumpulan pelatihan dan 30% sisanya sebagai kumpulan pengujian:
library (caTools) #load iris dataset data(iris) #make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample. split (iris$Species, SplitRatio = 0.7 ) train <- subset(iris, sample == TRUE ) test <- subset(iris, sample == FALSE ) #view dimensions of training set sun(train) [1] 105 5 #view dimensions of test set dim(test) [1] 45 5
Dari hasilnya kita dapat melihat:
- Set pelatihan adalah bingkai data 105 baris dan 5 kolom.
- Pengujiannya berupa blok data sebanyak 45 baris dan 5 kolom.
Contoh 3: Pisahkan data menjadi set pelatihan dan pengujian menggunakan dplyr
Kode berikut menunjukkan cara menggunakan paket caTools di R untuk membagi kumpulan data iris menjadi kumpulan pelatihan dan pengujian, menggunakan 70% baris sebagai kumpulan pelatihan dan 30% sisanya sebagai kumpulan pengujian:
library (dplyr) #load iris dataset data(iris) #make this example reproducible set. seeds (1) #create variable ID iris$id <- 1:nrow(iris) #Use 70% of dataset as training set and remaining 30% as testing set train <- iris %>% dplyr::sample_frac( 0.7 ) test <- dplyr::anti_join(iris, train, by = ' id ') #view dimensions of training set sun(train) [1] 105 6 #view dimensions of test set dim(test) [1] 45 6
Dari hasilnya kita dapat melihat:
- Set pelatihan adalah bingkai data 105 baris dan 6 kolom.
- Pengujiannya berupa blok data sebanyak 45 baris dan 6 kolom.
Perhatikan bahwa set pelatihan dan pengujian ini berisi kolom “id” tambahan yang kami buat.
Pastikan Anda tidak menggunakan kolom ini (atau menghapusnya sepenuhnya dari bingkai data) saat menyesuaikan algoritme pembelajaran mesin Anda.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:
Cara menghitung UMK di R
Cara menghitung RMSE di R
Cara menghitung R-kuadrat yang disesuaikan di R