Multiclass Classification এর উদাহরণ

বাস্তব উদাহরণ এবং প্রজেক্ট ডেমো - পাইথনে লজিস্টিক রিগ্রেশন (Logistic Regression in Python) - Machine Learning

390

Multiclass classification হল এমন একটি ক্লাসিফিকেশন সমস্যা যেখানে আউটপুট বা টার্গেট ভ্যারিয়েবলটির একাধিক শ্রেণী থাকে (দ্বৈত শ্রেণী বা binary classification এর বিপরীতে)। এখানে লক্ষ্য থাকে একটি নির্দিষ্ট ইনপুট ডেটাকে একাধিক শ্রেণী বা ক্যাটেগরিতে শ্রেণীভুক্ত করা।

একটি জনপ্রিয় উদাহরণ হল হাতের লেখা অক্ষর সনাক্তকরণ, যেখানে ইনপুট হিসেবে হাতের লেখা অক্ষর দেওয়া হয় এবং আউটপুট হিসেবে এটি কোন একটি অক্ষর (A, B, C, ... Z) তা চিহ্নিত করা হয়।


উদাহরণ: Iris Dataset

Iris Dataset হল একটি জনপ্রিয় multiclass classification সমস্যা যেখানে তিনটি প্রজাতির (Setosa, Versicolor, Virginica) ফুলের পেটাল এবং সেপাল সাইজের উপর ভিত্তি করে ফুলের প্রজাতি চিহ্নিত করা হয়।

  • ফিচার: sepal length, sepal width, petal length, petal width
  • ট্যাগ: ৩টি শ্রেণী — Setosa, Versicolor, Virginica

1. ডেটাসেট লোড করা

from sklearn.datasets import load_iris
import pandas as pd

# Iris ডেটাসেট লোড করা
data = load_iris()

# ডেটাসেটটি pandas DataFrame এ রূপান্তর
df = pd.DataFrame(data.data, columns=data.feature_names)
df['species'] = data.target

# প্রথম ৫টি রেকর্ড প্রিন্ট করা
print(df.head())

এখানে, data.data হল ফিচারগুলোর ভ্যালু এবং data.target হল টার্গেট বা শ্রেণী।

2. মডেল ট্রেনিং (Multiclass Classification Model)

এখন আমরা একটি Logistic Regression মডেল ব্যবহার করে multiclass classification করব। sklearn-এর LogisticRegression মডেলটি বাইনারি এবং মাল্টিক্লাস উভয়ই সমর্থন করে।

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# ইনপুট (features) এবং আউটপুট (target) নির্ধারণ
X = df.drop('species', axis=1)
y = df['species']

# ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# মডেল তৈরি এবং ট্রেনিং
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

# প্রেডিকশন করা
y_pred = model.predict(X_test)

# মডেলের সঠিকতা (accuracy) চেক করা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100}%")

এখানে আমরা:

  • Logistic Regression মডেল ব্যবহার করেছি।
  • ডেটাকে ৭০% ট্রেনিং এবং ৩০% টেস্ট সেটে ভাগ করেছি।
  • মডেল ট্রেনিং করার পর, টেস্ট ডেটাতে প্রেডিকশন করেছি এবং accuracy মাপছি।

3. মডেল ফলাফল বিশ্লেষণ (Confusion Matrix)

Confusion Matrix এর মাধ্যমে মডেলের পারফরম্যান্স আরো বিস্তারিতভাবে বিশ্লেষণ করা যায়:

from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt

# Confusion Matrix হিসাব করা
cm = confusion_matrix(y_test, y_pred)

# Heatmap এর মাধ্যমে কনফিউশন ম্যাট্রিক্স প্লট করা
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=data.target_names, yticklabels=data.target_names)
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix')
plt.show()

এখানে আমরা Seaborn এবং Matplotlib ব্যবহার করে Confusion Matrix এর একটি heatmap তৈরি করেছি, যা আমাদের মডেলের প্রতি শ্রেণীর পারফরম্যান্স বিশ্লেষণ করতে সাহায্য করবে।


সারাংশ:

  • Multiclass classification সমস্যায় আমাদের লক্ষ্য থাকে একাধিক শ্রেণী থেকে একটি শ্রেণী চিহ্নিত করা।
  • Iris Dataset হল একটি জনপ্রিয় উদাহরণ যেখানে তিনটি প্রজাতির ফুল চিহ্নিত করা হয়।
  • Logistic Regression ব্যবহার করে আমরা multiclass classification সমাধান করতে পারি, যেখানে প্রশিক্ষণ ডেটা থেকে মডেল শিখে, নতুন ডেটার জন্য শ্রেণী প্রেডিক্ট করা হয়।
  • Confusion Matrix ব্যবহার করে মডেলের সঠিকতা বিশ্লেষণ করা যায়।
Content added By
Promotion

Are you sure to start over?

Loading...