Text Analysis Tutorial: Evaluation & Error Analysis
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- fastapi, huggingface, jupyter-notebook, pandas, python, pytorch, scikit-learn
- Ambito
- data, documentation, machine-learning, testing
Direzione di ricerca
Inizia con la struttura proposta di tutorials/t12-eval-error-analysis/, in particolare notebooks/, src/metrics.py, src/error_analysis.py, src/calibration.py, data/README.md e tests/. Segui i requisiti di configurazione e quelli passo per passo per SST-2 o AG News; il lavoro è completato quando il tutorial dimostra metriche riproducibili, calibrazione, analisi degli errori e delle slice, reporting e i test indicati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Title & Overview
Template: Evaluation & Error Analysis: An Intermediate, End-to-End Analysis Tutorial
Overview (≤2 sentences): Learners will design evaluation pipelines that go beyond a single accuracy score, incorporating calibration, confusion analysis, and robustness checks. It is intermediate because it teaches structured error analysis, slice-based evaluation, and reproducibility of metrics.
Purpose
The value-add is building defensible evaluation frameworks that highlight where and why models fail. Learners will explore calibration, error taxonomies, slice-based robustness, and logging reproducible evaluation artifacts for applied NLP projects.
Prerequisites
- Skills: Python, Git, pandas, ML basics (precision/recall/F1).
- NLP: classification, token-level tasks, evaluation metrics (macro/micro F1, AUC).
- Tooling: pandas, scikit-learn, Hugging Face Transformers, torchmetrics/seqeval, MLflow, FastAPI.
Setup Instructions
-
Environment: Conda/Poetry (Python 3.11), deterministic seeds.
-
Install: pandas, scikit-learn, torchmetrics, seqeval, Hugging Face Transformers + Datasets, MLflow, FastAPI.
-
Datasets:
- Small: SST-2 (sentiment classification).
- Medium: AG News (topic classification).
-
Repo layout:
tutorials/t12-eval-error-analysis/ ├─ notebooks/ ├─ src/ │ ├─ metrics.py │ ├─ error_analysis.py │ ├─ calibration.py │ └─ config.yaml ├─ data/README.md ├─ reports/ └─ tests/
Core Concepts
- Metrics granularity: accuracy vs macro/micro F1 vs per-class metrics.
- Calibration: Expected Calibration Error (ECE), reliability curves.
- Error taxonomies: confusion pairs, failure cases, robustness slices.
- Slice-based evaluation: performance by input length, domain, attribute.
- Reproducibility: log metrics, seeds, configs, and confusion matrices.
Step-by-Step Walkthrough
-
Data intake & splits: load SST-2/AG News with reproducible splits.
-
Baseline model predictions: obtain outputs from Logistic Regression and DistilBERT.
-
Metric computation: accuracy, precision, recall, macro/micro F1, AUC (if binary).
-
Calibration analysis: compute ECE, plot reliability curves.
-
Error analysis:
- Confusion matrices (AG News: misclassifications between Sports/World).
- Hardest examples (highest loss).
- Slice performance (short vs long text, with/without punctuation).
-
Reporting: metrics tables, confusion heatmaps, calibration plots, error slices →
reports/t12-eval-error-analysis.md. -
(Optional) Serve: FastAPI endpoint that accepts predictions + labels and returns full evaluation report.
Hands-On Exercises
- Compare micro vs macro F1 for imbalanced datasets.
- Ablations: with vs without calibration; with vs without slice metrics.
- Robustness: test on noisy inputs (typos, domain shift).
- Stretch: implement error taxonomy tags (e.g., ambiguity, OOD, adversarial).
Common Pitfalls & Troubleshooting
- Metrics misuse: reporting accuracy only on imbalanced datasets.
- Over-aggregation: averaging hides poor class-level performance.
- Calibration ignored: models may be accurate but overconfident.
- Silent errors: mislabeled data mistaken for model errors.
- Reproducibility gaps: missing config/logging prevents repeatable analysis.
Best Practices
- Always log confusion matrices, calibration plots, and per-slice metrics.
- Use MLflow for versioned metric artifacts.
- Keep Baseline → Error Analysis narrative.
- Unit tests: ensure metrics consistent under toy datasets.
- Guardrails: raise warnings for zero-division in F1.
Reflection & Discussion Prompts
- Why is macro F1 more informative than accuracy in civic datasets?
- What insights come from calibration beyond precision/recall?
- How would you design slice metrics for fairness-sensitive applications?
Next Steps / Advanced Extensions
- Automate evaluation in CI pipelines.
- Add robustness checks (counterfactuals, adversarial tests).
- Incorporate fairness metrics (demographic parity, equal opportunity).
- Lightweight monitoring: online calibration drift.
Glossary / Key Terms
Accuracy, precision, recall, F1, calibration, ECE, reliability curve, confusion matrix, slice metrics.
Additional Resources
- [scikit-learn metrics](https://scikit-learn.org/stable/modules/model_evaluation.html)
- [torchmetrics](https://torchmetrics.readthedocs.io/)
- [seqeval](https://github.com/chakki-works/seqeval)
- [MLflow](https://mlflow.org/)
- [FastAPI](https://fastapi.tiangolo.com/)
Contributors
Author(s): TBD
Reviewer(s): TBD
Maintainer(s): TBD
Date updated: 2025-09-20
Dataset licenses: SST-2 (GLUE), AG News (CC).
Issues Referenced
Epic: HfLA Text Analysis Tutorials (T0–T14).
This sub-issue: T12: Evaluation & Error Analysis.
- Lingua principale
- Jupyter Notebook
- Stelle
- 33
- Fork
- 23
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di hackforla/data-science
-
H2 — Pandemic disruption accelerated a decline that began earlier | Student decline: More than pandemic learning loss aloneForse di nuovo libera @MissBrandyLea l’ha presa 55 giorni fa e non c’è nessuna pull request aperta. Aperta
hackforla/data-science#283 · 8 commenti · 1 assegnatario ·
-
complexity: Large CoP: Data Science project duration: one time role: data science size: 5pt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
hackforla/data-science#281 ·
-
Investigate America’s Declining HealthspanForse di nuovo libera @wesdufelmeier l’ha presa 62 giorni fa e non c’è nessuna pull request aperta. Apertacomplexity: Large CoP: Data Science project duration: one time role: data science size: 8pt
hackforla/data-science#280 · 8 commenti · 1 assegnatario ·
-
complexity: Large CoP: Data Science project duration: one time role: data analysis role: data science size: 8pt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
hackforla/data-science#279 ·
-
complexity: Large CoP: Data Science project duration: one time role: data science size: 8pt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
hackforla/data-science#278 ·
Tutte le issue di hackforla/data-science
Issue simili
-
[Anon] Imperium - Adeptus Astartes - Dark Angels: Azrael is missing the Lion Helm wargear abilityAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Grain de MaliceApertanew-spider
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
alltheplaces/alltheplaces#19646 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
BSData/age-of-sigmar-4th#1393 ·