Skip to content

✨ Enhance Table Generator with New Performance Metrics #7

@apierr

Description

@apierr

I need to enhance the Python script that generates the summary table to include several new performance metrics. These metrics are crucial for a complete evaluation of the models/scenarios.

The script must be updated to calculate and include the following columns in the final table output:

🚀 Requested Metrics

  • Out-of-Sample Density + CI
  • Precision
  • Recall
  • Threshold Range (95%)
  • F1-Score
  • NNT (Number Needed to Target)

✅ Implementation Checklist

Please implement the addition of the new metrics one step at a time, ensuring the script correctly computes and formats the new columns.

  • Implement Out-of-Sample Density + CI calculation.
  • Implement Precision calculation.
  • Implement Recall calculation.
  • Implement F1-Score calculation (derived from Precision and Recall).
  • Implement NNT (Number Needed to Target) calculation.
  • Implement Threshold Range (95%) calculation.
  • Update the final table generation and formatting to include all new columns.

Analisi sui Dati (Q1 e Q2)

Per rispondere alle tue domande (Q1 e Q2) in merito alla ricavabilità dei dati, è necessario fare delle assunzioni, poiché gli elementi chiave per il calcolo di queste metriche non sono visibili nell'output head data/dummy/*csv (contrassegnato come TODO).

Le metriche come Precisione, Recall ed F1-Score sono tipiche di un problema di classificazione e richiedono che il dataset (o il CSV) contenga:

  1. Etichette Vere (Ground Truth): La reale classe/risultato (Y_true).
  2. Predizioni o Punteggi del Modello: La previsione del modello o il punteggio di probabilità/densità associato a ciascun record (Y_score o Y_pred).

Assumendo che il tuo script Python utilizzi i dati CSV per derivare le metriche per i diversi Scenario e Subgroup:

Q1: Dati che Possiamo Ricavare 🎯

Sulla base delle metriche esistenti nella tua Tabella attuale (es. Density, Coverage, Lift), è probabile che tu abbia già i dati necessari nel CSV per calcolare:

  • ✅ Precision
  • ✅ Recall
  • ✅ F1-Score (È derivato da Precisione e Recall: $F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall}$)
  • ✅ NNT (Number Needed to Target) (Tipicamente correlato a Lift o $1 / (Density_{Subgroup} - Density_{Baseline})$)

Queste metriche si basano sul confronto tra le predizioni e i risultati veri, che sono necessari anche per le metriche attuali.

Q2: Dati che Non Possiamo Ricavare (o Richiedono Informazioni/Dati Aggiuntivi) 🧩

Le seguenti metriche richiedono informazioni o calcoli aggiuntivi che non sono impliciti nella semplice struttura di un CSV contenente solo risultati aggregati:

  • ❌ Out-of-Sample Density + CI:
    • Richiede un set di dati di test (Out-of-Sample) separato dal set di dati utilizzato per l'addestramento e la metrica Density già calcolata.
    • Se l'attuale Density si riferisce già a un set di test (e non a dati In-Sample), allora il dato è ricavabile. Se invece si riferisce a un set di In-Sample, avrai bisogno di caricare un ulteriore file CSV o una colonna nel CSV dedicata all'Out-of-Sample per calcolarla.
  • ❌ Threshold Range (95%):
    • Implica l'analisi della distribuzione dei punteggi di probabilità (o della variabile di cutoff) per il sottogruppo in esame.
    • È improbabile che questa informazione sia disponibile come un singolo valore nel CSV, a meno che il CSV non contenga le singole previsioni del modello per tutti i record, permettendo di calcolare il range che copre il 95% della popolazione di interesse (o di una certa metrica).

In sintesi, per Precision, Recall, F1-Score e NNT dovresti avere abbastanza informazioni se il CSV contiene già le colonne necessarie per le metriche attuali. Per Out-of-Sample Density e Threshold Range, è probabile che sia necessario accedere a dati grezzi aggiuntivi (Out-of-Sample) o alle singole predizioni del modello, non solo ai dati aggregati.

Hai bisogno che ti aiuti a formulare una descrizione più dettagliata per una delle nuove metriche (es. NNT o F1-Score)?

Esempio Tabella Completa

Scenario Subgroup Coverage Density 95% CI Lift Stability Effect Size Out-of-Sample Density Precision Recall F1 NNT Threshold Range RR RR CI
NI Baseline 1.00 0.20 [0.19,0.21] 1.0 - ref 0.20 - 1.00 - - - 1.0 ref
SI Trust≥0.65 0.06 0.81 [0.77,0.85] 4.1 0.84 3.24 0.78 0.85 0.24 0.38 1.6 [0.62,0.68] 4.05 [3.82,4.29]
EI Trust≥0.55∩Inc≥30 0.31 0.65 [0.62,0.68] 3.3 0.81 3.05 0.63 0.71 0.89 0.79 2.2 [0.52,0.58]×[28,33] 3.25 [3.08,3.43]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority: LowCan be scheduled or postponedStatus: To DoThis issue is ready to be picked up by a team member.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions