ROC-AUC Curve এবং Model Performance Metrics হল মেশিন লার্নিং মডেলের কার্যকারিতা মূল্যায়ন করার জন্য ব্যবহৃত গুরুত্বপূর্ণ টুল। যখন আপনি একটি শ্রেণীকরণ মডেল তৈরি করেন, তখন এটি খুবই গুরুত্বপূর্ণ যে আপনি মডেলের পারফরম্যান্স পর্যালোচনা করতে পারেন। এটি মডেলের সঠিকতা এবং দক্ষতা নিশ্চিত করতে সহায়ক।
১. ROC Curve (Receiver Operating Characteristic Curve)
ROC Curve একটি গ্রাফিকাল প্লট যা মডেলের পারফরম্যান্স পরিমাপ করে, বিশেষ করে binary classification (যেমন, দুইটি ক্লাসে ভাগ করা) সমস্যা সমাধানের ক্ষেত্রে। এটি একটি False Positive Rate (FPR) এবং True Positive Rate (TPR) এর মধ্যে সম্পর্ক প্রদর্শন করে।
True Positive Rate (TPR) বা Sensitivity বা Recall: এটি সঠিকভাবে শনাক্ত করা পজিটিভ ক্লাসের শতাংশ।
False Positive Rate (FPR): এটি সঠিকভাবে নেগেটিভ ক্লাসের মধ্যে ভুলভাবে পজিটিভ ক্লাস শনাক্ত করার হার।
ROC Curve এর কাঠামো:
- X-axis: False Positive Rate (FPR)
- Y-axis: True Positive Rate (TPR)
- Diagonal Line: এটি র্যান্ডম পারফরম্যান্সকে নির্দেশ করে, অর্থাৎ মডেলটি যদি এলোমেলোভাবে শ্রেণীভুক্ত করে।
একটি ভাল মডেলের ROC কিউরভে প্রায় উঁচু Y-Axis এবং শূন্য X-Axis থাকতে হবে। এর মানে, মডেলটি সঠিকভাবে পজিটিভ ক্লাস চিহ্নিত করতে সক্ষম এবং কম ভুল পজিটিভ করতে সক্ষম।
ROC Curve প্লট করা:
from sklearn.metrics import roc_curve
import matplotlib.pyplot as plt
# প্রেডিক্টেড প্রোবাবিলিটি এবং রিয়েল লেবেল
fpr, tpr, thresholds = roc_curve(y_true, y_pred_proba)
# ROC curve প্লট করা
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve')
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')
plt.legend(loc="lower right")
plt.show()
২. AUC (Area Under the Curve)
AUC (Area Under the Curve) হল ROC কিউরভের নিচে থাকা ক্ষেত্রের পরিমাণ। এটি মডেলের দক্ষতা পরিমাপ করার একটি সিঙ্গেল মেট্রিক্স।
- AUC = 0.5: যদি AUC 0.5 হয়, তবে এটি র্যান্ডম কেটাগরি মডেলকে নির্দেশ করে, যেখানে মডেল সঠিকভাবে কোনও সিদ্ধান্ত নিতে পারে না।
- AUC = 1: এটি একটি আদর্শ মডেলকে নির্দেশ করে, যেখানে মডেল সম্পূর্ণরূপে সঠিক সিদ্ধান্ত নিচ্ছে।
- AUC > 0.8: এটি ভাল পারফরম্যান্স নির্দেশ করে।
AUC মাপার কোড উদাহরণ:
from sklearn.metrics import roc_auc_score
# AUC score
auc_score = roc_auc_score(y_true, y_pred_proba)
print(f'AUC: {auc_score}')
৩. Model Performance Metrics
মডেল পারফরম্যান্স পরিমাপ করার জন্য আরো কিছু গুরুত্বপূর্ণ মেট্রিক্স রয়েছে যা মডেলের সফলতা বা ব্যর্থতা বুঝতে সহায়ক। এগুলি মূলত classification মডেলগুলির জন্য ব্যবহৃত হয়:
৩.1. Accuracy (সঠিকতা)
Accuracy মেট্রিকটি সঠিকভাবে শ্রেণীভুক্ত করা কেসের শতাংশ পরিমাপ করে।
এটি একটি খুব সাধারণ মেট্রিক, তবে এটি ইমব্যালেন্সড ডেটা সেটের জন্য খুব কার্যকরী নয়।
৩.2. Precision (প্রিসিশন)
Precision হল পজিটিভ কেসগুলোর মধ্যে সঠিকভাবে চিহ্নিত পজিটিভ কেসের শতাংশ। এটি ভুল পজিটিভ হ্রাসে সহায়ক।
৩.3. Recall (রিকল) / Sensitivity
Recall বা Sensitivity হল সঠিকভাবে শনাক্ত করা পজিটিভ কেসের শতাংশ। এটি মডেলের সক্ষমতা পরিমাপ করে পজিটিভ কেস শনাক্ত করতে।
৩.4. F1-Score
F1-Score হলো Precision এবং Recall এর একটি সমন্বিত মেট্রিক্স। এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি ইমব্যালেন্সড ডেটাসেটের সাথে কাজ করছেন।
৩.5. Confusion Matrix (কনফিউশন ম্যাট্রিক্স)
Confusion Matrix হল একটি টেবিল যা শ্রেণীকরণের ফলাফলকে তুলে ধরে এবং আপনাকে মডেলের সঠিকতা, ভুল, পজিটিভ এবং নেগেটিভ কেসগুলো চিহ্নিত করতে সহায়ক।
from sklearn.metrics import confusion_matrix
# কনফিউশন ম্যাট্রিক্স
cm = confusion_matrix(y_true, y_pred)
print(cm)
৩.6. Log Loss (লগ লস)
Log Loss হল একটি মেট্রিক যা মডেলের ক্লাসিফিকেশন ভুলের পরিমাণ পরিমাপ করে। এটি সাধারণত classification problems এর জন্য ব্যবহৃত হয় যেখানে প্রোবাবিলিটি ব্যবহার করা হয়।
সারাংশ
ROC-AUC Curve এবং Model Performance Metrics (যেমন Accuracy, Precision, Recall, F1-Score) হল মডেলের কার্যকারিতা পরিমাপ করার গুরুত্বপূর্ণ টুল। ROC Curve মডেলের পারফরম্যান্সের একটি ভিজ্যুয়াল রিপ্রেজেন্টেশন প্রদান করে, যেখানে AUC হল সেই কিউরভের নিচে থাকা এলাকা, যা মডেলের সাধারণ দক্ষতা প্রদর্শন করে। অন্যান্য পারফরম্যান্স মেট্রিক্স যেমন Precision, Recall, এবং F1-Score ব্যবহার করে মডেলের পারফরম্যান্স আরও বিস্তারিতভাবে বিশ্লেষণ করা যায়।
Read more