Classification Report তৈরি

মডেল ইভ্যালুয়েশন (Model Evaluation) - পাইথনে লজিস্টিক রিগ্রেশন (Logistic Regression in Python) - Machine Learning

403

Classification Report একটি গুরুত্বপূর্ণ মেট্রিক্স যা মডেলের পারফরম্যান্স বিশ্লেষণে সহায়ক। এটি ক্লাসিফিকেশন সমস্যায় মডেলের accuracy, precision, recall, এবং F1-score প্রদান করে। এই মেট্রিক্সগুলি মডেলের দক্ষতা এবং তার নির্ভুলতা, পুনরুদ্ধার ক্ষমতা, এবং ভারসাম্য বুঝতে সাহায্য করে।

Precision, Recall, এবং F1-score এর সংজ্ঞা নিম্নরূপ:

  • Precision: কতটা সঠিকভাবে মডেল পজিটিভ ক্লাস প্রেডিক্ট করেছে।

    Precision=TruePositivesTruePositives+FalsePositivesPrecision = \frac{True Positives}{True Positives + False Positives}

  • Recall: মডেল কতটা সফলভাবে আসল পজিটিভ ক্লাস শনাক্ত করতে পেরেছে।

    Recall=TruePositivesTruePositives+FalseNegativesRecall = \frac{True Positives}{True Positives + False Negatives}

  • F1-score: Precision এবং Recall এর গড় হার। এটি Precision এবং Recall এর মধ্যে ব্যালান্স বজায় রাখতে সাহায্য করে।

    F1score=2×Precision×RecallPrecision+RecallF1-score = 2 \times \frac{Precision \times Recall}{Precision + Recall}

classification_report ফাংশন

scikit-learn লাইব্রেরিতে classification_report ফাংশন ব্যবহার করে এই মেট্রিক্সগুলি সহজেই বের করা যায়।

উদাহরণ:

নিচে একটি উদাহরণ দেয়া হলো যেখানে আমরা একটি Binary Classification মডেল ব্যবহার করে Classification Report তৈরি করব।

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

# ডেটা তৈরি করা (Binary Classification)
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)

# ডেটা ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

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

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

# Classification Report তৈরি করা
report = classification_report(y_test, y_pred)

# রিপোর্ট প্রিন্ট করা
print(report)

আউটপুট:

              precision    recall  f1-score   support

           0       0.97      0.99      0.98       102
           1       0.99      0.97      0.98        98

    accuracy                           0.98       200
   macro avg       0.98      0.98      0.98       200
weighted avg       0.98      0.98      0.98       200

classification_report আউটপুট ব্যাখ্যা:

  1. Precision: প্রতি পজিটিভ প্রেডিকশনের জন্য কতটি সঠিক ছিল তা দেখায়।
  2. Recall: মোট পজিটিভ কেসের মধ্যে মডেল কতটি সঠিকভাবে শনাক্ত করতে পেরেছে তা দেখায়।
  3. F1-score: Precision এবং Recall এর সমন্বিত পরিমাপ, যেখানে দুটি মূল্যমানের ভারসাম্য রাখা হয়।
  4. Support: প্রতিটি ক্লাসের জন্য কতটি আসল উদাহরণ ছিল, অর্থাৎ টেস্ট ডেটার মধ্যে ওই শ্রেণীর সংখ্যা।

এটি binary classification বা multiclass classification উভয়ের জন্য কাজ করে, এবং শ্রেণীভিত্তিক পারফরম্যান্স বিশ্লেষণ করতে সাহায্য করে।

সারাংশ:

  • Classification Report মডেলের precision, recall, এবং F1-score সহ পারফরম্যান্স বিশ্লেষণ করতে ব্যবহৃত হয়।
  • এটি scikit-learn এর classification_report ফাংশন দিয়ে তৈরি করা যায়।
  • এটি ক্লাস ভিত্তিক মূল্যায়ন প্রদান করে, যা মডেলের শক্তি এবং দুর্বলতা শনাক্ত করতে সাহায্য করে।
Content added By
Promotion

Are you sure to start over?

Loading...