কনফিউশন ম্যাট্রিক্স (Confusion Matrix)
ধরা যাক, আপনার বাসায় একটি ফায়ার অ্যালার্ম (fire alarm) রয়েছে। এটি মূলত এই চারটি কাজ করতে পারে:
- ট্রু পজিটিভ (True Positive বা TP) — সত্যিই আগুন লেগেছে এবং অ্যালার্মটি বেজে উঠেছে। পারফেক্ট। এটিই মূলত আপনার চাওয়া ছিল।
- ট্রু নেগেটিভ (True Negative বা TN) — কোথাও কোনো আগুন নেই এবং কোনো অ্যালার্মও বাজেনি। এটাও পারফেক্ট বা ঠিক আছে। খুব সুন্দর শান্ত একটি রাত।
- ফলস পজিটিভ (False Positive বা FP) — আপনি শুধু পাউরুটি বা টোস্ট পোড়াচ্ছিলেন, আর ফলস্বরূপ রাত ৩টায় খামোখাই অ্যালার্মটি চিৎকার করে বেজে উঠলো। এটি অনেক বিরক্তিকর একটি জিনিস হলেও, এতে অন্তত আপনি বেঁচে আছেন।
- ফলস নেগেটিভ (False Negative বা FN) — সত্যি সত্যিই আগুন লেগেছে, কিন্তু এখানকার ফায়ার অ্যালার্মটি তখনও চুপ করে আছে। আর আপনি ঘুমিয়ে আছেন। এটি হলো সবচেয়ে ভয়ংকর অবস্থা বা ওয়ার্স্ট কেস (worst case)।
কনফিউশন ম্যাট্রিক্স (confusion matrix) হলো এমন একটি টেবিল যেখানে মূলত আপনার মডেলটি কোন ধরনের প্রেডিকশন বা অনুমান কতবার করেছে, সেগুলোর হিসাব রাখা হয়। এটিকে 'কনফিউশন' বলা হয় কারণ এটি আপনাকে ঠিক এ কথাটিই জানিয়ে দেয় যে, আপনার মডেলটি আসলে ঠিক কোন জায়গাতে গিয়ে কনফিউজড (confused) বা বিভ্রান্ত হচ্ছে。
ম্যাট্রিক্সটি (matrix) পড়ার নিয়ম
একটি বাইনারি ক্লাসিফায়ারের (binary classifier) (যেমন: ফায়ার/নো-ফায়ার) ক্ষেত্রে কনফিউশন ম্যাট্রিক্স মূলত একটি 2×2 গ্রিড (grid) বা টেবিল হয়:
| প্রেডিক্টেড (Predicted): আগুন আছে (Fire) | প্রেডিক্টেড (Predicted): আগুন নেই (No Fire) | |
|---|---|---|
| আসল (Actual): আগুন আছে (Fire) | TP (সঠিক অ্যালার্ম) | FN (আগুন মিস করেছে!) |
| আসল (Actual): আগুন নেই (No Fire) | FP (ফলস বা ভুয়া অ্যালার্ম) | TN (শান্ত ও নিরাপদ রাত) |
এখান থেকে আসা মেট্রিক্সগুলো (The metrics that flow from it)
- অ্যাকুরেসি (Accuracy) = (TP + TN) / Total — আপনি সবমিলিয়ে কতবার সঠিক হয়েছেন বা মডেলটি কতটা সঠিক হয়েছে
- প্রিসিশন (Precision) = TP / (TP + FP) — আপনি যখন "আগুন (fire)" বলেন, তখন সেটি আসলেই কতটা সত্যি থাকে?
- রিকল (Recall) = TP / (TP + FN) — সত্যিকারের আগুনের মধ্যে, আপনি ঠিক কতটা কভার করতে বা ধরতে পেরেছেন?
- F1 স্কোর (F1 Score) = 2 × (Precision × Recall) / (Precision + Recall) — এটি মূলত প্রিসিশন এবং রিকলের হারমোনিক মিন (harmonic mean) বা গড়
ফায়ার অ্যালার্মের ক্ষেত্রে রিকলই (recall) সবচেয়ে বেশি গুরুত্বপূর্ণ। কারণ একটি আসল আগুন মিস করার চেয়ে বরং আপনার ১০ বার ফলস বা ভুয়া অ্যালার্ম শোনা ভালো, এতে করে অন্তত আপনার জীবন বেঁচে যাবে।
কনফিউশন ম্যাট্রিক্স (Confusion Matrix) তৈরি করা
যখন অ্যাকুরেসি (accuracy) মিথ্যে প্রমাণ হয়
ভাবুন তো, একটি এয়ারপোর্টের নিরাপত্তায় ১,০০০ জন মানুষ পার হচ্ছে। তাদের মধ্যে মাত্র ২ জনের কাছে খুবই বিপজ্জনক কিছু আছে। তখন এক ফাঁকিবাজ ডিটেক্টর (detector) বা মডেল বললো "এখানে কেউই বিপজ্জনক নয় (nobody is dangerous)", আর এতে করে সে 998/1000 = ৯৯.৮% অ্যাকুরেসি (99.8% accuracy) নিয়ে পাস করে গেলো। শুনে এটা দারুণ মনে হলেও — এটি দুটো আসল হুমকি বা ডেঞ্জারকে পুরোপুরি মিস করেছে। আর এক্ষেত্রে এর রিকল (recall) হলো ০% (0%)।
ঠিক এই কারণেই মূলত কনফিউশন ম্যাট্রিক্সের (confusion matrix) জন্ম হয়েছে। ভারসাম্যহীন বা ইমব্যালেন্সড ডেটাসেটগুলোর (imbalanced datasets) ক্ষেত্রে শুধুমাত্র অ্যাকুরেসির ওপর নির্ভর করা খুবই বিপজ্জনক。 এজন্য আপনাকে পুরো পরিস্থিতিটা দেখতে হবে: আপনার মডেলটি আসলে ঠিক কোন জায়গায় গিয়ে ফেইল বা ব্যর্থ হচ্ছে?
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান