प्रशिक्षण में डेटा को कैसे विभाजित करें & #038; आर में परीक्षण सेट (3 तरीके)


अक्सर, जब हम मशीन लर्निंग एल्गोरिदम को डेटासेट में अनुकूलित करते हैं, तो हम पहले डेटासेट को एक प्रशिक्षण सेट और एक परीक्षण सेट में विभाजित करते हैं।

आर में डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करने के तीन सामान्य तरीके हैं:

विधि 1: बेस आर का उपयोग करें

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

विधि 2: कैटूल्स पैकेज का उपयोग करें

 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 )

विधि 3: 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 ')

निम्नलिखित उदाहरण दिखाते हैं कि आर में अंतर्निहित आईरिस डेटासेट के साथ अभ्यास में प्रत्येक विधि का उपयोग कैसे करें।

उदाहरण 1: बेस आर का उपयोग करके डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करें

निम्नलिखित कोड दिखाता है कि आईरिस डेटासेट को प्रशिक्षण और परीक्षण सेट में विभाजित करने के लिए आर बेस का उपयोग कैसे करें, 70% पंक्तियों को प्रशिक्षण सेट के रूप में और शेष 30% को परीक्षण सेट के रूप में उपयोग करें:

 #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

परिणाम से हम देख सकते हैं:

  • प्रशिक्षण सेट 106 पंक्तियों और 5 स्तंभों का एक डेटा फ़्रेम है।
  • परीक्षण 44 पंक्तियों और 5 स्तंभों का एक डेटा ब्लॉक है।

चूँकि मूल डेटाबेस में कुल 150 पंक्तियाँ थीं, प्रशिक्षण सेट में मूल पंक्तियों का लगभग 106/150 = 70.6% शामिल है।

यदि हम चाहें तो हम प्रशिक्षण सेट की पहली कुछ पंक्तियाँ भी प्रदर्शित कर सकते हैं:

 #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

उदाहरण 2: कैटूल्स का उपयोग करके डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करें

निम्नलिखित कोड दिखाता है कि आईरिस डेटासेट को प्रशिक्षण और परीक्षण सेट में विभाजित करने के लिए आर में कैटूल पैकेज का उपयोग कैसे करें, 70% पंक्तियों को प्रशिक्षण सेट के रूप में और शेष 30% को परीक्षण सेट के रूप में उपयोग करें:

 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

परिणाम से हम देख सकते हैं:

  • प्रशिक्षण सेट 105 पंक्तियों और 5 स्तंभों का एक डेटा फ़्रेम है।
  • परीक्षण 45 पंक्तियों और 5 स्तंभों का एक डेटा ब्लॉक है।

उदाहरण 3: dplyr का उपयोग करके डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करें

निम्नलिखित कोड दिखाता है कि आईरिस डेटासेट को प्रशिक्षण और परीक्षण सेट में विभाजित करने के लिए आर में कैटूल पैकेज का उपयोग कैसे करें, 70% पंक्तियों को प्रशिक्षण सेट के रूप में और शेष 30% को परीक्षण सेट के रूप में उपयोग करें:

 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

परिणाम से हम देख सकते हैं:

  • प्रशिक्षण सेट 105 पंक्तियों और 6 स्तंभों का एक डेटा फ़्रेम है।
  • परीक्षण 45 पंक्तियों और 6 स्तंभों का एक डेटा ब्लॉक है।

ध्यान दें कि इन प्रशिक्षण और परीक्षण सेटों में एक अतिरिक्त “आईडी” कॉलम होता है जिसे हमने बनाया है।

सुनिश्चित करें कि आप अपने मशीन लर्निंग एल्गोरिदम को समायोजित करते समय इस कॉलम का उपयोग न करें (या इसे डेटा फ़्रेम से पूरी तरह से हटा दें)।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य ऑपरेशन कैसे करें:

आर में एमएसई की गणना कैसे करें
आर में आरएमएसई की गणना कैसे करें
आर में समायोजित आर-वर्ग की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *