Confusion Matrix, ROC-AUC Curve

Machine Learning - মেশিন লার্নিং (Machine Learning) - Model Evaluation এবং Validation Techniques
417

Confusion Matrix এবং ROC-AUC Curve মেশিন লার্নিং মডেলের কার্যকারিতা মূল্যায়ন করার দুটি গুরুত্বপূর্ণ হাতিয়ার। এগুলি মডেলের সঠিকতা, ভুল, এবং পারফরম্যান্সের আরও গভীর বিশ্লেষণ প্রদান করে।


১. Confusion Matrix:

Confusion Matrix একটি টেবিলের আকারে উপস্থাপিত হয় যা ক্লাসিফিকেশন মডেল এর পারফরম্যান্স বিশ্লেষণ করতে ব্যবহৃত হয়। এটি মূলত প্রদর্শন করে কিভাবে প্রকৃত লেবেল এবং পূর্বানুমান করা লেবেল মিলে বা না মিলে। এটি দুটি শ্রেণীর মধ্যে (যেমন, "পজিটিভ" এবং "নেগেটিভ") চারটি ভিন্ন ফলাফল দেখায়:

Confusion Matrix-এর মূল উপাদান:

  1. True Positive (TP): মডেল সঠিকভাবে পজিটিভ ক্লাস পূর্বানুমান করেছে। (যেমন, "স্প্যাম" ইমেল শনাক্ত করা)
  2. True Negative (TN): মডেল সঠিকভাবে নেগেটিভ ক্লাস পূর্বানুমান করেছে। (যেমন, "নন-স্প্যাম" ইমেল শনাক্ত করা)
  3. False Positive (FP): মডেল ভুল করে পজিটিভ ক্লাস পূর্বানুমান করেছে। (False Alarm)
  4. False Negative (FN): মডেল ভুল করে নেগেটিভ ক্লাস পূর্বানুমান করেছে। (Missed detection)

Confusion Matrix উদাহরণ:

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

Confusion Matrix থেকে গণনা করা মূল্য:

  • Accuracy: মডেল কতটা সঠিকভাবে পূর্বানুমান করেছে।

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

  • Precision (Positive Predictive Value): যখন মডেল পজিটিভ বলে পূর্বানুমান করেছে, তখন সত্যিই পজিটিভ হওয়ার সম্ভাবনা।

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

  • Recall (Sensitivity or True Positive Rate): প্রকৃত পজিটিভগুলি সঠিকভাবে শনাক্ত করার ক্ষমতা।

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

  • F1 Score: Precision এবং Recall এর সামঞ্জস্যপূর্ণ গড়। এটি মডেলের সামগ্রিক কার্যকারিতা নির্দেশ করে।

    F1=2×Precision×RecallPrecision+RecallF1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}


২. ROC Curve এবং AUC (Area Under the Curve):

ROC Curve (Receiver Operating Characteristic Curve) এবং AUC (Area Under the Curve) হল ক্লাসিফিকেশন মডেলের পারফরম্যান্স মূল্যায়ন করার জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ গ্রাফিক্যাল টুল।

ROC Curve:

ROC Curve হলো একটি গ্রাফ যা True Positive Rate (Recall) এবং False Positive Rate এর মধ্যে সম্পর্ক প্রদর্শন করে।

  • True Positive Rate (TPR): এটি Recall হিসেবেও পরিচিত এবং এটি দেখায় কতটা সঠিকভাবে পজিটিভ ক্লাস মডেল শনাক্ত করতে পারছে।

    TPR=TPTP+FNTPR = \frac{TP}{TP + FN}

  • False Positive Rate (FPR): এটি হল False Positive এর অনুপাত, যা জানায় কতটা ভুলভাবে পজিটিভ ক্লাস মডেল পূর্বানুমান করেছে।

    FPR=FPFP+TNFPR = \frac{FP}{FP + TN}

ROC Curve এই দুইটি মানের মধ্যে একটি গ্রাফিক্যাল সম্পর্ক দেখায়, যেখানে X-axis হচ্ছে FPR এবং Y-axis হচ্ছে TPR

ROC Curve-এ পয়েন্টগুলো:

  • উচ্চ TPR (True Positive Rate) এবং নিম্ন FPR (False Positive Rate) মডেলের ভালো পারফরম্যান্স নির্দেশ করে।
  • Diagonal line (50% chance line): যদি মডেল কোনো ভাল পারফরম্যান্স না দেখায়, তবে এটি ডায়াগোনাল লাইনে (যেখানে TPR = FPR) অবস্থান করবে। এটি একে "random guess" বা "no-skill classifier" হিসেবে দেখা হয়।

AUC (Area Under the Curve):

AUC হল ROC Curve এর অধীনে অবস্থিত এলাকা, যা মডেলের পারফরম্যান্সের একটি পরিমাপ দেয়। AUC মানে 0 এবং 1 এর মধ্যে থাকে:

  • AUC = 1: এটি দেখায় যে মডেলটি নিখুঁতভাবে সমস্ত পজিটিভ এবং নেগেটিভ ক্লাসগুলি আলাদা করতে সক্ষম।
  • AUC = 0.5: এটি একটি র্যান্ডম ক্লাসিফায়ারের সমান, যা TPR এবং FPR এর মধ্যে কোনও পার্থক্য তৈরি করতে সক্ষম নয়।
  • AUC > 0.7: এটি ভাল পারফরম্যান্স নির্দেশ করে।
  • AUC < 0.5: মডেলটি ভুল পারফরম্যান্স করছে, এবং এটি আসলে একটি উল্টো মডেল।

ROC Curve এবং AUC এর উদাহরণ:

import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc

# মডেল প্রেডিকশন এবং প্রকৃত ফলাফল
y_pred = model.predict(X_test)
fpr, tpr, _ = roc_curve(y_test, y_pred)

# AUC
roc_auc = auc(fpr, tpr)

# ROC Curve প্লট
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.2f})')
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc="lower right")
plt.show()

Confusion Matrix এবং ROC-AUC Curve এর মধ্যে সম্পর্ক:

  • Confusion Matrix মডেলের বাস্তব পারফরম্যান্স দেখায় এবং কিভাবে সঠিক এবং ভুল পূর্বানুমান হচ্ছে তার বিশদ বিশ্লেষণ দেয়। এটি মূলত একক থ্রেশোল্ডের উপর ভিত্তি করে কাজ করে (যেমন, 0.5 থ্রেশোল্ড)।
  • ROC-AUC Curve মডেলের পারফরম্যান্সের জন্য একটি গ্রাফিক্যাল রূপ, যা বিভিন্ন থ্রেশোল্ডে True Positive Rate এবং False Positive Rate বিশ্লেষণ করে। AUC এর মান যত বেশি হবে, মডেলটি তত ভাল পারফর্ম করছে।

উপসংহার:

  • Confusion Matrix ক্লাসিফিকেশন মডেলের সঠিকতা, ভুল, precision, recall, এবং F1 score গণনা করতে সাহায্য করে।
  • ROC Curve এবং AUC মডেলের পারফরম্যান্স বিশ্লেষণে আরও উচ্চস্তরের সরঞ্জাম, যা বিভিন্ন থ্রেশোল্ডে মডেলের সক্ষমতা নির্ধারণ করতে সহায়ক।
  • দুটি উপকরণই মডেলটির কার্যকারিতা নির্ধারণ করতে এবং তুলনা করতে ব্যবহৃত হয়, তবে ROC-AUC মডেল পারফরম্যান্সের একটি আরও নির্ভুল এবং অন্তর্দৃষ্টিপূর্ণ দৃষ্টিভঙ্গি প্রদান করে।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...