Grid Search এবং Random Search ব্যবহার

Model Tuning এবং Hyperparameter Optimization - পাইথন দিয়ে মেশিন লার্নিং (Machine Learning with Python) - Machine Learning

252

Grid Search এবং Random Search হল দুটি জনপ্রিয় কৌশল যা hyperparameter tuning বা মডেল টিউনিং এর জন্য ব্যবহৃত হয়। এই কৌশলগুলির সাহায্যে আমরা মেশিন লার্নিং মডেলের হাইপারপ্যারামিটারগুলো সঠিকভাবে নির্বাচন করতে পারি, যাতে মডেলটি সর্বোচ্চ কার্যকারিতা প্রদান করে।

১. Grid Search

Grid Search হল একটি exhaustive (সম্পূর্ণ) পদ্ধতি, যেখানে একটি নির্দিষ্ট হাইপারপ্যারামিটার এর মানের সম্ভাব্য সব সংমিশ্রণ পরীক্ষা করা হয়। Grid Search মডেলটির প্রশিক্ষণ ও মূল্যায়ন করে এবং সবচেয়ে ভালো ফলাফল প্রদানকারী হাইপারপ্যারামিটার সেট নির্বাচন করে।

Grid Search এর প্রক্রিয়া:

  1. প্রথমে, বিভিন্ন হাইপারপ্যারামিটারগুলির সম্ভাব্য মানের একটি grid তৈরি করা হয়।
  2. তারপর, এই গ্রিডের সব মানের সংমিশ্রণ পরীক্ষা করা হয়।
  3. সর্বোচ্চ cross-validation score পাওয়া কম্বিনেশনটি নির্বাচন করা হয়।

Grid Search উদাহরণ:

ধরা যাক, আমরা একটি Support Vector Machine (SVM) মডেল নিয়ে কাজ করছি এবং তার হাইপারপ্যারামিটারগুলো টিউন করতে চাই।

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# ডেটাসেট লোড করা
iris = load_iris()
X = iris.data
y = iris.target

# ট্রেনিং এবং টেস্টিং সেটে ডেটা ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# SVM মডেল তৈরি করা
svc = SVC()

# GridSearchCV সেটআপ করা
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
grid_search = GridSearchCV(svc, param_grid, cv=5)

# Grid Search চালানো
grid_search.fit(X_train, y_train)

# সেরা প্যারামিটার এবং স্কোর প্রদর্শন করা
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", grid_search.best_score_)

এখানে, আমরা C এবং kernel এর জন্য বিভিন্ন মান পরীক্ষা করছি। Grid Search আমাদের সেরা হাইপারপ্যারামিটার সেট ও সবচেয়ে ভালো স্কোর প্রদান করবে।


২. Random Search

Random Search হল একটি স্ট্যাটিস্টিক্যাল পদ্ধতি, যেখানে নির্দিষ্ট পরিসরের মধ্যে থেকে randomly হাইপারপ্যারামিটারগুলো নির্বাচন করা হয় এবং তাদের উপর মডেলটি প্রশিক্ষিত করা হয়। Grid Search এর তুলনায় Random Search অনেক দ্রুত কাজ করে, কারণ এটি সম্ভাব্য সব সংমিশ্রণ পরীক্ষা না করে, শুধুমাত্র এলোমেলো কিছু সম্ভাব্য মান পরীক্ষা করে।

Random Search এর প্রক্রিয়া:

  1. প্রতিটি হাইপারপ্যারামিটার জন্য একটি নির্দিষ্ট পরিসর বা ডিস্ট্রিবিউশন নির্ধারণ করা হয়।
  2. এলোমেলোভাবে কিছু হাইপারপ্যারামিটার নির্বাচন করা হয় এবং মডেলটি প্রশিক্ষণ করা হয়।
  3. সর্বোচ্চ স্কোর পাওয়া কম্বিনেশনটি নির্বাচন করা হয়।

Random Search উদাহরণ:

from sklearn.model_selection import RandomizedSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from scipy.stats import uniform

# ডেটাসেট লোড করা
iris = load_iris()
X = iris.data
y = iris.target

# ট্রেনিং এবং টেস্টিং সেটে ডেটা ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# SVM মডেল তৈরি করা
svc = SVC()

# RandomizedSearchCV সেটআপ করা
param_dist = {'C': uniform(0.1, 10), 'kernel': ['linear', 'rbf']}
random_search = RandomizedSearchCV(svc, param_distributions=param_dist, n_iter=10, cv=5)

# Random Search চালানো
random_search.fit(X_train, y_train)

# সেরা প্যারামিটার এবং স্কোর প্রদর্শন করা
print("Best Parameters:", random_search.best_params_)
print("Best Score:", random_search.best_score_)

এখানে, আমরা C এর জন্য একটি ইউনিফর্ম ডিস্ট্রিবিউশন ব্যবহার করেছি এবং kernel এর জন্য দুটি ভিন্ন মান নির্বাচন করেছি। Random Search এলোমেলোভাবে ১০টি সংমিশ্রণ পরীক্ষা করবে।


Grid Search vs Random Search

কিছু পার্থক্যGrid SearchRandom Search
প্রক্রিয়াসম্পূর্ণ পরীক্ষা (exhaustive search)এলোমেলো পরীক্ষা (random sampling)
অ্যাপ্লিকেশনছোট হাইপারপ্যারামিটার গ্রিডে ভালো কাজ করেবড় পরিসরে দ্রুত ফলাফল দেয়
দ্রুততাধীর (বড় গ্রিডে অনেক পরীক্ষা করতে হয়)দ্রুত (একটি নির্দিষ্ট সংখ্যক এলোমেলো পরীক্ষা)
ফলস্বরূপসাধারণত সঠিক এবং সবচেয়ে ভালো প্যারামিটারসঠিক না হলেও সাধারণত দ্রুত ফলাফল প্রদান করে

Grid Search এবং Random Search এর ব্যবহার

  • Grid Search ভাল কাজ করে যখন হাইপারপ্যারামিটার সংখ্যা ছোট এবং আপনি চান সঠিকভাবে সেরা হাইপারপ্যারামিটার নির্বাচন করতে।
  • Random Search ভাল কাজ করে যখন আপনার হাইপারপ্যারামিটার সংখ্যা অনেক এবং আপনি দ্রুত একটি উপযুক্ত হাইপারপ্যারামিটার সেট খুঁজতে চান।

এছাড়াও, Grid Search যদি খুব ধীরগতিতে চলে, তবে Random Search ব্যবহার করে দ্রুত কিছু ভালো হাইপারপ্যারামিটার পেতে পারেন, বিশেষ করে যখন ডেটাসেট বড় এবং মডেল প্রশিক্ষণ অনেক সময় নেয়।

Content added By
Promotion

Are you sure to start over?

Loading...