PerformancesMeasures¶
- class model_monitoring.performance_measures.PerformancesMeasures(approach_type='supervised', model_type='auto', set_metrics='standard', new_metrics=None, impute_nans=False, **kwargs)¶
Classe che gestisce il calcolo delle metriche di performance per modelli supervisionati e non supervisionati.
Questa classe fornisce un metodo per valutare le prestazioni di diversi tipi di modelli di machine learning: regressione, classificazione (binaria e multiclasse) e clustering. Permette di utilizzare set di metriche standard predefinite o di specificare metriche personalizzate.
Per i modelli supervisionati le metriche standard utilizzate sono:
Regressione:
MSE (Mean Squared Error)
R² (Coefficient of Determination)
MAE (Median Absolute Error)
Explained Variance Score
Classificazione:
Accuracy
Precision
Recall
F1-score
ROC AUC (Receiver Operating Characteristic Area Under Curve)
Balanced Accuracy
Multiclasse:
Accuracy
ROC AUC (Receiver Operating Characteristic Area Under Curve)
Balanced Accuracy
Per i modelli non supervisionati (clustering), la qualità viene valutata principalmente tramite un compito ausiliario di classificazione. Si addestra un classificatore Gradient Boosting (LGBMClassifier) per prevedere le etichette di cluster (assegnate dall’algoritmo di clustering) utilizzando le feature originali dei dati. Questo addestramento viene ripetuto più volte (default 5) su diverse combinazioni di splitting dei dati tramite l’utilizzo di una StratifiedKFold, in cui viene fatto il train su tutti i fold tranne uno e il test sul fold rimanente.
La performance finale del classificatore è data dalla mediana dei risultati ottenuti in questi addestramenti (le performance fanno riferimento al test), misurata secondo una metrica configurabile (default balanced_accuracy). Un valore elevato di questa performance indica che i cluster identificati sono ben distinguibili nello spazio delle feature, suggerendo quindi un clustering di buona qualità.
Oltre a questo approccio, è possibile valutare il clustering anche con metriche intrinseche (es. Silhouette Score), se vengono fornite come metriche personalizzate.
La classe gestisce anche la conversione dei tipi di dati e l’imputazione opzionale dei valori mancanti (NaN) per i dati di clustering.
Imputazione NaN:
Viene aggiunta la colonna relativa alle etichette di cluster assegnate ai dati dall’algoritmo di clustering e vengono raggruppati i dati in base all’etichetta di clustering.
Se in un raggruppamento sono presenti colonne completamente vuote (tutti NaN) vengono riempite con statistiche (moda per i valori categorici o mediana per i valori numerici) calcolate sull’intero dataset.
Per ogni gruppo di cluster vengono trasformate le colonne categoriche tramite la codifica One-Hot Encoding.
Se presenti dei valori NaN vengono calcolate delle distanze di similarità tra la riga contenente il valore NaN e tutte le altre del gruppo.
Vengono prese le prime k righe con similarità più alta e viene sostituito il valore NaN con il valore medio di queste righe. Se anche le k righe “vicine” presentano dei NaN viene utilizzato il valore medio del gruppo.
Le colonne precedentemente codificate con One-Hot Encoding vengono riconvertite in formato categorico. Per ogni riga, si identifica la colonna dummy (tra quelle associate alla stessa feature) con il valore massimo; il nome di questa colonna determina la categoria assegnata.
Methods
Inizializza l'oggetto PerformancesMeasures per configurare il calcolo delle metriche.
Calcola le metriche di performance configurate sui dati forniti.