Detectarea driftului univariat

Monitorizarea Machine Learning în Python

Hakim Elakhrass

CEO and co-founder

Ce este detectarea driftului univariat?

Imaginea arată fluxul de monitorizare și poziția metodei univariate în cadrul acestuia.

Monitorizarea Machine Learning în Python

Metode univariate

  • Distanța Jensen-Shannon - categoriale și continue
  • Hellinger - categoriale și continue
  • Wasserstein - doar continue
  • Kolmogorov-Smirnov - doar continue

  • L-infinity - doar categoriale

  • Chi2 - doar categoriale

1 https://nannyml.readthedocs.io/en/stable/how_it_works/univariate_drift_comparison.html
Monitorizarea Machine Learning în Python

Implementare în cod

# Intialize the univariate drift calculator
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'
    )
# Fit, calculate and plot the results
uv_calc.fit(reference)
uv_results = uv_calc.calculate(analysis)
uv_results.plot().show()
Monitorizarea Machine Learning în Python

Filtrare

  • După numele coloanelor
  • După metodele univariate
# Filter the univariate results
filtered_figure = uv_results.filter(column_names=['trip_distance', 'fare_amount'], 
            methods=['jensen_shannon'])

# Plot the filtered results
filtered_figure.show().plot()
Monitorizarea Machine Learning în Python

Clasificator după numărul de alerte

  • Clasificați caracteristicile după numărul de alerte
# Initialize the alert count ranker
alert_count_ranker = nannyml.AlertCountRanker()
alert_count_ranked_results = alert_count_ranker.rank(
    uv_results,
    only_drifting=False)
# Display the results
display(alert_count_ranked_results)

Imaginea arată dataframe-ul cu informații despre numărul de alerte per caracteristică.

Monitorizarea Machine Learning în Python

Clasificator prin corelație

  • Clasifică caracteristicile după corelația cu variațiile absolute de performanță
# Initialize the correlation ranker
correlation_ranker = nannyml.CorrelationRanker()
correlation_ranker.fit(perf_results.filter(period='reference'))
correlation_ranked_results = correlation_ranker.rank(uv_results, perf_results)

# Display the results
display(correlation_ranked_results)

Imaginea arată dataframe-ul cu corelația Pearson și p-valoarea pentru fiecare caracteristică.

Monitorizarea Machine Learning în Python

Monitorizarea distribuției caracteristicilor

  • Oferă informații mai bune și îmbunătățește explicabilitatea
# Create distribution plots
distribution_results = uv_results.plot(kind='distribution')

# Show the plots
distribution_results.show()
Monitorizarea Machine Learning în Python

Graficul distribuției caracteristicilor

 

Imaginea arată graficele de distribuție pentru caracteristici continue și categoriale.

Monitorizarea Machine Learning în Python

Să exersăm!

Monitorizarea Machine Learning în Python

Preparing Video For Download...