Confusion Matrix এবং Classification Report

Model Evaluation এবং Visualization - কেরাস (Keras) - Machine Learning

333

Confusion Matrix এবং Classification Report হল মেশিন লার্নিং মডেলগুলির পারফরম্যান্স পরিমাপ করার জন্য গুরুত্বপূর্ণ টুল। এগুলি বিশেষভাবে শ্রেণীবিন্যাস (classification) সমস্যা বিশ্লেষণ করার জন্য ব্যবহৃত হয়, যেখানে প্রতিটি ইনপুট ডেটা একটি নির্দিষ্ট শ্রেণিতে (class) প্রেডিক্ট করা হয়। এই দুটি টুল ব্যবহার করে মডেলের বৈচিত্র্য, সঠিকতা এবং অন্যান্য মূল্যায়ন সূচক (metrics) পরিমাপ করা হয়।


১. Confusion Matrix

Confusion Matrix হল একটি টেবিল যা শ্রেণীবিন্যাস মডেলের পারফরম্যান্স বিশ্লেষণ করতে ব্যবহৃত হয়। এটি দেখায় কতটি সঠিক এবং ভুল প্রেডিকশন হয়েছে, এবং সেগুলি কোন শ্রেণিতে পড়েছে।

একটি Confusion Matrix সাধারণত নিম্নলিখিত ফর্মে থাকে:

Predicted PositivePredicted Negative
Actual PositiveTrue Positive (TP)False Negative (FN)
Actual NegativeFalse Positive (FP)True Negative (TN)

Confusion Matrix এর উপাদান:

  1. True Positive (TP): এই সংখ্যাটি প্রতিনিধিত্ব করে যে কতগুলি প্রেডিকশন সঠিকভাবে পজিটিভ শ্রেণি হিসেবে চিহ্নিত হয়েছে।
  2. False Positive (FP): এই সংখ্যাটি প্রতিনিধিত্ব করে যে কতগুলি প্রেডিকশন ভুলভাবে পজিটিভ শ্রেণি হিসেবে চিহ্নিত হয়েছে (যা আসলে নেগেটিভ ছিল)।
  3. True Negative (TN): এই সংখ্যাটি প্রতিনিধিত্ব করে যে কতগুলি প্রেডিকশন সঠিকভাবে নেগেটিভ শ্রেণি হিসেবে চিহ্নিত হয়েছে।
  4. False Negative (FN): এই সংখ্যাটি প্রতিনিধিত্ব করে যে কতগুলি প্রেডিকশন ভুলভাবে নেগেটিভ শ্রেণি হিসেবে চিহ্নিত হয়েছে (যা আসলে পজিটিভ ছিল)।

Confusion Matrix উদাহরণ:

ধরা যাক আমাদের দুটি শ্রেণি: পজিটিভ (1) এবং নেগেটিভ (0)। একটি মডেল পজিটিভ শ্রেণির জন্য 80টি সঠিক প্রেডিকশন (True Positive) করেছে, কিন্তু 10টি ভুলভাবে পজিটিভ শ্রেণি হিসেবে চিহ্নিত করেছে (False Positive)। এবং 15টি ভুলভাবে নেগেটিভ শ্রেণি হিসেবে চিহ্নিত করেছে (False Negative), এবং 95টি সঠিকভাবে নেগেটিভ শ্রেণি হিসেবে চিহ্নিত করেছে (True Negative)। এর Confusion Matrix হবে:

Predicted PositivePredicted Negative
Actual Positive8015
Actual Negative1095

২. Classification Report

Classification Report হল একটি বিবরণী যা শ্রেণীবিন্যাস মডেলের কার্যকারিতা পরিমাপ করার জন্য একাধিক পরিমাপ (metrics) প্রদর্শন করে। এই রিপোর্টটি সাধারণত মডেলের Precision, Recall, F1-Score এবং Accuracy প্রদান করে।

Classification Report এর পরিমাপ:

  1. Precision: Precision হল কতগুলি পজিটিভ প্রেডিকশন সঠিক ছিল তার অনুপাত।

    Precision=TPTP+FPPrecision = \frac{TP}{TP + FP}

  2. Recall: Recall হল কতগুলি আসল পজিটিভ সঠিকভাবে চিহ্নিত হয়েছে তার অনুপাত।

    Recall=TPTP+FNRecall = \frac{TP}{TP + FN}

  3. F1-Score: F1-Score হল Precision এবং Recall এর হার্মোনিক গড়। এটি Precision এবং Recall এর মধ্যে ভারসাম্য তৈরি করতে সহায়তা করে।

    F1Score=2×Precision×RecallPrecision+RecallF1-Score = 2 \times \frac{Precision \times Recall}{Precision + Recall}

  4. Accuracy: Accuracy হল মোট সঠিক প্রেডিকশনের অনুপাত।

    Accuracy=TP+TNTP+TN+FP+FNAccuracy = \frac{TP + TN}{TP + TN + FP + FN}

Classification Report উদাহরণ:

ধরা যাক, আমাদের মডেলটি দুটি শ্রেণি (0 এবং 1) চিহ্নিত করছে এবং এই মডেলের জন্য Precision, Recall, F1-Score এবং Accuracy গণনা করা হয়েছে:

ClassPrecisionRecallF1-ScoreSupport
00.900.950.92100
10.850.800.8280
Accuracy 0.88180
Macro avg0.870.870.87180
Weighted avg0.880.880.88180
  • Precision (Class 0) = 0.90, Recall (Class 0) = 0.95
  • Precision (Class 1) = 0.85, Recall (Class 1) = 0.80
  • Accuracy = 88%

কিভাবে Confusion Matrix এবং Classification Report তৈরি করবেন?

Scikit-learn লাইব্রেরি ব্যবহার করে Python এ Confusion Matrix এবং Classification Report তৈরি করা সহজ।

উদাহরণ কোড (Python):

from sklearn.metrics import confusion_matrix, classification_report
import numpy as np

# Predicted values
y_pred = [0, 1, 0, 1, 0, 1, 0, 1, 1, 0]

# Actual values
y_true = [0, 1, 0, 0, 0, 1, 1, 1, 1, 0]

# Confusion Matrix
cm = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:")
print(cm)

# Classification Report
cr = classification_report(y_true, y_pred)
print("Classification Report:")
print(cr)

আউটপুট:

Confusion Matrix:
[[3 1]
 [1 5]]
Classification Report:
              precision    recall  f1-score   support

           0       0.75      0.75      0.75         4
           1       0.83      0.83      0.83         6

    accuracy                           0.80        10
   macro avg       0.79      0.79      0.79        10
weighted avg       0.80      0.80      0.80        10

সারাংশ

  • Confusion Matrix হল একটি টেবিল যা শ্রেণীবিন্যাস মডেলের পারফরম্যান্স পরিমাপ করে এবং এটি মডেলটির সঠিক এবং ভুল প্রেডিকশনের বিশ্লেষণ দেয়।
  • Classification Report হল একটি রিপোর্ট যা মডেলের Precision, Recall, F1-Score এবং Accuracy এর মতো মূল্যায়ন সূচক প্রদান করে।

এই দুটি টুল ব্যবহার করে, আপনি মডেলের কার্যকারিতা এবং তার ভুল প্রেডিকশনের ধরন ভালভাবে বিশ্লেষণ করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...