Computer Programming Train এবং Test Dataset তৈরি করা গাইড ও নোট

292

Train এবং Test Dataset তৈরি করা in R

মেশিন লার্নিং মডেল তৈরির জন্য ডেটাকে দুটি অংশে ভাগ করা খুবই গুরুত্বপূর্ণ: একটি train dataset এবং একটি test datasetTrain dataset ব্যবহৃত হয় মডেল ট্রেনিংয়ের জন্য, এবং test dataset ব্যবহৃত হয় মডেলটির কার্যকারিতা (performance) পর্যালোচনা করতে।

R-এ ট্রেন এবং টেস্ট ডেটাসেট তৈরি করার জন্য বেশ কয়েকটি পদ্ধতি রয়েছে। নিচে আমরা দুটি জনপ্রিয় পদ্ধতি আলোচনা করব।


১. Using sample() Function for Train-Test Split

sample() ফাংশন ব্যবহার করে আপনি একটি ডেটাসেটের কিছু অংশকে র্যান্ডমভাবে নির্বাচিত করতে পারেন, এবং সেই অংশটি train dataset হিসেবে ব্যবহার করতে পারেন, বাকি অংশটি test dataset হিসেবে।

Step-by-Step Example:

  1. ডেটা তৈরি করা:
# একটি ডেটাসেট তৈরি করা (উদাহরণস্বরূপ Iris dataset)
data(iris)
head(iris)
  1. ডেটা র্যান্ডমলি ট্রেন এবং টেস্ট সেটে ভাগ করা:
# Train-Test Split (70% train, 30% test)
set.seed(123)  # র্যান্ডম সিড সেট করা, যাতে পুনরাবৃত্তিতে একই ফলাফল পাওয়া যায়
sample_index <- sample(1:nrow(iris), 0.7 * nrow(iris))  # 70% ইনডেক্স নির্বাচন

# Train dataset
train_data <- iris[sample_index, ]

# Test dataset
test_data <- iris[-sample_index, ]

# ট্রেন এবং টেস্ট ডেটা চেক করা
print(head(train_data))
print(head(test_data))

এখানে:

  • sample(1:nrow(iris), 0.7 * nrow(iris)): iris ডেটাসেটের ৭০% র্যান্ডমলি নির্বাচন করা হয়।
  • train_data: ৭০% ডেটা থাকবে।
  • test_data: বাকি ৩০% ডেটা থাকবে।

Benefits of This Method:

  • সহজ এবং দ্রুত ট্রেন এবং টেস্ট ডেটা ভাগ করার উপায়।
  • র্যান্ডম স্যাম্পলিং ব্যবহার করা হয়েছে, তাই ডেটা সেটের মধ্যে বৈচিত্র্য থাকে।

২. Using caret Package for Train-Test Split

caret প্যাকেজটি মেশিন লার্নিংয়ের জন্য অনেক কার্যকরী ফাংশন সরবরাহ করে। এর মাধ্যমে আপনি সহজেই ট্রেন এবং টেস্ট ডেটাসেট তৈরি করতে পারেন।

Step-by-Step Example Using caret:

  1. caret প্যাকেজ ইনস্টল এবং লোড করা:
# caret প্যাকেজ ইনস্টল করা (যদি আগে ইনস্টল না করে থাকেন)
install.packages("caret")

# caret প্যাকেজ লোড করা
library(caret)
  1. ডেটা তৈরি এবং Train-Test Split করা:
# Iris dataset ব্যবহার করা
data(iris)

# Create a partition: 70% train, 30% test
set.seed(123)  # র্যান্ডম সিড সেট করা
train_index <- createDataPartition(iris$Species, p = 0.7, list = FALSE)

# Train dataset
train_data <- iris[train_index, ]

# Test dataset
test_data <- iris[-train_index, ]

# ট্রেন এবং টেস্ট ডেটা চেক করা
print(head(train_data))
print(head(test_data))

এখানে:

  • createDataPartition() ফাংশনটি ব্যবহার করে একটি পার্টিশন তৈরি করা হয়েছে যা ৭০% ট্রেন ডেটা এবং ৩০% টেস্ট ডেটা নির্ধারণ করে।
  • iris$Species: এখানে Species কলামটি টার্গেট ভেরিয়েবল হিসেবে নেওয়া হয়েছে এবং তার ভিত্তিতে পার্টিশন করা হয়েছে।

Benefits of This Method:

  • createDataPartition() ফাংশনটি সাধারণত stratified sampling (প্রতিটি শ্রেণীর প্রোপর্শন ঠিক রেখে) ব্যবহার করে, যা ভারসাম্যপূর্ণ ডেটা সেট তৈরি করতে সাহায্য করে।
  • বিশেষ করে class imbalance (যেমন, অনেক বেশি একটি শ্রেণী, কম অন্য শ্রেণী) হলে এটি খুব কার্যকরী।

৩. Using rsample Package for Train-Test Split

rsample প্যাকেজটি টাইম সিরিজ ডেটা এবং অন্যান্য প্রকারের ডেটার জন্য train-test split করার একটি সহজ উপায় প্রদান করে।

Step-by-Step Example Using rsample:

  1. rsample প্যাকেজ ইনস্টল এবং লোড করা:
# rsample প্যাকেজ ইনস্টল করা (যদি আগে ইনস্টল না করে থাকেন)
install.packages("rsample")

# rsample প্যাকেজ লোড করা
library(rsample)
  1. Train-Test Split Using initial_split():
# Iris dataset ব্যবহার করা
data(iris)

# Train-test split (70% train, 30% test)
set.seed(123)  # র্যান্ডম সিড সেট করা
split <- initial_split(iris, prop = 0.7)  # prop = 0.7 মানে ৭০% ট্রেন ডেটা

# Train dataset
train_data <- training(split)

# Test dataset
test_data <- testing(split)

# ট্রেন এবং টেস্ট ডেটা চেক করা
print(head(train_data))
print(head(test_data))

এখানে:

  • initial_split() ফাংশনটি ডেটাকে ৭০% ট্রেন এবং ৩০% টেস্ট সেটে ভাগ করে।
  • training() এবং testing() ফাংশন ব্যবহার করে ট্রেন এবং টেস্ট ডেটা আলাদা করা হয়।

Benefits of This Method:

  • rsample প্যাকেজে stratified sampling ব্যবহার করা হয়, বিশেষ করে যখন ডেটা সাইজ ছোট হয় বা শ্রেণীভিত্তিক বিভাজন প্রয়োজন হয়।
  • টাইম সিরিজ ডেটার জন্যও কার্যকরী।

Summarizing the Methods

MethodFunction/PackageProsCons
Using sample()sample()Simple, fastDoes not guarantee stratified sampling
Using caret packagecreateDataPartition()Stratified sampling, handles class imbalanceRequires caret package, more complex
Using rsample packageinitial_split(), training(), testing()Stratified sampling, handles different data typesRequires rsample package

Conclusion

  • Train and Test Split হল মেশিন লার্নিং মডেল ট্রেনিং এবং ভ্যালিডেশনের জন্য একটি গুরুত্বপূর্ণ ধাপ।
  • R-এ আপনি sample(), caret, অথবা rsample প্যাকেজের মাধ্যমে সহজেই ডেটাকে ট্রেন এবং টেস্ট সেটে ভাগ করতে পারেন।
  • Stratified Sampling গুরুত্বপূর্ণ যদি ডেটায় ক্যাটাগোরির ভারসাম্য না থাকে (class imbalance)।
Content added By
Promotion

Are you sure to start over?

Loading...