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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *