Détection de dérive univariée

Surveiller le Machine Learning en Python

Hakim Elakhrass

CEO and co-founder

Qu'est-ce que la détection de dérive univariée ?

L'image montre le flux de monitoring et l'emplacement de la méthode univariée.

Surveiller le Machine Learning en Python

Méthodes univariées

  • Distance de Jensen-Shannon – catégoriel et continu
  • Hellinger – catégoriel et continu
  • Wasserstein – uniquement continu
  • Kolmogorov-Smirnov – uniquement continu

  • L-infinity – uniquement catégoriel

  • Khi2 – uniquement catégoriel

1 https://nannyml.readthedocs.io/en/stable/how_it_works/univariate_drift_comparison.html
Surveiller le Machine Learning en Python

Implémentation du code

# Initialiser le calculateur de dérive univariée
uv_calc = nannyml.UnivariateDriftCalculator(
    continuous_methods=['wasserstein', 'hellinger'],
    categorical_methods=['jensen_shannon', 'l_infinity', 'chi2'],
    column_names=feature_column_names,
    timestamp_column_name='timestamp',
    chunk_period='d'
    )
# Ajuster, calculer et tracer les résultats
uv_calc.fit(reference)
uv_results = uv_calc.calculate(analysis)
uv_results.plot().show()
Surveiller le Machine Learning en Python

Filtrage

  • Selon les noms de colonnes
  • Selon les méthodes univariées
# Filtrer les résultats univariés
filtered_figure = uv_results.filter(column_names=['trip_distance', 'fare_amount'], 
            methods=['jensen_shannon'])

# Tracer les résultats filtrés
filtered_figure.show().plot()
Surveiller le Machine Learning en Python

Classement par nombre d'alertes

  • Classer les variables selon le nombre d'alertes
# Initialiser le classificateur par nombre d'alertes
alert_count_ranker = nannyml.AlertCountRanker()
alert_count_ranked_results = alert_count_ranker.rank(
    uv_results,
    only_drifting=False)
# Afficher les résultats
display(alert_count_ranked_results)

L'image montre un dataframe avec le nombre d'alertes par variable.

Surveiller le Machine Learning en Python

Classement par corrélation

  • Classe les variables selon leur corrélation avec les variations absolues de performance
# Initialiser le classificateur par corrélation
correlation_ranker = nannyml.CorrelationRanker()
correlation_ranker.fit(perf_results.filter(period='reference'))
correlation_ranked_results = correlation_ranker.rank(uv_results, perf_results)

# Afficher les résultats
display(correlation_ranked_results)

L'image montre un dataframe avec la corrélation de Pearson et la p-valeur pour chaque variable.

Surveiller le Machine Learning en Python

Surveiller la distribution des variables

  • Donne de meilleurs insights et améliore l'explicabilité
# Créer des graphiques de distribution
distribution_results = uv_results.plot(kind='distribution')

# Afficher les graphiques
distribution_results.show()
Surveiller le Machine Learning en Python

Graphique de distribution des variables

 

L'image montre des graphiques de distribution pour des variables continues et catégorielles.

Surveiller le Machine Learning en Python

Passons à la pratique !

Surveiller le Machine Learning en Python

Preparing Video For Download...