Fəsil 03 · 4 dəq oxu

Model evaluation: dürüst qiymətləndirmə

Model evaluation: dürüst qiymətləndirmə

Machine learning layihələri modelling-dən çox evaluation mərhələsində uğursuz olur. Notebook-da əla görünüb production-da məyus edən model-in evaluation-ı demək olar ki, həmişə gizli şəkildə yalan danışırmış. Bu fəsil etibar edə biləcəyiniz evaluation qurmaq haqqındadır.

Əsas qayda: heç vaxt training data üzərində test etməyin

üzərindəki nəticə model-in nə qədər yaxşı əzbərlədiyini göstərir. haqqında heç nə demir. Minimum protokol üçtərəfli split-dir:

  • (~70%): model-i fit edin.
  • (~15%): model-ləri müqayisə edin, tune edin, nə vaxt dayanacağınıza qərar verin.
  • (~15%): ona yalnız bir dəfə, lap sonda, yekun rəqəmi bildirmək üçün toxunun.

yanğınsöndürəndir. Ona dəfələrlə baxıb model-i düzəltsəniz, ikinci çevrilir və yekun rəqəminiz nikbin çıxır. Hər "sadəcə bir yoxlama da" məlumat sızdırır.

validation rolunu k fold arasında növbə ilə dəyişir və nəticələri ortalayır; bu, kiçik dataset-lər üçün daha yaxşıdır və estimate-ə error bar verir.

Leakage: səssiz qatil

haqqında məlumatın prediction anında əlçatan olmayacaq şəkildə sızmasıdır. Nəticəsi möhtəşəm validation score-ları və faydasız model-lərdir. Geniş yayılmış formaları:

  • . nəticəsi olan . account_closed_date churn üçün əla predictor-dur və onu əvvəlcədən proqnozlaşdırmaq üçün tamamilə faydasızdır.
  • . Prediction anından sonrakı data üzərində training. Çərşənbə axşamının tələbini çərşənbə axşamının özünü də əhatə edən rolling average ilə proqnozlaşdırırsınızsa, aldatmısınız.
  • . Split-dən əvvəl bütün dataset üzərində hesablanmış statistikalarla scaling, imputation və ya selection. Bu halda training-ə təsir etmiş olur. Preprocessing-i yalnız training fold üzərində fit edin.
  • . Eyni entity-nin həm training, həm də görünməsi. Demək olar ki, eyni şəkillər, təkrarlanan müştərilər, bir neçə vizitdə eyni pasiyent.

Müdafiə üsulu hər üçün bu sualı verməkdir: production-da bu prediction-ı verəcəyim anda bu dəyər məlum olacaqmı? Yoxdursa, onu silin.

Dünya necə bölünürsə, elə bölün

Random split gələcəyin qarışdırılmış keçmişə bənzədiyini fərz edir. Çox vaxt belə olmur.

  • Time-based split, model gələcəyi proqnozlaşdıracaqsa: yanvardan sentyabra qədər train edin, oktyabrda validate edin, noyabrda test edin.
  • Group-based split, nümunələr entity üzrə qruplaşırsa: istifadəçinin bütün session-ları split-in eyni tərəfinə düşür.
  • Coğrafi və ya kateqoriya üzrə split, model yeni regionlarda və ya yeni məhsullarda istifadə olunacaqsa.

Yönləndirici sual: anında nə yeni olacaq? Test set-inizin eyni mənada yeni olduğundan əmin olun.

Metric-lər: səhvlərin dəyərinə uyğun olanı seçin

Accuracy hamının ilk növbədə müraciət etdiyi və ən çox çaşdıran metric-dir. Əməliyyatların 99%-nin qanuni olduğu dataset-də hər dəfə "qanunidir" deyən model 99% accurate-dır və tamamilə dəyərsizdir.

üçün:

MetricNəyi ölçürNə vaxt istifadə etməli
Predict edilən positive-lərin nə qədəri həqiqətən positive-dirFalse positive-lər bahadır (spam filtri)
Həqiqi positive-lərin nə qədəri tutulubFalse negative-lər bahadır (xərçəng skrininqi)
F1 və harmonik ortasıHər ikisini balanslaşdıran tək rəqəm lazımdır
ROC-AUCBütün threshold-lar üzrə ranking keyfiyyətiModel-ləri threshold-dan asılı olmadan müqayisə etmək
PR-AUCPositive sinfə fokuslanmış ranking keyfiyyətiPositive sinif nadirdir
Ehtimal estimate-lərinin keyfiyyətiEhtimallar downstream istifadə olunacaq

Regression üçün: mean absolute error target-in öz vahidlərində şərh edilir; root mean squared error böyük səhvləri daha sərt cəzalandırır; mean absolute percentage error populyardır və sıfıra yaxın dəyərlərdə pis davranır.

Dürüst yanaşma hər növ səhvin biznes üçün dəyərini yazıb onu izləyən metric-i seçməkdir. Dəyərləri yaza bilmirsinizsə, metric seçməyə hazır deyilsiniz.

Baseline-lar

Hər hansı score-u qeyd etməzdən əvvəl ən primitiv model-in nəyə nail olduğunu bilin:

  • Majority class-ı predict edin.
  • Ortanı predict edin.
  • Dünənki dəyəri predict edin.
  • Biznesin hazırda istifadə etdiyi qaydanı tətbiq edin.

Baseline-ı bir tük qədər üstələyən model öz mürəkkəbliyinə dəyməyə bilər. Baseline-a uduzan model isə, hamının etiraf etdiyindən daha tez-tez baş verir, ya baseline-da , ya da pipeline-da bug-ın əlamətidir.

Calibration

0.9 verən model 0.9 dediyi hallarda təxminən 90% haqlı olmalıdır. Bir çox model (boosted tree-lər, ) yaxşı rank etsə də, zəif calibrate olunmuş ehtimallar verir. Ehtimallar qərara daxil olursa (expected value, risk threshold-ları), reliability diagram ilə yoxlayın və Platt scaling və ya isotonic regression ilə düzəldin.

Slicing

Aggregate metric-lər subgroup-lardakı uğursuzluqları gizlədir. Ümumilikdə 95%, amma bir ölkədə, bir cihaz tipində və ya bir demoqrafik qrupda 60% accuracy-si olan model elə bir problemi olan model-dir ki, aggregate rəqəm onu heç vaxt üzə çıxarmayacaq. Biznes və ya fairness üçün əhəmiyyətli olan hər dimension üzrə metric-ləri slice-lar üzrə report edin.

Statistik dürüstlük

2000 nümunəlik 0.3%-lik yaxşılaşma noise-dur. Confidence interval-ları hesablayın (bootstrap asandır). Fərqli random seed-lərlə yenidən işlədin. Yaxşılaşma resampling zamanı yox olursa, heç vaxt mövcud olmayıb.

Tapşırıqlar

  1. Əlçatan olan hər hansı model-in audit edin. Hər biri üçün cavab verin: bu, prediction anında məlum olacaqmı?
  2. Eyni data üzərində random split-i time-based split ilə əvəz edin. Score nə qədər düşür?
  3. Sizi maraqlandıran məsələsi üçün majority-class baseline-ı hesablayın. Mövcud model-iniz onu əhəmiyyət kəsb edəcək qədər üstələyirmi?