Grid Search এবং Random Search এর মাধ্যমে Hyperparameter Optimization
Hyperparameter Optimization হল মেশিন লার্নিং মডেলের পারফরম্যান্স উন্নত করার একটি গুরুত্বপূর্ণ প্রক্রিয়া। এটি বিভিন্ন হাইপারপ্যারামিটার সেটিংস পরীক্ষা করে এবং সঠিক মান চিহ্নিত করে, যাতে মডেলটির সঠিকতা বৃদ্ধি পায়। Grid Search এবং Random Search হল দুইটি জনপ্রিয় কৌশল যা এই প্রক্রিয়াতে ব্যবহৃত হয়।
Grid Search
Grid Search হল একটি সিস্টেম্যাটিক পদ্ধতি যেখানে একটি নির্দিষ্ট প্যারামিটার সেটের জন্য সমস্ত সম্ভাব্য মান পরীক্ষা করা হয়। এটি ব্যবহারকারীকে একটি পরিসরের মান চয়ন করার সুযোগ দেয় এবং সমস্ত সম্ভাব্য সমন্বয় পরীক্ষা করে।
কিভাবে কাজ করে:
- প্যারামিটারসের একটি গ্রিড তৈরি করুন: আপনি কোন প্যারামিটারগুলো পরীক্ষা করতে চান এবং তাদের মানের তালিকা তৈরি করুন।
- সম্ভাব্য সমন্বয়গুলি পরীক্ষা করুন: সমস্ত সম্ভব সমন্বয়ের জন্য মডেল প্রশিক্ষণ এবং তাদের কার্যকারিতা মূল্যায়ন করুন।
- সেরা ফলাফল নির্বাচন করুন: সেরা মডেল এবং হাইপারপ্যারামিটার সেট নির্বাচন করুন।
উদাহরণ (Python এ):
from sklearn.model_selection import GridSearchCV
from catboost import CatBoostClassifier
# CatBoostClassifier তৈরি করা
model = CatBoostClassifier()
# প্যারামিটার গ্রিড তৈরি করা
param_grid = {
'depth': [3, 5, 7],
'learning_rate': [0.01, 0.1, 0.2],
'iterations': [100, 200]
}
# Grid Search তৈরি করা
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, scoring='accuracy', cv=3)
grid_search.fit(X_train, y_train)
# সেরা প্যারামিটার এবং স্কোর দেখা
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", grid_search.best_score_)
Random Search
Random Search হল একটি এলোমেলো পদ্ধতি যেখানে বিভিন্ন প্যারামিটারগুলির এলোমেলোভাবে নির্বাচিত মানগুলি পরীক্ষা করা হয়। এটি প্যারামিটার স্পেসের মধ্যে এলোমেলোভাবে নমুনা নেওয়ার মাধ্যমে কাজ করে এবং সেরা মডেল চিহ্নিত করে।
কিভাবে কাজ করে:
- প্যারামিটার স্পেসের সীমা নির্ধারণ করুন: আপনি কোন প্যারামিটারগুলো পরীক্ষা করতে চান এবং তাদের সম্ভাব্য মানের পরিসীমা তৈরি করুন।
- এলোমেলো নমুনা নিন: এলোমেলোভাবে প্যারামিটার মান চয়ন করুন এবং মডেল প্রশিক্ষণ করুন।
- ফলাফল মূল্যায়ন করুন: নমুনা করা সেটিংসের জন্য মডেলের কার্যকারিতা পরীক্ষা করুন।
উদাহরণ (Python এ):
from sklearn.model_selection import RandomizedSearchCV
from catboost import CatBoostClassifier
from scipy.stats import uniform
# CatBoostClassifier তৈরি করা
model = CatBoostClassifier()
# প্যারামিটার ডিসক্রিপশন
param_dist = {
'depth': [3, 5, 7],
'learning_rate': uniform(0.01, 0.2), # এলোমেলোভাবে 0.01 থেকে 0.2 এর মধ্যে মান নেবে
'iterations': [100, 200]
}
# Random Search তৈরি করা
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_dist, n_iter=10, scoring='accuracy', cv=3)
random_search.fit(X_train, y_train)
# সেরা প্যারামিটার এবং স্কোর দেখা
print("Best Parameters:", random_search.best_params_)
print("Best Score:", random_search.best_score_)
তুলনা
| বৈশিষ্ট্য | Grid Search | Random Search |
|---|---|---|
| পদ্ধতি | সিস্টেম্যাটিকভাবে সমস্ত সমন্বয় পরীক্ষা | এলোমেলোভাবে নমুনা নেয় |
| পরীক্ষা করার সংখ্যা | সম্ভাব্য সমন্বয়ের সংখ্যা দ্বারা নির্ধারিত | ব্যবহৃত নমুনার সংখ্যা দ্বারা নির্ধারিত |
| সময়সীমা | বেশি সময় নেয় | কম সময়ে ফলাফল পাওয়া যায় |
| সঠিকতা | সঠিক ফলাফল দিতে পারে | কখনও কখনও সঠিক ফলাফল দিতে পারে |
সারসংক্ষেপ
Grid Search এবং Random Search উভয়ই হাইপারপ্যারামিটার অপটিমাইজেশনের জন্য কার্যকরী কৌশল। Grid Search সিস্টেম্যাটিক এবং সম্পূর্ণ পরীক্ষা করে, যেখানে Random Search এলোমেলোভাবে নমুনা নেয়। আপনার প্রয়োজন এবং পরিস্থিতির উপর নির্ভর করে সঠিক পদ্ধতি নির্বাচন করা উচিত।
Read more