Grid Search এবং Random Search দুটি গুরুত্বপূর্ণ হাইপারপ্যারামিটার টিউনিং কৌশল, যা মেশিন লার্নিং মডেলগুলির কর্মক্ষমতা বৃদ্ধি করতে সাহায্য করে। এগুলি মডেলের হাইপারপ্যারামিটারগুলির সঠিক মান খুঁজে পেতে ব্যবহৃত হয়, যাতে মডেলটি সর্বোত্তম পারফর্ম্যান্স প্রদান করতে পারে।
Grid Search (গ্রিড সার্চ)
Grid Search হল একটি পদ্ধতি যা একাধিক হাইপারপ্যারামিটার এর সম্ভাব্য মানের সমস্ত সংমিশ্রণ পরীক্ষা করে। এটি সব ধরনের প্যারামিটার সেটের জন্য একটি exhaustive (সম্পূর্ণ) অনুসন্ধান করে এবং সেরা পারফর্ম্যান্স প্রদানকারী সেটটি নির্বাচন করে।
Grid Search এর বৈশিষ্ট্য:
- Exhaustive Search: Grid Search প্রতিটি হাইপারপ্যারামিটার এর সমস্ত সম্ভাব্য মানের জন্য মডেল ট্রেনিং এবং মূল্যায়ন করে।
- কমপ্লেক্সিটি: এটি একটি ব্যয়বহুল প্রক্রিয়া হতে পারে, বিশেষত যখন আপনার হাইপারপ্যারামিটার এর অনেক সম্ভাব্য মান থাকে, কারণ সম্ভাব্য সব সংমিশ্রণ পরীক্ষা করতে হয়।
- উচ্চ পারফর্মেন্স: এটি সাধারণত সেরা পারফর্ম্যান্সের জন্য অধিক নির্ভুল হয়, কারণ এটি সব সম্ভাব্য মান পরীক্ষা করে।
Grid Search উদাহরণ (Python / Scikit-learn):
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
# ডেটাসেট লোড করা
data = load_iris()
X, y = data.data, data.target
# মডেল তৈরি করা
model = RandomForestClassifier()
# হাইপারপ্যারামিটার গ্রিড সেট করা
param_grid = {
'n_estimators': [10, 50, 100],
'max_depth': [5, 10, 15],
'min_samples_split': [2, 5, 10]
}
# GridSearchCV ব্যবহার করা
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
# সেরা প্যারামিটার সেট প্রদর্শন করা
print("Best parameters found: ", grid_search.best_params_)
Grid Search এর সুবিধা:
- অত্যন্ত নির্ভুল ফলাফল: এটি সর্বোত্তম হাইপারপ্যারামিটার খুঁজে বের করার জন্য সবচেয়ে কার্যকরী কৌশল।
- সম্পূর্ণ অনুসন্ধান: সমস্ত হাইপারপ্যারামিটার সেট পরীক্ষা করা হয়।
Grid Search এর সীমাবদ্ধতা:
- কম্পিউটেশনাল খরচ: যখন অনেক হাইপারপ্যারামিটার বা তাদের অনেক ভিন্ন মান থাকে, তখন এটি অত্যন্ত ধীর এবং ব্যয়বহুল হতে পারে।
- স্কেলেবিলিটি সমস্যা: ডেটার আকার বড় হলে বা হাইপারপ্যারামিটার সংখ্যা বেশি হলে গ্রিড সার্চ খুব ধীর হতে পারে।
Random Search (র্যান্ডম সার্চ)
Random Search হল একটি পদ্ধতি যা একটি হাইপারপ্যারামিটার স্পেস থেকে এলোমেলোভাবে কিছু প্যারামিটার কম্বিনেশন নির্বাচন করে এবং সেগুলোর উপর মডেল ট্রেনিং এবং মূল্যায়ন করে। এটি সমস্ত প্যারামিটার সংমিশ্রণ পরীক্ষা না করলেও, এটি অনেক দ্রুত এবং বড় স্কেলে কার্যকর হতে পারে।
Random Search এর বৈশিষ্ট্য:
- Random Sampling: Random Search শুধুমাত্র একটি নির্দিষ্ট সংখ্যা হাইপারপ্যারামিটার কম্বিনেশন নির্বাচন করে এবং সেগুলি পরীক্ষা করে। এটি exhaustively সব প্যারামিটার পরীক্ষা করে না।
- দ্রুততর: Grid Search এর তুলনায় এটি দ্রুত হতে পারে কারণ এটি কম সংখ্যক কম্বিনেশন পরীক্ষা করে।
- ভাল স্কেলেবিলিটি: যখন অনেক হাইপারপ্যারামিটার থাকে, তখন Random Search অনেক দ্রুত ফলাফল দিতে পারে।
Random Search উদাহরণ (Python / Scikit-learn):
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from scipy.stats import randint
# ডেটাসেট লোড করা
data = load_iris()
X, y = data.data, data.target
# মডেল তৈরি করা
model = RandomForestClassifier()
# হাইপারপ্যারামিটার ডিস্ট্রিবিউশন সেট করা
param_dist = {
'n_estimators': randint(10, 200),
'max_depth': randint(5, 20),
'min_samples_split': randint(2, 20)
}
# RandomizedSearchCV ব্যবহার করা
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_dist, n_iter=100, cv=5)
random_search.fit(X, y)
# সেরা প্যারামিটার সেট প্রদর্শন করা
print("Best parameters found: ", random_search.best_params_)
Random Search এর সুবিধা:
- দ্রুত এবং কম্পিউটেশনালভাবে কার্যকরী: Grid Search এর তুলনায় এটি অনেক দ্রুত এবং কার্যকরী হতে পারে, বিশেষত যখন প্যারামিটার স্পেস বড় হয়।
- স্কেলেবিলিটি: হাইপারপ্যারামিটার স্পেস বড় হলে এটি Grid Search থেকে অনেক বেশি কার্যকরী হতে পারে।
Random Search এর সীমাবদ্ধতা:
- কম সঠিকতা: এটি সমস্ত প্যারামিটার সংমিশ্রণ পরীক্ষা না করায় কিছু সময়ে Grid Search এর চেয়ে কম সঠিক ফলাফল প্রদান করতে পারে।
- বৈশিষ্ট্য নির্বাচন করা: কিছু হাইপারপ্যারামিটার কম্বিনেশন ভাল ফলাফল দিতে পারে না, যা কখনও কখনও দ্বিতীয় শ্রেণির সমাধান হতে পারে।
Grid Search vs Random Search
| বৈশিষ্ট্য | Grid Search | Random Search |
|---|---|---|
| প্রক্রিয়া | সব প্যারামিটার সংমিশ্রণ পরীক্ষা করা | এলোমেলোভাবে কিছু কম্বিনেশন পরীক্ষা করা |
| কম্পিউটেশনাল খরচ | বেশি | কম |
| পারফর্মেন্স | সর্বোত্তম ফলাফল পাওয়ার সম্ভাবনা বেশি | কখনও কখনও কম সঠিক ফলাফল দিতে পারে |
| স্কেলেবিলিটি | ছোট হাইপারপ্যারামিটার স্পেসে কার্যকর | বড় হাইপারপ্যারামিটার স্পেসে কার্যকর |
| ব্যবহার | সঠিকতার জন্য, ছোট ডেটাসেট বা সহজ টাস্ক | দ্রুত ফলাফল পেতে, বড় ডেটাসেট বা কমপ্লেক্স টাস্ক |
সারাংশ
- Grid Search একটি exhaustive অনুসন্ধান কৌশল যা সমস্ত প্যারামিটার সংমিশ্রণ পরীক্ষা করে। এটি অধিক নির্ভুল ফলাফল প্রদান করে কিন্তু এটি computationally expensive এবং ধীর হতে পারে।
- Random Search এলোমেলোভাবে প্যারামিটার কম্বিনেশন নির্বাচন করে এবং কম computational খরচে দ্রুত ফলাফল প্রদান করে, তবে এটি কখনও কখনও কম সঠিক হতে পারে।
Random Search সাধারণত বড় ডেটাসেট বা হাইপারপ্যারামিটার স্পেসের জন্য Grid Search থেকে বেশি কার্যকরী হতে পারে, তবে Grid Search ব্যবহার করে আপনি সর্বোত্তম প্যারামিটার সেট পেতে পারেন।
Read more