Deteksi drift univariat

Pemantauan Machine Learning dengan Python

Hakim Elakhrass

CEO and co-founder

Apa itu deteksi drift univariat?

Gambar menampilkan alur pemantauan dan posisi metode univariat di dalamnya.

Pemantauan Machine Learning dengan Python

Metode univariat

  • Jarak Jensen–Shannon - kategorikal dan kontinu
  • Hellinger - kategorikal dan kontinu
  • Wasserstein - hanya kontinu
  • Kolmogorov–Smirnov - hanya kontinu

  • L-infinity - hanya kategorikal

  • Chi-kuadrat - hanya kategorikal

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

Implementasi kode

# 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()
Pemantauan Machine Learning dengan Python

Penyaringan

  • Berdasarkan nama kolom
  • Berdasarkan metode univariat
# 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()
Pemantauan Machine Learning dengan Python

Peringkat berdasarkan jumlah peringatan

  • Urutkan fitur berdasarkan jumlah peringatan
# 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)

Gambar menampilkan dataframe dengan jumlah peringatan per fitur.

Pemantauan Machine Learning dengan Python

Peringkat korelasi

  • Mengurutkan fitur berdasarkan korelasi dengan perubahan performa absolut
# 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)

Gambar menampilkan dataframe dengan korelasi Pearson dan p-value untuk tiap fitur.

Pemantauan Machine Learning dengan Python

Memantau distribusi fitur

  • Memberi wawasan lebih baik dan meningkatkan keterjelasan
# Create distribution plots
distribution_results = uv_results.plot(kind='distribution')

# Show the plots
distribution_results.show()
Pemantauan Machine Learning dengan Python

Plot distribusi fitur

 

Gambar menampilkan plot distribusi untuk fitur kontinu dan kategorikal.

Pemantauan Machine Learning dengan Python

Ayo berlatih!

Pemantauan Machine Learning dengan Python

Preparing Video For Download...