Grid Search এবং Random Search হল দুইটি জনপ্রিয় পদ্ধতি, যা মেশিন লার্নিং মডেলের Hyperparameter Tuning এর জন্য ব্যবহৃত হয়। এগুলি মডেলটির পারফরম্যান্সের জন্য সর্বোত্তম হাইপারপ্যারামিটার কনফিগারেশন খুঁজে বের করতে সাহায্য করে।
এখানে, আমরা গ্রিড সার্চ এবং র্যান্ডম সার্চ এর সাথে কাজ করার পদ্ধতি এবং তাদের মধ্যে পার্থক্য সম্পর্কে বিস্তারিত আলোচনা করব।
১. Grid Search
Grid Search হল একটি exhaustive পদ্ধতি, যেখানে আপনি নির্দিষ্ট একটি পরিসরে (range) সমস্ত সম্ভাব্য হাইপারপ্যারামিটার কম্বিনেশন পরীক্ষা করেন। এর ফলে মডেলটির জন্য সেরা হাইপারপ্যারামিটার নির্বাচন করা হয়।
কীভাবে Grid Search কাজ করে?
- প্রথমে, আপনি একটি গ্রিড বা তালিকা তৈরি করেন, যা একাধিক হাইপারপ্যারামিটার মান (values) ধারণ করে।
- এরপর Grid Search প্রতিটি হাইপারপ্যারামিটার কম্বিনেশনের জন্য মডেল প্রশিক্ষণ করে এবং তার পরিমাণ অনুযায়ী পারফরম্যান্স মূল্যায়ন করে।
- সবশেষে, সেরা পারফরম্যান্স প্রদানকারী হাইপারপ্যারামিটার কম্বিনেশন নির্বাচন করা হয়।
Grid Search এর সুবিধা:
- সমস্ত কম্বিনেশন পরীক্ষা করার ফলে এটি সেরা ফলাফল দেয়।
- ছোট ডেটাসেট এবং কমপ্লেক্স মডেলগুলির জন্য কার্যকরী।
Grid Search এর অসুবিধা:
- এটি সময়সাপেক্ষ হতে পারে, কারণ এটি সমস্ত কম্বিনেশন পরীক্ষা করে।
- যদি হাইপারপ্যারামিটারগুলোর পরিসর (range) বড় হয়, তবে এটি অতিরিক্ত সময় নেয়।
Python এ Grid Search উদাহরণ:
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
# মডেল তৈরি
model = RandomForestClassifier()
# হাইপারপ্যারামিটার গ্রিড
param_grid = {
'n_estimators': [100, 200, 300],
'max_depth': [10, 20, 30],
'min_samples_split': [2, 5]
}
# Grid Search প্রক্রিয়া
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3)
grid_search.fit(X_train, y_train)
# সেরা প্যারামিটার দেখা
print("Best parameters found: ", grid_search.best_params_)
এই কোডটি RandomForestClassifier এর জন্য হাইপারপ্যারামিটার গ্রিড নির্ধারণ করেছে এবং বিভিন্ন কম্বিনেশন পরীক্ষা করে সেরা প্যারামিটারগুলি খুঁজে বের করবে।
২. Random Search
Random Search হল একটি পদ্ধতি, যেখানে আপনি শুধুমাত্র র্যান্ডমভাবে কিছু হাইপারপ্যারামিটার মান নির্বাচন করেন এবং সেগুলির সাথে মডেল প্রশিক্ষণ করেন। এটি এক্সটেনসিভ পরিসরের মধ্যে থেকে সেরা হাইপারপ্যারামিটার খুঁজে বের করার একটি দক্ষ পদ্ধতি।
কীভাবে Random Search কাজ করে?
- প্রথমে, আপনি হাইপারপ্যারামিটারগুলোর জন্য একটি পরিসর (range) নির্ধারণ করেন।
- পরবর্তীতে, কিছু হাইপারপ্যারামিটার মান র্যান্ডমভাবে নির্বাচন করা হয় এবং মডেল প্রশিক্ষণ করে তার পারফরম্যান্স পর্যালোচনা করা হয়।
- এটি একটি নির্দিষ্ট সংখ্যা র্যান্ডম কম্বিনেশন পরীক্ষা করে, সেরা পারফরম্যান্স প্রদানকারী হাইপারপ্যারামিটার নির্বাচন করে।
Random Search এর সুবিধা:
- Grid Search এর তুলনায় কম সময়ে কাজ করতে পারে।
- বড় পরিসরের হাইপারপ্যারামিটার সেটের জন্য কার্যকরী।
Random Search এর অসুবিধা:
- Grid Search এর তুলনায় কিছু কম্বিনেশন মিস হতে পারে।
- কিছু সময়ে এটি সেরা ফলাফল নাও দিতে পারে, বিশেষ করে যদি সঠিক র্যান্ডম সিলেকশন না হয়।
Python এ Random Search উদাহরণ:
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from scipy.stats import randint
# মডেল তৈরি
model = RandomForestClassifier()
# হাইপারপ্যারামিটার ডিসট্রিবিউশন
param_dist = {
'n_estimators': randint(100, 1000),
'max_depth': randint(1, 20),
'min_samples_split': randint(2, 10)
}
# Random Search প্রক্রিয়া
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_dist, n_iter=10, cv=3)
random_search.fit(X_train, y_train)
# সেরা প্যারামিটার দেখা
print("Best parameters found: ", random_search.best_params_)
এখানে, RandomizedSearchCV ব্যবহার করে বিভিন্ন হাইপারপ্যারামিটার কম্বিনেশন পরীক্ষা করা হচ্ছে এবং সেরা কম্বিনেশন খুঁজে বের করা হচ্ছে।
৩. Grid Search vs Random Search
| বৈশিষ্ট্য | Grid Search | Random Search |
|---|---|---|
| প্রক্রিয়া | সমস্ত সম্ভাব্য কম্বিনেশন পরীক্ষা করা | র্যান্ডমভাবে কিছু কম্বিনেশন নির্বাচন করা |
| কম্বিনেশন সংখ্যা | বেশি (সবই পরীক্ষা করা হয়) | কম (কেবল কিছু কম্বিনেশন পরীক্ষা করা হয়) |
| বক্তব্য সময় | সময়সাপেক্ষ (যদি পরিসর বড় হয়) | তুলনামূলকভাবে দ্রুত |
| ফলাফল | সেরা পারফরম্যান্স সঠিকভাবে দেয় | কখনও কখনও কম পারফরম্যান্স দিতে পারে |
| শ্রেষ্ঠ ক্ষেত্র | ছোট ডেটাসেট, ছোট হাইপারপ্যারামিটার সেট | বড় ডেটাসেট, বড় হাইপারপ্যারামিটার সেট |
সারাংশ
- Grid Search হল একটি exhaustive এবং নির্ভুল পদ্ধতি, তবে এটি সময়সাপেক্ষ হতে পারে।
- Random Search হল একটি দ্রুত পদ্ধতি, যা বড় হাইপারপ্যারামিটার পরিসরের জন্য উপযুক্ত। তবে এটি সবসময় সেরা ফলাফল দেয় না।
- আপনার মডেলের জন্য সর্বোত্তম হাইপারপ্যারামিটার নির্বাচন করতে, আপনি Grid Search বা Random Search ব্যবহার করতে পারেন, এবং নির্ভর করে আপনার ডেটার পরিসর ও মডেলের কমপ্লেক্সিটির ওপর উপযুক্ত পদ্ধতি নির্বাচন করতে হবে।