Eğitimde veriler nasıl bölünür & #038; r'deki test setleri (3 yöntem)


Genellikle makine öğrenimi algoritmalarını veri kümelerine uyarladığımızda, öncelikle veri kümesini bir eğitim seti ve bir test seti olarak ikiye ayırırız.

R’de verileri eğitim ve test kümelerine bölmenin üç yaygın yolu vardır:

Yöntem 1: Base R’yi kullanın

 #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, ]

Yöntem 2: caTools paketini kullanma

 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 )

Yöntem 3: dplyr paketini kullanma

 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 ')

Aşağıdaki örnekler, R’deki yerleşik iris veri kümesiyle her yöntemin pratikte nasıl kullanılacağını gösterir.

Örnek 1: Base R’yi kullanarak verileri eğitim ve test setlerine ayırın

Aşağıdaki kod, satırların %70’ini eğitim seti ve geri kalan %30’unu test seti olarak kullanarak iris veri setini bir eğitim ve test setine bölmek için R tabanının nasıl kullanılacağını gösterir:

 #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

Sonuçtan şunu görebiliriz:

  • Eğitim seti 106 satır ve 5 sütundan oluşan bir veri çerçevesidir.
  • Test 44 satır ve 5 sütundan oluşan bir veri bloğudur.

Orijinal veritabanı toplamda 150 satıra sahip olduğundan eğitim seti orijinal satırların yaklaşık 106/150 = %70,6’sını içermektedir.

İstersek eğitim setinin ilk birkaç satırını da görüntüleyebiliriz:

 #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

Örnek 2: caTools’u kullanarak verileri eğitim ve test setlerine ayırın

Aşağıdaki kod, satırların %70’ini eğitim seti ve geri kalan %30’unu test seti olarak kullanarak iris veri setini bir eğitim ve test setine bölmek için R’deki caTools paketinin nasıl kullanılacağını gösterir:

 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

Sonuçtan şunu görebiliriz:

  • Eğitim seti 105 satır ve 5 sütundan oluşan bir veri çerçevesidir.
  • Test 45 satır ve 5 sütundan oluşan bir veri bloğudur.

Örnek 3: dplyr kullanarak verileri eğitim ve test kümelerine bölme

Aşağıdaki kod, satırların %70’ini eğitim seti ve geri kalan %30’unu test seti olarak kullanarak iris veri setini bir eğitim ve test setine bölmek için R’deki caTools paketinin nasıl kullanılacağını gösterir:

 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

Sonuçtan şunu görebiliriz:

  • Eğitim seti 105 satır ve 6 sütundan oluşan bir veri çerçevesidir.
  • Test 45 satır ve 6 sütundan oluşan bir veri bloğudur.

Bu eğitim ve test setlerinin, oluşturduğumuz ek bir “id” sütunu içerdiğini unutmayın.

Makine öğrenimi algoritmanızı ayarlarken bu sütunu kullanmadığınızdan (veya veri çerçevelerinden tamamen kaldırmadığınızdan) emin olun.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de MSE nasıl hesaplanır
R’de RMSE nasıl hesaplanır
R’de düzeltilmiş R-kare nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir