Multiclass Logistic Regression হল একটি লজিস্টিক রিগ্রেশন মডেল যা একাধিক শ্রেণীর মধ্যে ক্লাসিফিকেশন করতে ব্যবহৃত হয়। এটি মূলত One-vs-Rest (OvR) কৌশল ব্যবহার করে কাজ করে, যেখানে প্রতিটি শ্রেণী অন্য সমস্ত শ্রেণীর বিরুদ্ধে পৃথক লজিস্টিক রিগ্রেশন মডেল তৈরি করা হয়।
এখানে একটি উদাহরণ দেখানো হবে যেখানে Multiclass Logistic Regression ব্যবহার করে Iris Dataset (একটি জনপ্রিয় ডেটাসেট যা তিনটি শ্রেণী ধারণ করে) নিয়ে কাজ করা হবে।
1. লাইব্রেরি ইনস্টলেশন এবং ইমপোর্ট করা
প্রথমে প্রয়োজনীয় লাইব্রেরি ইনস্টল এবং ইমপোর্ট করতে হবে।
pip install numpy pandas scikit-learn
এবার, প্রয়োজনীয় লাইব্রেরি ইমপোর্ট করুন:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score, confusion_matrix
2. Iris Dataset লোড এবং ডেটা প্রিপ্রসেসিং
এখানে, আমরা scikit-learn থেকে Iris Dataset লোড করব এবং তা ট্রেনিং ও টেস্ট ডেটাতে ভাগ করব।
# Iris ডেটাসেট লোড করা
data = load_iris()
# ইনপুট ফিচার (X) এবং আউটপুট লেবেল (y) আলাদা করা
X = data.data
y = data.target
# ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা (80% ট্রেনিং, 20% টেস্ট)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
3. Multiclass Logistic Regression মডেল তৈরি এবং ফিট করা
এখন, আমরা Multiclass Logistic Regression মডেল তৈরি এবং ট্রেনিং করব। LogisticRegression() ফাংশনটি দ্বারা আপনি সহজেই Multiclass সমস্যা সমাধান করতে পারেন, কারণ scikit-learn এর ডিফল্ট কৌশল One-vs-Rest (OvR) পদ্ধতি ব্যবহার করে।
# Multiclass Logistic Regression মডেল তৈরি করা
model = LogisticRegression(max_iter=200)
# মডেল ট্রেনিং করা
model.fit(X_train, y_train)
এখানে, max_iter=200 মানে হল যে লজিস্টিক রিগ্রেশন মডেলটি ২০০ বার পর্যন্ত প্রশিক্ষণ হবে, যা বড় ডেটাসেটের জন্য সহায়ক।
4. মডেল মূল্যায়ন
মডেলটি ট্রেনিং করার পর, এখন আমরা মডেলটির কার্যকারিতা পরীক্ষা করতে পারি। প্রথমে, টেস্ট ডেটার উপর প্রেডিকশন করা হবে এবং তার পর accuracy এবং confusion matrix চেক করা হবে।
# টেস্ট ডেটা ব্যবহার করে প্রেডিকশন করা
y_pred = model.predict(X_test)
# Accuracy চেক করা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100}%")
# Confusion Matrix
cm = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(cm)
5. মডেলের মূল্যায়ন (Confusion Matrix এবং Accuracy)
- Accuracy: এটি মডেলের সঠিক প্রেডিকশনের শতাংশ প্রদর্শন করে।
- Confusion Matrix: এটি সঠিক এবং ভুল শ্রেণীভুক্ত হওয়ার বিস্তারিত পরিসংখ্যান দেখায়, যা মডেলটির পারফরম্যান্স মূল্যায়ন করতে সহায়ক।
6. সারাংশ
এই প্রক্রিয়া অনুসরণ করে, আপনি একটি Multiclass Logistic Regression মডেল তৈরি এবং ফিট করতে পারেন। এখানে আমরা Iris Dataset ব্যবহার করেছি, যেখানে তিনটি শ্রেণী রয়েছে (Setosa, Versicolor, Virginica)। মডেলটি তিনটি শ্রেণীর মধ্যে ক্লাসিফিকেশন করবে।
এটা গুরুত্বপূর্ণ যে, scikit-learn এর LogisticRegression ক্লাস Multiclass Classification সমস্যার জন্য ডিফল্টভাবে One-vs-Rest (OvR) পদ্ধতি ব্যবহার করে, তাই আপনাকে আলাদাভাবে কোনো কৌশল নির্দিষ্ট করতে হবে না।
Read more