পাঠ ২৮ · ৩০-এর মধ্যে · মডিউল ৩
Home / AI Courses / AI Foundations / মূল্যায়ন মেট্রিক

মডেলের সফলতা কীভাবে মাপি

How we measure model success — metrics
৯ মিনিট পড়া মাঝারি · Intermediate Python কোডসহ

এই পাঠে যা শিখবেন

  • Confusion Matrix — Classification মেট্রিকের ভিত্তি
  • Accuracy, Precision, Recall, F1 — কোনটি কখন
  • ROC ও AUC — Threshold-নিরপেক্ষ মূল্যায়ন
  • Regression-এ MAE, MSE, RMSE, R²
  • Multi-class Macro vs Micro average

১ · Accuracy যথেষ্ট নয় কেন?

Accuracy = সঠিক উত্তরের অনুপাত। সরল এবং স্বজ্ঞাত। কিন্তু imbalanced ডেটায় অত্যন্ত বিভ্রান্তিকর।

উদাহরণ

একটি ক্যান্সার-ডিটেক্টর। জনসংখ্যার ১% ক্যান্সার রোগী। AI সবাইকে "ক্যান্সার নেই" বলল — accuracy ৯৯%! কিন্তু একজন রোগীও ধরা পড়ল না। একদম অকেজো।

Accuracy ভালো শুধু যখন সব ক্লাস সমান গুরুত্বপূর্ণ এবং ডেটা balanced. অন্যথায় — অন্য মেট্রিক বাছুন।

২ · Confusion MatrixConfusion Matrixactual বনাম predicted ক্লাসের ২x২ (binary) বা NxN (multi-class) ছক — TP, TN, FP, FN আলাদা দেখায়। প্রায় সব classification metric এই ছক থেকে বের হয়। — সব Classification metric-এর মা

Binary classification-এ — actual ও predicted-এর ৪টি সম্ভাবনা:

Predicted: Positive Predicted: Negative
Actual: Positive TP
True Positive
FN
False Negative
Actual: Negative FP
False Positive
TN
True Negative
  • TPTP · True Positiveমডেল "positive" বলেছে এবং সত্যিই positive — সঠিক শনাক্তকরণ।: সঠিকভাবে Positive বলেছে।
  • TNTN · True Negativeমডেল "negative" বলেছে এবং সত্যিই negative — সঠিকভাবে নেতিবাচক।: সঠিকভাবে Negative বলেছে।
  • FPFP · False Positiveমডেল "positive" বলেছে কিন্তু আসলে negative — false alarm. Spam filter-এ জরুরি মেইলকে spam বলার মতো।: Negative-কে ভুলে Positive বলেছে (false alarm, Type I errorType I errorStatistics-এ false positive. True null hypothesis reject করা — যেমন সুস্থ মানুষকে রোগী বলা। Significance level $\alpha$ এই error rate control করে।)।
  • FNFN · False Negativeমডেল "negative" বলেছে কিন্তু আসলে positive — মিস। ক্যান্সার-শনাক্তকরণে রোগীকে "সুস্থ" বলার মতো বিপজ্জনক।: Positive-কে মিস করেছে (Type II error)।

৩ · Confusion Matrix থেকে ৪টি মেট্রিক

Accuracy

$$\text{Accuracy} = \dfrac{TP + TN}{TP + TN + FP + FN}$$

"কতটা ঠিক বলেছে"

Precision

$$\text{Precision} = \dfrac{TP}{TP + FP}$$

"যাদের Positive বলেছি — তাদের কতজন আসলেই Positive?" (False alarm-এ গুরুত্ব)

Recall (Sensitivity)

$$\text{Recall} = \dfrac{TP}{TP + FN}$$

"যারা আসলে Positive — তাদের কতজন ধরতে পেরেছি?" (Miss-এ গুরুত্ব)

F1 Score

$$F_1 = 2 \cdot \dfrac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}$$

Precision ও Recall-এর harmonic mean — দু'টোই কম থাকলে F1 কম। Imbalanced ডেটায় সবচেয়ে নির্ভরযোগ্য single number.

৪ · Precision বনাম Recall — কখন কোনটি গুরুত্বপূর্ণ?

নিয়ম

False Positive বেশি costly? → Precision-এ ফোকাস।
False Negative বেশি costly? → Recall-এ ফোকাস।

উদাহরণ ১ — Spam Filter

FP: জরুরি ই-মেইল spam-এ চলে গেলে — গ্রাহক হারানোর সম্ভাবনা।
FN: spam ইনবক্সে এলে — বিরক্তিকর কিন্তু সহনীয়।
→ Precision বেশি গুরুত্বপূর্ণ।

উদাহরণ ২ — ক্যান্সার শনাক্তকরণ

FP: সুস্থ মানুষকে ভুলে রোগী বলেছে — অতিরিক্ত পরীক্ষা, কিন্তু জীবন সংশয় নেই।
FN: রোগীকে মিস করেছে — মৃত্যু হতে পারে।
→ Recall বেশি গুরুত্বপূর্ণ।

উদাহরণ ৩ — fraud detection

সাধারণত — দু'টোই গুরুত্বপূর্ণ। F1 বা even একটু balanced দেখুন।

কোন Metric কখন? — Decision Tree "Right metric for right cost" কী predict করছেন? classification or regression? Classification (Yes/No, A/B/C) Imbalanced? → don't trust accuracy Regression (number) Continuous output: price, age কোন error costly? FP vs FN — business impact FP costly → Precision spam, ad-click দু'টোই matter → F1 / PR-AUC fraud, churn FN costly → Recall cancer, fire Threshold-free? → ROC-AUC বা PR-AUC model scoring quality, not cutoff Multi-class? → Macro-F1 (imbalanced) বা Micro per-class performance vs overall Outlier-এর impact? treat large errors specially? Outlier OK → MAE interpretable Penalize big → MSE / RMSE for ML training Variance explained → R² 0 = baseline, 1 = perfect, <0 = worse than mean Relative error → MAPE % error, scale-free ⚠ Single metric never tells full story — always view multiple, plus qualitative analysis.
Metric choice = business cost analysis. ভুল metric = সঠিক optimization, ভুল লক্ষ্য।

৫ · ROC Curve ও AUC

Classification মডেল প্রায়ই একটি probability দেয় (যেমন ০.৭৫)। আমরা একটি threshold বেছে — উপরে হলে Positive বলি। Threshold বদলালে — Precision/Recall বদলায়।

ROC CurveROC Curve · Receiver Operating Characteristicবিভিন্ন threshold-এ True Positive Rate বনাম False Positive Rate-এর গ্রাফ। Threshold-নিরপেক্ষভাবে মডেলের ranking quality বুঝতে। = বিভিন্ন threshold-এ True Positive Rate (Recall) বনাম False Positive Rate-এর গ্রাফ।

AUC (Area Under Curve) = এই curve-এর নিচে এলাকা। ০ থেকে ১। ১ মানে নিখুঁত মডেল। ০.৫ মানে এলোমেলো।

PR-AUC vs ROC-AUC: Imbalanced ডেটায় PR-AUC বেশি informative — ROC-AUC overoptimistic হতে পারে।

৬ · Python-এ Classification Metrics

Python · Confusion matrix থেকে metrics
import numpy as np

# Actual labels (1 = Positive, 0 = Negative)
y_true = np.array([1, 0, 1, 1, 0, 1, 0, 0, 1, 0,
                   1, 0, 0, 1, 0, 0, 1, 1, 0, 1])
# Model predictions
y_pred = np.array([1, 0, 1, 0, 0, 1, 1, 0, 1, 0,
                   1, 1, 0, 0, 0, 0, 1, 1, 1, 1])

# Confusion matrix manually
TP = np.sum((y_true == 1) & (y_pred == 1))
TN = np.sum((y_true == 0) & (y_pred == 0))
FP = np.sum((y_true == 0) & (y_pred == 1))
FN = np.sum((y_true == 1) & (y_pred == 0))

print(f"TP={TP}, TN={TN}, FP={FP}, FN={FN}")

accuracy  = (TP + TN) / (TP + TN + FP + FN)
precision = TP / (TP + FP) if TP + FP > 0 else 0
recall    = TP / (TP + FN) if TP + FN > 0 else 0
f1 = 2 * precision * recall / (precision + recall) if precision + recall > 0 else 0

print(f"\nAccuracy:  {accuracy:.4f}")
print(f"Precision: {precision:.4f}")
print(f"Recall:    {recall:.4f}")
print(f"F1 Score:  {f1:.4f}")

    
Accuracy ০.৭০ ভালো লাগলেও — Precision ও Recall দেখলে আরও ভেতরে যাওয়া যায়। FP ৩ (সুস্থকে ভুল বলেছে), FN ৩ (রোগীকে মিস)।

৭ · Multi-class — Macro বনাম Micro Average

৩+ ক্লাসে — প্রতিটি ক্লাসের জন্য আলাদা precision/recall. সারসংক্ষেপ করার দু'টি উপায় —

  • Macro: প্রতিটি ক্লাসের মেট্রিক বের করে গড়। প্রতিটি ক্লাস সমান গুরুত্বপূর্ণ।
  • Micro: সব TP/FP/FN একসাথে যোগ করে গণনা। বড় ক্লাসগুলো বেশি প্রভাব ফেলে।
  • Weighted: ক্লাস-আকারের ভিত্তিতে ওজনযুক্ত গড়।

Imbalanced ডেটায় — সাধারণত Macro F1 ভালো, কারণ ছোট ক্লাসকে উপেক্ষা করে না।

৮ · Regression-এর Metrics

সংখ্যা পূর্বাভাসের জন্য — different metric:

MAEMAE · Mean Absolute Errorpredicted ও actual-এর পরম পার্থক্যের গড়। মূল এককেই থাকে — ব্যাখ্যা সহজ। outlier-এ MSE-র মতো অতি-সংবেদনশীল নয়। — Mean Absolute Error

$$\text{MAE} = \dfrac{1}{n}\sum_{i=1}^{n} |y_i - \hat{y}_i|$$

সরাসরি গড় error — ব্যাখ্যা সহজ। "গড়ে ৫ লক্ষ টাকা ভুল"।

MSEMSE · Mean Squared Errorerror-এর বর্গের গড়। বড় ভুলকে অনেক বড় penalty দেয়। smooth ও differentiable — regression training-এর প্রিয় loss. — Mean Squared Error

$$\text{MSE} = \dfrac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2$$

বড় error-কে অনেক বড় penalize করে। Differentiable — তাই ML training-এ loss.

RMSE — Root MSE

$$\text{RMSE} = \sqrt{\text{MSE}}$$

Original একক ফিরিয়ে আনে। সবচেয়ে বেশি ব্যবহৃত।

R²R² · R-squared / Coefficient of Determinationমডেল target-এর variance-এর কত শতাংশ ব্যাখ্যা করে। ১ = নিখুঁত, ০ = mean predict-এর সমান, <০ = তার চেয়েও খারাপ। (Coefficient of Determination)

$$R^2 = 1 - \dfrac{\sum (y_i - \hat{y}_i)^2}{\sum (y_i - \bar{y})^2}$$

"আমার মডেল targeted variance-এর কত শতাংশ ব্যাখ্যা করে?" — ০ থেকে ১। ১ মানে নিখুঁত। <০ মানে — গড় predict-ও তুলনায় খারাপ।

Python · Regression metrics
import numpy as np

# বাড়ির সত্য দাম (লক্ষ টাকা) ও মডেলের পূর্বাভাস
y_true = np.array([75, 90, 45, 110, 65, 85, 70])
y_pred = np.array([72, 95, 40, 105, 70, 80, 78])

mae  = np.mean(np.abs(y_true - y_pred))
mse  = np.mean((y_true - y_pred) ** 2)
rmse = np.sqrt(mse)

# R²
ss_res = np.sum((y_true - y_pred) ** 2)
ss_tot = np.sum((y_true - y_true.mean()) ** 2)
r2 = 1 - ss_res / ss_tot

print(f"MAE  = {mae:.2f} লক্ষ টাকা")
print(f"MSE  = {mse:.2f}")
print(f"RMSE = {rmse:.2f} লক্ষ টাকা")
print(f"R²   = {r2:.4f}")

    
MAE বলবে গড়ে কত টাকা ভুল। RMSE-এ outlier-এর প্রভাব বেশি। R² ০.৮ মানে — variance-এর ৮০% ব্যাখ্যা করেছে।

৯ · Beyond Numbers — Qualitative মূল্যায়ন

সংখ্যা সব নয়। বাস্তব AI-তে কয়েকটি বিষয়ও দেখুন —

  • Failure analysis: মডেল কোথায় কোথায় ভুল করছে — pattern আছে কি?
  • Bias check: বিভিন্ন গোষ্ঠীতে accuracy কি একই?
  • Edge case test: অস্বাভাবিক input-এ কী করে?
  • User study: বাস্তব ব্যবহারকারীরা কী ভাবেন?
  • LatencyLatencyএকটি input-এর উত্তর পেতে যত সময় লাগে। Real-time AI (চ্যাটবট, search)-এ critical metric — ms-এ মাপা হয়।: উত্তর দিতে কত সময়?
  • Cost: InferenceInferencetrain-শেষ মডেল ব্যবহার করে নতুন input-এ prediction বের করার ধাপ। Production AI-র চলমান কাজ — training একবার, inference লক্ষ-কোটি বার।-এ কত টাকা প্রতি কল?
একটি AI সিস্টেমকে শুধু একটি সংখ্যায় (যেমন ৯২% accuracy) সংকোচিত করা — অমার্জনীয় সরলীকরণ। সবসময় একাধিক মেট্রিক, একাধিক context-এ দেখুন।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ "ROC-AUC ০.৯০" — শুনে অনেকে impressed. কিন্তু imbalanced ডেটায় এটা misleading. কেন PR-AUC তুলনায় better? কখন কোনটি দেখবেন?

এই subtlety — ML-এ underrated অথচ critical. ROC-AUC সব দেখলে production AI অনেক ভুলে পড়ে।

(১) ROC Curve বনাম PR Curve:

  • ROC: TPR (Recall) vs FPR — y-axis recall, x-axis false alarm rate.
  • PR: Precision vs Recall — y-axis precision, x-axis recall.
  • দু'টি curve = same data, different perspective.

(২) Imbalance-এর প্রভাব:

  • ৯৯% Negative, ১% Positive (rare disease)।
  • FPR = FP/(FP+TN) — denominator-এ TN বিশাল।
  • FP যতই বাড়ুক — FPR ছোট থাকে (TN dominant)।
  • ROC curve "ভাল" দেখায় — false sense of security.

(৩) Concrete উদাহরণ:

  • Dataset: ১,০০০ negative, ১০ positive.
  • Model predicts top 50 as positive: ৫টি correct, ৪৫টি wrong.
  • FPR = 45/1000 = 0.045 — looks good.
  • Precision = 5/50 = 0.10 — looks bad!
  • একই model, দু'টি দৃষ্টি।

(৪) যখন ROC-AUC ভাল:

  • Balanced classes (50-50)।
  • Both classes equally important.
  • Standard benchmark comparison.

(৫) যখন PR-AUC জরুরি:

  • Imbalanced (rare positive class)।
  • Positive class বেশি important.
  • Information retrieval (search, recommendations)।
  • Anomaly/fraud detection.
  • Disease detection (rare condition)।

(৬) Random baseline:

  • ROC: random model = 0.5 (universal)।
  • PR: random = positive class proportion (varies!)।
  • ৫% positive → random PR-AUC = 0.05 only.
  • PR-AUC 0.30 = ৬x improvement (impressive)।

(৭) Visualization clarity:

  • ROC curve quickly approaches top-left → overoptimistic.
  • PR curve dramatic shape changes → real trade-off visible.
  • Stakeholder communication-এ PR clearer.

(৮) Production decision making:

  • Threshold selection on PR curve.
  • "How many false alarms can we tolerate?" → precision target.
  • "How many cases can we miss?" → recall target.
  • F-beta score: $F_\beta = (1+\beta^2) \cdot \frac{P \cdot R}{\beta^2 P + R}$।
  • $\beta = 2$: recall 2x weight; $\beta = 0.5$: precision 2x.

(৯) Practical scenarios:

  • Spam filter: PR-AUC critical (don't lose important mails)।
  • Medical screening: Both — maximize recall under precision constraint.
  • Recommendation: PR-AUC at top-k (precision@10)।
  • Search: Precision@k, NDCG.

(১০) Calibration matters:

  • Probability score-গুলো actually probability নাই হতে পারে।
  • Reliability diagram check.
  • Calibrated হলে — threshold selection meaningful.

(১১) Common mistakes:

  • Reporting only ROC-AUC on imbalanced data.
  • Comparing models across different class balances.
  • Ignoring per-class metrics.
  • Single point on curve (single threshold) only.

(১২) Bangladesh use cases:

  • Health screening (TB, cancer): PR-AUC primary, ROC secondary.
  • Loan default: Imbalanced, PR-AUC + business cost-aware.
  • Pirated content detection: Few positives, PR critical.
  • Crop disease: Rare disease classes, macro-F1.

মূল উপলব্ধি: Single number metric — illusion. Imbalanced ডেটায় ROC-AUC misleading, PR-AUC honest. Always context-aware metric choice. Senior ML engineer = knows which to trust when.

প্র ০২ "আমার model 92% accurate" — boss-এর কাছে গর্বে বলবেন? Senior ML engineer প্রথম যে ৫টি প্রশ্ন করবেন আপনাকে?

এই question — ML engineer-এর maturity test. জুনিয়র "wow" বলে; senior interrogate করেন।

প্রশ্ন ১: "Class distribution কী?"

  • ৯২% accuracy + ৯২% majority class = useless model.
  • Class imbalance prove or refute.
  • Always confusion matrix demand.

প্রশ্ন ২: "Test set কেমন? কতবার দেখেছ?"

  • Hold-out test? Cross-validation?
  • Single eval বা multiple?
  • Test set leakage check হয়েছে?
  • Group/time split correct?

প্রশ্ন ৩: "Per-class performance কী?"

  • Class A: 99%, Class B: 50% — overall 92% misleading.
  • Per-class precision, recall, F1.
  • Failure modes identify.

প্রশ্ন ৪: "Baseline-এর সাথে compare করেছ?"

  • Random predictor: ৫০%।
  • Always-majority: ৭০%? ৮০%?
  • Simple logistic regression baseline?
  • Improvement Δ — meaningful?

প্রশ্ন ৫: "Production environment কেমন?"

  • Latency requirement?
  • Memory/cost?
  • Real-world distribution = test distribution?
  • Domain shift expected?

আরও গভীর প্রশ্ন:

  • "Confidence interval কী?" — point estimate vs range.
  • "Calibration কেমন?" — probability scores trustworthy?
  • "Bias subgroups-এ কেমন?" — fairness check.
  • "Adversarial robustness?" — small perturbation-এ কেমন?
  • "Failure mode catalog?" — কোথায় কেন ভুল?

Common red flags:

  • "৯৯% accuracy" — leakage সন্দেহ।
  • "একটি single number" — incomplete picture.
  • "Baseline নাই" — improvement unmeasured.
  • "Test set ৫০ samples" — variance high.
  • "Train accuracy ৯৯%, test ৯২%" — overfit warning.

Stakeholder communication:

  • Boss-এর কাছে যাবার আগে — পুরো picture প্রস্তুত।
  • Confusion matrix, per-class metrics, baseline comparison.
  • Honest discussion of limitations.
  • Future improvement plan.

Practical communication:

  • "৯২% overall accuracy" — start with context.
  • "Class A: 95%, B: 88%" — granular.
  • "Baseline 70%, our 92% — 22% absolute improvement"।
  • "Test on 10,000 examples, 95% CI: 91.5-92.5%"।
  • Deployment recommendation.

Anti-pattern:

  • "৯২% — let's deploy!" — premature.
  • Single experiment, no replication.
  • Cherry-picked test set.
  • Hyperparameter tuned on test set.

মূল উপলব্ধি: Single number — ML communication-এর সবচেয়ে dangerous habit. ৯২% — meaningless without context. Senior engineer পাঁচটি query চালিয়ে decompose করেন। Junior to senior transition = thinking in distributions, not points.

প্র ০৩ "Calibration" — model-এর probability score কতটা trustworthy. কেন important? Modern Deep Learning models কেন প্রায়ই overconfident? কীভাবে fix?

Calibration — production AI safety-র key topic. Confidence score actually probability হলেই decision-making সুন্দর। Modern DL এই দিকে problematic.

(১) Calibration কী?

  • Model predicts 80% confidence → 80% of those should actually be positive.
  • Perfect calibration: prediction = actual probability.
  • Miscalibration: 90% confidence কিন্তু actual 60% — overconfident.

(২) কেন important?

  • Decision making — confidence threshold-এ depend করে।
  • Risk assessment — wrong probability = wrong risk.
  • Human-AI collaboration — trust calibrated AI.
  • Uncertainty quantification — production critical.

(৩) Reliability Diagram:

  • x-axis: predicted probability bin.
  • y-axis: actual fraction positive.
  • Diagonal = perfect calibration.
  • Above = underconfident, below = overconfident.

(৪) Expected Calibration Error (ECE):

  • Bins-এ predictions ভাগ।
  • Each bin: |avg predicted - avg actual|।
  • Weighted by bin size.
  • 0 = perfect, higher = worse.

(৫) Modern DL overconfident কেন?

  • Cross-entropy loss পুশ করে probability extremes-এ (0 or 1)।
  • Network capacity বিশাল — train data-এ overfit.
  • Batch normalization, dropout — calibration disturb.
  • Guo et al. (2017): "On Calibration of Modern Neural Networks" — ResNet, DenseNet সবই miscalibrated.

(৬) Calibration techniques:

  • Platt Scaling:
    • Sigmoid fit on logits.
    • $P = \sigma(a \cdot z + b)$।
    • Validation set-এ optimize.
  • Temperature Scaling:
    • Single parameter $T$।
    • $P_i = \text{softmax}(z_i / T)$।
    • $T > 1$: smoother distribution.
    • Simple, effective for DL.
  • Isotonic Regression:
    • Non-parametric monotonic mapping.
    • More flexible than Platt.
    • Need more data.

(৭) Implementation:

import numpy as np
from scipy.optimize import minimize

# Temperature scaling
def cross_entropy(T, logits, labels):
    probs = softmax(logits / T)
    return -np.mean(np.log(probs[range(len(labels)), labels] + 1e-9))

result = minimize(cross_entropy, x0=1.0, args=(val_logits, val_labels))
T = result.x[0]
# Apply T at inference time

(৮) Beyond Calibration — Uncertainty:

  • Aleatoric: data noise — irreducible.
  • Epistemic: model uncertainty — reducible with data.
  • MC Dropout — কম খরচে Bayesian approximation.
  • Ensemble — multiple models, variance = uncertainty.

(৯) Production examples:

  • Self-driving: brake decision threshold calibrated.
  • Medical: triage based on confidence.
  • Loan approval: probability of default = expected loss.
  • Content moderation: high-confidence auto-action, low → human review.

(১০) Conformal Prediction:

  • Distribution-free uncertainty.
  • "95% prediction interval" guaranteed.
  • Modern alternative to calibration.

(১১) LLM context:

  • Hallucination = miscalibrated confidence.
  • "Self-confidence" assessment hard.
  • Anthropic, OpenAI research: instruct LLM to express uncertainty.
  • Token probability ≠ semantic certainty.

(১২) Bangladesh context:

  • Medical AI: calibration কঠিনভাবে required.
  • Bangla NLP: limited data — uncertainty wider.
  • Public-facing AI: "I don't know" allowed কি না?
  • Educational tool: confidence display students-কে।

(১৩) Common mistakes:

  • Threshold selection without calibration check.
  • Probability-as-truth in downstream pipelines.
  • Calibration on test set (cheating)।
  • Single calibration globally — should be per-class.

মূল উপলব্ধি: Confident wrong > uncertain right — false. Calibration = honest AI. ৯০% confidence-এ ৯০% accuracy — production trust-এর foundation. Modern DL miscalibration default — fix-এর effort price-of-deployment.

প্র ০৪ "Bias detection" — different demographic-এ accuracy আলাদা। কীভাবে measure? Fairness metrics কী? Bangladesh AI deployment-এ এটা কেন critical?

Algorithmic fairness — modern AI ethics-এর core. Production AI deploy করতে গেলে fairness audit required (অনেক jurisdiction-এ legal mandate)।

(১) Bias-এর source:

  • Historical bias: Past data-এ society-এর bias embedded.
  • Sampling bias: কিছু group underrepresented.
  • Label bias: Annotators-এর implicit bias.
  • Algorithmic bias: Optimization artifacts.
  • Deployment bias: Different group-এ different usage pattern.

(২) Fairness Metrics — Group:

  • Demographic Parity:
    • $P(\hat{Y}=1 | A=0) = P(\hat{Y}=1 | A=1)$।
    • সব group-এ equal positive rate.
    • সমস্যা: ground truth ভিন্ন হলে problematic.
  • Equal Opportunity:
    • $P(\hat{Y}=1 | Y=1, A=0) = P(\hat{Y}=1 | Y=1, A=1)$।
    • সব group-এ equal recall.
    • True positive-এ fairness.
  • Equalized Odds:
    • Equal opportunity + equal FP rate.
    • Stronger constraint.
  • Calibration parity:
    • সব group-এ same calibration.
    • Probability score equally meaningful.

(৩) Individual Fairness:

  • "Similar individuals → similar predictions"।
  • Distance-based formalization.
  • Group fairness-এর সাথে tension.

(৪) Impossibility theorem:

  • Chouldechova (২০১৭), Kleinberg (২০১৬): সব fairness criteria simultaneously satisfy অসম্ভব।
  • Trade-off explicit হতে হবে।
  • Context-specific choice.

(৫) Detection workflow:

  1. Protected attributes identify (age, gender, location, religion)।
  2. Per-group metrics calculate.
  3. Statistical significance test.
  4. Practical significance assess.
  5. Disaggregated reporting.

(৬) Tools:

  • Fairlearn (Microsoft): Python library.
  • AI Fairness 360 (IBM): Comprehensive toolkit.
  • What-If Tool (Google): Interactive analysis.
  • Aequitas: Bias audit reports.

(৭) Mitigation strategies:

  • Pre-processing:
    • Reweighting samples.
    • Disparate impact remover.
    • Sampling strategies.
  • In-processing:
    • Fairness-constrained optimization.
    • Adversarial debiasing.
    • Multi-objective loss.
  • Post-processing:
    • Threshold adjustment per group.
    • Calibration per group.
    • Output transformation.

(৮) Famous failure cases:

  • COMPAS (criminal recidivism): black defendants-এর FP rate বেশি।
  • Amazon hiring: men preferred (২০১৮ scrapped)।
  • Apple Card: women lower credit limits.
  • Healthcare AI: less care recommended for black patients.

(৯) LLM fairness:

  • Stereotype amplification.
  • Toxicity towards minorities.
  • Representation gaps.
  • RLHF helps but doesn't solve.

(১০) Bangladesh-specific concerns:

  • Religion bias:
    • Name-based discrimination.
    • Loan approval, hiring.
    • Sensitive attribute → বিশেষ care.
  • Gender:
    • Workplace AI — female underrepresentation.
    • Health AI — pregnancy bias.
  • Geographic:
    • Dhaka vs rural — service quality.
    • Hill tracts populations underrepresented.
  • Disability:
    • Accessibility consideration.
    • Speech recognition — speech impairment.
  • Socioeconomic:
    • Education level proxies.
    • Access to digital services.

(১১) Legal landscape:

  • EU AI Act (২০২৪): high-risk AI fairness audit required.
  • US: Equal Credit Opportunity Act, Fair Housing Act.
  • Bangladesh: Data Protection Act ২০২৩।
  • Industry standards evolving.

(১২) Practical advice:

  • Diverse team — different perspectives catch bias.
  • Stakeholder consultation.
  • Continuous monitoring (not one-time check)।
  • Transparent reporting.
  • Easy redress for affected users.

(১৩) Future directions:

  • Causal fairness frameworks.
  • Counterfactual fairness.
  • Long-term fairness dynamics.
  • Participatory ML — community involvement.

মূল উপলব্ধি: Accuracy alone insufficient. Disaggregated, fair-aware metrics — production AI minimum. বাংলাদেশের সমাজ-বৈচিত্র্যে — bias detection extra critical. ভাল ML engineer accuracy চান, দারুণ ML engineer accuracy + fairness চান। নৈতিকতা = engineering quality.

অনুশীলন

  1. হিসাব করুন: Confusion matrix — TP=40, FP=10, FN=20, TN=30. Accuracy, Precision, Recall, F1 বের করুন।
    • Total = 40+10+20+30 = 100.
    • Accuracy = (40+30)/100 = 0.70 (70%)।
    • Precision = 40/(40+10) = 40/50 = 0.80 (80%)।
    • Recall = 40/(40+20) = 40/60 = 0.667 (67%)।
    • F1 = 2 · (0.80 × 0.667)/(0.80 + 0.667) = 1.067/1.467 ≈ 0.727।

    ব্যাখ্যা: Recall (67%) বেশ কম — 60টি actual positive-এর 20টি missed. যদি FN-এর খরচ বেশি হয় (যেমন cancer), তাহলে threshold কমিয়ে recall বাড়াতে হবে।

  2. সিদ্ধান্ত নিন: এই পরিস্থিতিগুলোতে কোন metric বেশি গুরুত্বপূর্ণ?
    • একটি বিচার-আদালতের জন্য সম্ভাব্য অপরাধী চেনা
    • সিনেমার জন্য recommendation
    • বিমানের ত্রুটি আগে ধরা
    • আদালত (অপরাধী চেনা): Precision বেশি গুরুত্বপূর্ণ। FP = নিরপরাধকে অপরাধী বলা — অমার্জনীয় অবিচার। "নিরপরাধকে সাজা না দেওয়াই বেশি গুরুত্বপূর্ণ অপরাধী মুক্ত হওয়ার চেয়ে" (Blackstone's ratio)। তবু — fairness across communities equally critical.
    • সিনেমা recommendation: দু'টোই matter, কিন্তু Precision@K (top-10 suggestion-এ কতটা ভাল) main metric. Click-through rate, watch-completion rate. Recall-এ obsess করা লাগে না — সব movie suggest করা impossible.
    • বিমান ত্রুটি: Recall অত্যন্ত গুরুত্বপূর্ণ। FN = ত্রুটি miss = catastrophic loss. FP (false alarm → inspection) আশঙ্কাজনক না — checking cost << crash cost. Recall ৯৯%+ target, precision যতটা reasonable.
  3. চিন্তা করুন: একজন ML প্রকৌশলী বললেন তার মডেল ৯৮% accurate. আপনি প্রথম যে ৩টি প্রশ্ন করবেন?
    1. "Class distribution কী? Test set-এ majority class কত শতাংশ?" — যদি majority ৯৭% হয়, ৯৮% accuracy = baseline + 1%, almost useless.
    2. "Per-class performance show করো — confusion matrix?" — overall ৯৮% কিন্তু rare class-এ ০% recall হতে পারে।
    3. "Test set কীভাবে split করেছ? Leakage check কী?" — group/time/duplicate leakage সম্ভব। ৯৮% accuracy সাধারণত suspect.

    আরও follow-up: Cross-validation করেছ? Baseline-এর সাথে compare? Production environment match? Confidence interval? ৩০ second-এ ১০টি প্রশ্ন।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ।
পূর্ববর্তী পাঠ
পাঠ ২৭ · ডেটাসেট