Logistic Regression হল একটি জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা ক্লাসিফিকেশন টাস্কে ব্যবহৃত হয়। এর কিছু গুরুত্বপূর্ণ hyperparameters রয়েছে, যা মডেলের পারফরম্যান্স এবং প্রশিক্ষণ প্রক্রিয়াকে প্রভাবিত করে। নিচে প্রধান hyperparameters গুলি বিস্তারিত আলোচনা করা হলো: C, solver, এবং max_iter।
1. C (Regularization Strength)
C হল Logistic Regression মডেলের রেগুলারাইজেশন শক্তি। এটি লজিস্টিক রিগ্রেশন এর Inverse Regularization Strength হিসেবে কাজ করে। সহজভাবে বলতে গেলে, C হচ্ছে রেগুলারাইজেশন এর শক্তি যা মডেলের জটিলতা নিয়ন্ত্রণ করে।
- একটি ছোট C মান (যেমন 0.01) বেশি রেগুলারাইজেশন তৈরি করে, যার ফলে মডেলটি কম জটিল এবং বেশি সাধারণীকৃত (generalized) হয়।
- একটি বড় C মান (যেমন 1000) কম রেগুলারাইজেশন তৈরি করে, যার ফলে মডেলটি বেশি জটিল এবং ওভারফিটিং হতে পারে।
উদাহরণ:
- যদি আপনার C মান খুব ছোট হয়, তাহলে মডেলটি ডেটার প্রতি খুব বেশি স্থিতিশীলতা (bias) দেখাতে পারে এবং খুব সাধারণ হতে পারে।
- যদি C মান বেশি হয়, মডেলটি ডেটা অনুযায়ী অনেক বেশি ফিট হতে পারে এবং ওভারফিটিংয়ের ঝুঁকি তৈরি করতে পারে।
ডিফল্ট মান:
- C এর ডিফল্ট মান
1.0।
কোড উদাহরণ:
from sklearn.linear_model import LogisticRegression
# C মান 0.1 দিয়ে মডেল তৈরি করা
model = LogisticRegression(C=0.1)
2. Solver (Optimization Algorithm)
Solver হল সেই অ্যালগরিদম যা লজিস্টিক রিগ্রেশন এর প্যারামিটারগুলি অপটিমাইজ করতে ব্যবহৃত হয়। sklearn এর লজিস্টিক রিগ্রেশন বিভিন্ন solver সাপোর্ট করে, যার মধ্যে কিছু সাধারণ solver হলো:
- liblinear: ছোট ডেটাসেটের জন্য উপযুক্ত। এটি লিনিয়ার রিগ্রেশন এবং লজিস্টিক রিগ্রেশন এর জন্য সেরা।
- newton-cg: বড় ডেটাসেটের জন্য কার্যকরী এবং নিউটন কনজিগেট গ্রাডিয়েন্ট মেথড ব্যবহার করে।
- lbfgs: বড় ডেটাসেটের জন্য একটি অত্যন্ত জনপ্রিয় solver। এটি Limited-memory Broyden–Fletcher–Goldfarb–Shanno অ্যালগরিদম ব্যবহার করে।
- saga: L1 রেগুলারাইজেশন এবং SVM এর জন্য উপযুক্ত। এটি বড় ডেটাসেটের জন্য এবং লিনিয়ার স্কেলিং এর জন্য ভালো।
কোড উদাহরণ:
from sklearn.linear_model import LogisticRegression
# solver=liblinear ব্যবহার করে মডেল তৈরি করা
model = LogisticRegression(solver='liblinear')
ডিফল্ট মান:
- solver এর ডিফল্ট মান
liblinear।
3. max_iter (Maximum Number of Iterations)
max_iter হল অপটিমাইজেশন অ্যালগরিদম এর সর্বোচ্চ পুনরাবৃত্তির সংখ্যা। এর মান নির্ধারণ করে কতবার মডেলটি প্যারামিটারগুলি আপডেট করতে পারে। যদি max_iter খুব কম হয়, তাহলে মডেলটি কনভার্জ (convergence) করতে পারে না এবং সঠিক ফলাফল নাও পেতে পারে। যদি এটি খুব বেশি হয়, তবে এটি অপ্রয়োজনীয়ভাবে বেশি সময় নিতে পারে।
- max_iter এর মান বাড়ালে, মডেলটি আরও বেশি পুনরাবৃত্তি করে এবং কনভার্জেন্স পেতে সহায়ক হয়, তবে এর ফলে ট্রেনিং সময়ও বেড়ে যায়।
কোড উদাহরণ:
from sklearn.linear_model import LogisticRegression
# max_iter 1000 দিয়ে মডেল তৈরি করা
model = LogisticRegression(max_iter=1000)
ডিফল্ট মান:
- max_iter এর ডিফল্ট মান
100।
সারাংশ:
| Hyperparameter | Description | Default Value |
|---|---|---|
| C | Regularization strength. Small values lead to high regularization (simple model), large values lead to low regularization (complex model). | 1.0 |
| solver | Optimization algorithm used to find the model coefficients. Common options are liblinear, newton-cg, lbfgs, saga. | liblinear |
| max_iter | Maximum number of iterations for optimization algorithms. A higher number allows for more training time, but may help with convergence. | 100 |
Hyperparameters নির্বাচন:
- C: মডেলের রেগুলারাইজেশন শক্তি নির্ধারণ করে, যেখানে কম C মান ডেটাকে বেশি সাধারণীকৃত করে এবং বড় C মান ডেটাকে বেশি ফিট করে (ওভারফিটিং এর ঝুঁকি)।
- solver: বড় ডেটাসেট বা বিভিন্ন ধরনের রেগুলারাইজেশন ব্যবহার করার জন্য উপযুক্ত solver নির্বাচন করা গুরুত্বপূর্ণ। যেমন
lbfgsবাsagaবড় ডেটাসেটের জন্য ভাল। - max_iter: কনভার্জেন্স নিশ্চিত করার জন্য পর্যাপ্ত পুনরাবৃত্তি সংখ্যা নির্ধারণ করা।
এগুলি মডেলের পারফরম্যান্স এবং প্রশিক্ষণের গতি প্রভাবিত করতে পারে, তাই আপনার ডেটা এবং সমস্যার ধরন অনুযায়ী এগুলির মান নির্বাচন করা উচিত।
Read more