Jak dobrać metryki jakości modelu ML do klasyfikacji, regresji i rankingów

1
62
Rate this post

Nawigacja:

Dlaczego sama „dokładność” to za mało – rola metryk w ML

Model, który działa, a model, który rozwiązuje właściwy problem

Model uczenia maszynowego może mieć świetne liczby w notatniku Jupyter, a mimo to kompletnie nie dowozić wartości biznesowej. Różnica między „działa” a „rozwiązuje właściwy problem” leży właśnie w metrykach: co dokładnie mierzymy i jak to interpretujemy.

Prosty przykład: system antyfraudowy. Oszustwa stanowią ułamek procenta wszystkich transakcji. Można zbudować model, który zawsze zwraca „brak fraudu” dla każdej transakcji i uzyskać Accuracy na poziomie 99%+. Czy taki model jest „dobry”? Z punktu widzenia biznesu – bezużyteczny, bo nie wychwytuje niczego istotnego.

Metryka, którą wybierzesz, definiuje, co oznacza „sukces” modelu. Jeśli wybierzesz złą, będziesz optymalizować nie ten problem, który masz rozwiązać. To trochę jak mierzenie efektywności kuriera liczbą przebytych kilometrów zamiast punktualnie dostarczonych paczek.

Dlaczego Accuracy bywa zwodnicza

Accuracy (dokładność) to odsetek poprawnie sklasyfikowanych przykładów. Brzmi rozsądnie, ale ma kilka poważnych wad:

  • ignoruje asymetrię kosztów błędów (fałszywy alarm vs. przeoczenie zdarzenia),
  • jest silnie zależna od balansu klas,
  • nie mówi nic o jakości predykcji pozytywnych (precision) ani o tym, ile pozytywów przegapiamy (recall).

W zadaniach, gdzie klasa pozytywna jest rzadka (fraud, choroby rzadkie, awarie), model może mieć świetną Accuracy, a jednocześnie praktycznie nie łapać zdarzeń, które są dla biznesu najważniejsze. Lepiej wtedy patrzeć na precision, recall, F1, a przy silnym niezbalansowaniu także na AUC-PR.

Metryka jako tłumacz między biznesem a modelem

Osoba z biznesu mówi: „Chcę, żeby system nie przepuszczał fraudów”, „Chcę mniej fałszywych alarmów”, „Chcę lepszych rekomendacji produktów”. Dane, modele i algorytmy to tylko narzędzia. Metryka jest wspólnym językiem, który pozwala zamienić te luźne wymagania na liczby:

  • „nie przepuszczać fraudów” → wysoki recall klasy fraud,
  • „mniej fałszywych alarmów” → wysoki precision,
  • „lepsze rekomendacje” → wyższy NDCG@k, MAP@k w rankingach.

Dobrze dobrana metryka:

  • naprowadza na wybór odpowiedniego algorytmu,
  • steruje tuningiem hiperparametrów (co dokładnie maksymalizujemy podczas walidacji),
  • jest podstawą decyzji: „wdrażamy czy nie wdrażamy ten model?”.

Wpływ metryk na wybór algorytmu i decyzje wdrożeniowe

Różne algorytmy zachowują się inaczej w zależności od tego, co mierzymy. Model, który ma najwyższą Accuracy, nie musi mieć najlepszego F1 ani najlepszego recall. Jeśli celem jest wykrywanie rzadkich zdarzeń, możesz preferować model, który:

  • ma trochę niższą Accuracy,
  • ale istotnie wyższy recall przy akceptowalnym spadku precision.

W pracy produkcyjnej sensownie jest ustalić z góry:

  • metryki główne (na nich opiera się decyzja wdrożeniowa),
  • metryki pomocnicze (diagnoza, porównanie wersji, monitoring po wdrożeniu).

Wtedy dyskusja „czy model jest dobry” zamienia się z emocjonalnej na rzeczową: porównuje się zestaw liczb, powiązanych z realnymi kosztami i korzyściami biznesowymi.

Jak przełożyć problem biznesowy na metryki – od pytania do liczby

Rodzaje problemów: klasyfikacja, regresja, ranking

Na początku trzeba uporządkować, z jakim typem zadania uczenia maszynowego mamy do czynienia, bo od tego zależy zestaw sensownych metryk:

  • Klasyfikacja – przewidujemy klasę (np. spam/nie-spam, kategoria zgłoszenia, diagnoza choroby). Może być:
    • binarną (dwie klasy),
    • wieloklasową (więcej niż dwie klasy),
    • wielu etykiet (multi-label: więcej niż jedna etykieta na przykład).
  • Regresja – przewidujemy wartość ciągłą (cena, czas dostawy, wielkość sprzedaży).
  • Ranking – przewidujemy kolejność lub ocenę trafności (wyszukiwarka, rekomendacje, scoring leadów). Tu liczy się pozycja dobrych wyników na liście.

Już na tym etapie można odsiać metryki bez sensu. Accuracy nie ma żadnego znaczenia w regresji, a MSE niewiele powie o jakości wyników wyszukiwania.

Co znaczy „dobry model” z perspektywy właściciela procesu

Zanim padnie nazwa jakiejkolwiek metryki, przydaje się zadać kilka prostych pytań biznesowych:

  • Jaką decyzję podejmujesz na podstawie wyniku modelu?
  • Jakie są konsekwencje błędów w każdą stronę?
  • Gdzie model ma być ostrożniejszy, a gdzie może zaryzykować?
  • Czy ważniejszy jest poziom przewidywań czy raczej kolejność (np. top 10 propozycji)?

Przykład: model prognozujący popyt. Dla logistyki błąd +10% ma inny sens niż błąd –10%. Brak towaru na stanie może zaboleć bardziej niż nadwyżki. To podpowiada, że może warto myśleć o asymetrycznej funkcji kosztu, a nie tylko o „średnim błędzie”.

Koncepcja funkcji kosztu: fałszywy alarm kontra przegapienie zdarzenia

Każdy błąd ma swój koszt, choć często nie jest on policzony wprost. W klasyfikacji binarnej:

  • Fałszywy alarm (False Positive) – np. klient niesprawiający kłopotu zostaje oznaczony jako ryzykowny.
  • Przegapienie zdarzenia (False Negative) – np. prawdziwy fraud sklasyfikowany jako „ok”.

Kiedy koszty FP i FN są różne, nie ma jednego uniwersalnego optimum. Trzeba świadomie zdecydować, który typ błędu jest groźniejszy. To przełoży się na wybór metryk:

  • jeśli ważniejsze jest łapanie wszystkich pozytywów → priorytet recall,
  • jeśli ważniejsze jest unikanie fałszywych alarmów → priorytet precision.

Jak zamienić opis słowny na preferencje metryczne

Luźne wymagania można uporządkować, odpowiadając na kilka pytań o dane i decyzje:

  • Wrażliwość na błędy – co jest dla nas najbardziej bolesne:
    • błędy „w górę” (przeceniamy wartość),
    • błędy „w dół” (niedoceniamy),
    • czy traktujemy je symetrycznie?
  • Tolerancja na odstające obserwacje:
    • duże outliery są ważne (np. bardzo drogie szkody)?
    • a może to szum, którego nie chcemy nadmiernie uwzględniać?
  • Znaczenie porządku vs. poziomu:
    • czy ważne jest, by dokładnie trafić liczbę (regresja, MAE/MSE),
    • czy raczej by dobrze posortować obiekty (ranking, AUC, NDCG)?

Z tego powstaje naturalny wybór: regresja → MAE lub RMSE plus np. MAPE; klasyfikacja → precision/recall/F1; ranking → NDCG@k, MAP@k, hit rate.

Krótki „kontrakt metryczny” z biznesem

Dobrą praktyką jest spisanie prostego „kontraktu metrycznego”, np.:

  • „Model sprzedażowy uznajemy za użyteczny, jeśli MAE prognozy miesięcznej mieści się w przedziale X–Y oraz MAPE nie przekracza Z% dla głównych kategorii produktów”.
  • „Model antyfraudowy jest akceptowalny, jeśli przy recall co najmniej 0.9 dla fraudów, precision nie spada poniżej 0.3 i AUC-PR utrzymuje się powyżej T”.

Takie 2–3 zdania zapisane na początku projektu upraszczają wszystkie późniejsze rozmowy: wiadomo, na co patrzeć i czego oczekiwać.

Fundamenty metryk dla klasyfikacji binarnej

Macierz pomyłek – TN, TP, FP, FN

Prawie wszystkie metryki klasyfikacji binarnej powstają z czterech liczb:

  • TP (True Positive) – model poprawnie wskazał klasę pozytywną,
  • TN (True Negative) – model poprawnie wskazał klasę negatywną,
  • FP (False Positive) – model wskazał pozytywną, a faktycznie była negatywna,
  • FN (False Negative) – model wskazał negatywną, a faktycznie była pozytywna.

Macierz pomyłek zapisuje je w formie tabelki i pozwala bardzo szybko zorientować się, „jakiego rodzaju” błędy popełnia model. To ona jest surowcem do wszystkich metryk typu accuracy, precision, recall, F1, specificity.

Accuracy, Precision, Recall – co naprawdę mierzą

Podstawowe definicje:

  • Accuracy = (TP + TN) / (TP + TN + FP + FN)
  • Precision = TP / (TP + FP)
  • Recall (Sensitivity, TPR) = TP / (TP + FN)

Intuicje:

  • Accuracy – jaki odsetek przykładów jest poprawnie sklasyfikowany. Dobra, gdy klasy są w miarę zbalansowane i koszty błędów porównywalne.
  • Precision – z wszystkich, które uznaliśmy za pozytywne, jaki procent naprawdę jest pozytywny. Kluczowe, gdy fałszywe alarmy są kosztowne (np. blokowanie niesłusznie podejrzanych klientów).
  • Recall – z wszystkich pozytywnych w rzeczywistości, jaki procent złapaliśmy. Ważne, gdy nie chcemy niczego przegapić (np. wykrywanie choroby, wykrywanie awarii).

F1-score i F-beta – kompromis między precision a recall

Precyzja i czułość często „ciągną” w przeciwnych kierunkach. F1-score łączy je w jedną liczbę jako średnią harmoniczną:

  • F1 = 2 * (Precision * Recall) / (Precision + Recall)

F1 jest wysoki tylko wtedy, gdy obie wartości są sensowne. Nie wynagrodzi wysokiego precision przy skrajnie niskim recall (ani odwrotnie).

Jeżeli zależy nam bardziej na jednej z nich, używa się F-beta:

  • β > 1 – ważniejszy recall (np. F2),
  • β < 1 – ważniejsze precision (np. F0.5).

To prosty sposób na zaszycie preferencji biznesowych w metryce optymalizacyjnej.

Sensitivity i Specificity – kiedy są szczególnie użyteczne

Oprócz recall (sensitivity) często przydaje się także:

  • Specificity (TNR) = TN / (TN + FP)

Specificity mówi, jak dobrze model rozpoznaje klasę negatywną. W medycynie klasyczny duet to:

  • test o wysokiej sensitivity – mało wyników fałszywie negatywnych,
  • test o wysokiej specificity – mało wyników fałszywie pozytywnych.

Odpowiednie połączenie tych dwóch parametrów pozwala budować ścieżki diagnostyczne: np. najpierw tani, bardzo czuły test przesiewowy (wysoki recall), potem dokładne badanie potwierdzające (wysoka specificity).

Rola progu decyzyjnego

Większość klasyfikatorów probabilistycznych (logistic regression, modele drzewiaste, sieci neuronowe) zwraca prawdopodobieństwo klasy pozytywnej. Dopiero ustawienie progu (np. 0.5) zamienia to na etykietę 0/1.

Zmieniając próg:

  • obniżając go – zwiększamy recall kosztem spadku precision,
  • podnosząc – zwiększamy precision kosztem spadku recall.

Dlatego analiza tylko jednej liczby (np. F1 przy domyślnym progu) bywa myląca. Znacznie ciekawsze jest:

Krzywe ROC i PR – jak patrzeć na cały zakres progów

Zamiast kłócić się o „jeden słuszny próg” na początku, lepiej zobaczyć, co model potrafi w całym spektrum. Tutaj wchodzą dwie popularne wizualizacje: krzywa ROC i krzywa Precision–Recall.

  • Krzywa ROC (Receiver Operating Characteristic):
    • oś X: False Positive Rate (FPR) = FP / (FP + TN),
    • oś Y: True Positive Rate (TPR) = Recall = TP / (TP + FN).
  • Krzywa Precision–Recall (PR):
    • oś X: Recall,
    • oś Y: Precision.

Przechodząc po punktach krzywej, de facto przesuwasz próg od 0 do 1 i oglądasz wszystkie możliwe kompromisy precision–recall lub TPR–FPR. To trochę jak patrzenie na charakterystykę silnika w całym zakresie obrotów zamiast tylko przy jednej prędkości.

AUC-ROC i AUC-PR – dwie liczby, dwa światy

Z krzywych wyprowadza się skróty w postaci pól pod wykresami:

  • AUC-ROC – area under ROC curve,
  • AUC-PR – area under Precision–Recall curve.

Jedna liczba, ale o innym znaczeniu:

  • AUC-ROC domyślnie zakłada pewne „zbilansowanie” klas. Jest odporne na zmianę progu, ale słabo pokazuje, co się dzieje przy skrajnej nierównowadze (np. 0.5% fraudów).
  • AUC-PR koncentruje się na klasie pozytywnej. Kiedy pozytywów jest niewiele, to właśnie ta metryka pokazuje, czy model rzeczywiście ich szuka, czy jedynie dobrze odgaduje negatywy.

W systemach antyfraudowych czy detekcji awarii przewaga AUC-PR nad AUC-ROC bywa ogromna. Dwa modele z podobnym AUC-ROC mogą dramatycznie różnić się AUC-PR, jeśli jeden lepiej radzi sobie w obszarze wysokiego recall.

Dobór progu pod scenariusz biznesowy

Krzywe ROC/PR służą jeszcze do jednego: wyboru konkretnego progu. Dobrą praktyką jest czyste, wręcz inżynierskie podejście:

  1. Definiujesz prostą funkcję kosztu FP/FN – najlepiej w pieniądzach lub przynajmniej w punktach „bólu”.
  2. Dla wielu progów (np. co 0.01) liczysz TP, FP, TN, FN oraz wynikowy koszt.
  3. Wybierasz próg minimalizujący koszt – i dopiero wtedy patrzysz, jakie precision/recall to daje.

Czasem zamiast kosztu wprost wykorzystuje się ograniczenia: „recall co najmniej 0.95, a w ramach tego maksimum precision” albo odwrotnie. Na tej bazie da się też zbudować prosty panel dla biznesu: suwak z progiem i od razu obok liczby typu „ile fraudów złapiemy / ilu klientów zablokujemy niesłusznie”.

Wieloklasowa klasyfikacja – mikro, makro i ważone średnie

Gdy klas jest więcej niż dwie, prosta macierz pomyłek rozrasta się w tabelę k×k. Nadal jednak wszystkie metryki można budować z „lokalnych” TP, FP, FN i TN liczonych osobno dla każdej klasy (traktowanej jako „pozytywna” względem reszty).

Potem pojawia się wybór uśredniania:

  • Macro average – liczysz metrykę dla każdej klasy, a potem uśredniasz po klasach:
    • każda klasa ma ten sam wpływ,
    • dobre, gdy wszystkie klasy są równie ważne biznesowo (np. kategorie zgłoszeń supportu).
  • Micro average – sumujesz wszystkie TP, FP, FN i z tego liczysz jedną metrykę:
    • klasy częste dominują wynik,
    • dobre, gdy liczy się ogólna skuteczność, a rzadkie klasy są mniej istotne.
  • Weighted macro – średnia ważona po klasach, gdzie wagi to zwykle liczebność klas:
    • kompromis: każda klasa występuje w wyniku, ale proporcjonalnie do udziału w danych,
    • przydatne, gdy częste klasy są jednak ważniejsze, ale nie chcemy całkiem „utopić” tych rzadkich.

Przykład z praktyki: w klasyfikacji tematów maili do biura obsługi można mieć kilkanaście kategorii, z czego dwie stanowią 70% ruchu, a kilka ostatnich – pojedyncze procenty. Raportować warto więc i macro-F1 (czy nie zaniedbujemy nisz) i weighted-F1 (czy w skali całego wolumenu jest postęp).

Metryki dla problemów wieloetykietowych

Przy klasyfikacji wieloetykietowej (multi-label) pojedynczy przykład może mieć kilka „prawdziwych” klas jednocześnie. Klasyczne accuracy nie wystarczy, bo rzadko trafimy komplet etykiet idealnie. Pojawiają się wtedy inne warianty:

  • Hamming loss – odsetek błędnie przypisanych etykiet:
    • liczysz, dla ilu par (przykład, etykieta) się pomyliłeś,
    • dobry „globalny” wskaźnik, ale gubi intuicję typu „na ile dobrze łapiemy każdą etykietę z osobna”.
  • Subset accuracy – 1 tylko wtedy, gdy zestaw przewidzianych etykiet jest identyczny z prawdziwym:
    • bardzo surowa metryka,
    • przy większej liczbie etykiet zwykle wygląda dramatycznie nisko.
  • Micro/macro precision, recall, F1 – liczone po wszystkich para–(przykład, etykieta), analogicznie jak w zwykłej klasyfikacji wieloklasowej.

Do systemów rekomendacji tagów, tematów czy zainteresowań zazwyczaj stosuje się mikro/macro-F1 oraz Hamming loss. Wymusza to myślenie: wolimy strzelić węższą listą, ale precyzyjnie, czy raczej szerzej, wiedząc, że część etykiet będzie zbędna?

Metryki dla regresji – jak mierzyć jakość prognoz liczbowych

MAE, MSE, RMSE – trzy oblicza błędu

W regresji zamiast „trafiliśmy / nie trafiliśmy”, mówimy „o ile się pomyliliśmy”. Klasyczna trójka:

  • MAE (Mean Absolute Error) – średnia wartość |y − ŷ|:
    • każdy błąd liczy się liniowo,
    • intuicyjny („średnio mylimy się o X jednostek”).
  • MSE (Mean Squared Error) – średnia wartość (y − ŷ)²:
    • mocno karze duże błędy (kwadrat),
    • dobry, gdy outliery są naprawdę kosztowne lub gdy uczymy modele liniowe metodą najmniejszych kwadratów.
  • RMSE (Root MSE) – pierwiastek z MSE:
    • w tej samej skali co zmienna wyjściowa,
    • kombinacja „czułości na duże błędy” (jak MSE) i prostoty interpretacji (jak MAE).

Różnice między MAE a RMSE świetnie widać na prognozach sprzedaży: jeśli firma bardzo boi się kilku spektakularnych wpadek, RMSE stanie się ważniejszy. Jeśli natomiast chodzi o stabilne, przeciętne niedoszacowanie/przeszacowanie, lepiej patrzeć na MAE.

MAPE, sMAPE i problemy z procentami

Przy danych biznesowych pojawia się pytanie: „a ile procent się mylimy?”. Tu wchodzą metryki względne:

  • MAPE (Mean Absolute Percentage Error) – średnia z |(y − ŷ) / y|:
    • procentowy błąd bezwzględny,
    • dobrze brzmi („średnio mylimy się o 12%”), ale ma kłopot, gdy y bywa blisko zera.
  • sMAPE (Symmetric MAPE) – zwykle w formie 2|y − ŷ| / (|y| + |ŷ|):
    • łagodzi problem przy wartościach bliskich zera,
    • bardziej stabilny przy mocno zmiennych wielkościach.

Przy prognozach popytu na poziomie SKU, gdzie część produktów sprzeda się „0, 1 lub 2 sztuki”, MAPE potrafi oszaleć. Wtedy sensowniej jest raportować MAE na agregacji tygodniowej/miesięcznej albo właśnie sMAPE.

R² i warianty wyjaśnionej zmienności

Kolejną rodziną wskaźników są te oparte na wyjaśnionej zmienności:

  • R² (coefficient of determination) – jaki procent wariancji zmiennej y model „wyjaśnia”:
    • R² = 1 − (SS_res / SS_tot),
    • SS_res – suma kwadratów residuali, SS_tot – suma kwadratów odchyleń od średniej.

R² jest wygodny, gdy chcemy odpowiedzieć na pytanie: „czy model jest wyraźnie lepszy od brania średniej?”. Jeśli R² bliskie jest zera lub ujemne – model nie wnosi sensownej informacji. Jeśli oscyluje na poziomie 0.7–0.9 – znaczna część zmienności została uchwycona.

Trzeba jednak uważać przy nieliniowych modelach i silnych outlierach. W takich sytuacjach MAE/RMSE bywa bardziej stabilne i lepiej przystaje do decyzji operacyjnych niż abstrakcyjne „procent wyjaśnionej wariancji”.

Asymetryczne koszty w regresji – kiedy MAE to za mało

MAE zakłada, że błąd o +10 i błąd o −10 są równie nieprzyjemne. W praktyce często tak nie jest:

  • prognoza popytu: niedoszacowanie (−) oznacza braki w sklepie,
  • prognoza kosztów szkód: niedoszacowanie oznacza niedoszacowany budżet rezerwowy.

W takich sytuacjach stosuje się ważone funkcje błędu lub metryki typu:

  • Quantile loss – używany w regresji kwantylowej, gdzie ważne jest np. 90%‑owe zabezpieczenie: przeszacowywać lekko częściej niż niedoszacowywać.
  • Custom cost – ręcznie zdefiniowany błąd, np.:
    • cost = 2 * |y − ŷ|, gdy ŷ < y (za nisko),
    • cost = 1 * |y − ŷ|, gdy ŷ > y (za wysoko).

Na etapie oceny modelu można raportować zarówno standardowe MAE/RMSE, jak i tę „biznesową” funkcję kosztu. Dzięki temu rozmowa nie kręci się tylko wokół abstrakcyjnych jednostek, ale pokazuje realne skutki niedoszacowań i przeszacowań.

Analityk przegląda wykres słupkowy na tablecie w biurze
Źródło: Pexels | Autor: Jakub Zerdzicki

Metryki dla rankingów i systemów rekomendacyjnych

Dlaczego accuracy nie ma sensu w rankingu

W problemach rankingowych model nie odpowiada „tak/nie” ani „ile dokładnie”, ale układa obiekty w kolejności od „najlepszy” do „najsłabszy”. Typowe przykłady:

  • wyniki wyszukiwania,
  • lista rekomendowanych produktów,
  • lead scoring – lista leadów do obdzwonienia.

Czy w takim świecie „accuracy” (ile razy pierwsze miejsce było idealnie trafione) cokolwiek mówi? Mało. Znacznie ważniejsze jest, czy dobre obiekty są wysoko, a słabe – nisko, zwłaszcza w górnej części listy, z którą użytkownik rzeczywiście wchodzi w interakcję.

Hit rate, Recall@k – proste wskaźniki „czy trafiło”

Najbardziej intuicyjne pytania to: „czy na liście top N w ogóle pojawiło się coś sensownego?” i „jaką część istotnych elementów pokazaliśmy użytkownikowi?”. Stąd proste metryki:

  • Hit rate@k – odsetek przypadków, gdy w top‑k znajduje się przynajmniej jeden prawdziwie trafny element:
    • np. czy w top‑10 rekomendacji filmów jest chociaż jeden, który użytkownik rzeczywiście obejrzał.
  • Recall@k – jaki procent wszystkich trafnych elementów znalazł się w top‑k:
    • np. użytkownik obejrzał 5 filmów z danej kategorii, a model pokazał 3 z nich w top‑10 – recall@10 = 3/5.

Takie metryki świetnie nadają się do porównywania wariantów modelu w A/B testach: „nowy algorytm podniósł hit rate@10 z 40% do 48%”.

MAP, MRR – jakość całej listy, a nie tylko pierwszego strzału

MAP, MRR – jakość całej listy, a nie tylko pierwszego strzału (cd.)

Gdy użytkownik widzi kilka lub kilkanaście pozycji naraz, liczy się nie tylko to, czy na liście jest coś sensownego, ale też gdzie to się znajduje. Dwie metryki, które dobrze to łapią:

  • MAP (Mean Average Precision) – średnia precyzja liczona po kolejnych trafnych pozycjach:
    • dla pojedynczego zapytania mierzysz, jaka jest precyzja po każdej kolejnej poprawnej pozycji na liście i z tego liczysz średnią,
    • potem uśredniasz po wszystkich zapytaniach / użytkownikach – stąd „mean”.
  • MRR (Mean Reciprocal Rank) – średnia odwrotności pozycji pierwszego trafnego elementu:
    • dla zapytania z pierwszym trafieniem na pozycji 1 masz 1/1, jeśli dopiero na 5. – 1/5,
    • im bliżej 1, tym częściej trafiasz poprawną odpowiedź bardzo wysoko.

MAP bardzo dobrze opisuje wyszukiwarki dokumentów czy sklep internetowy: zależy ci na całej liście, bo użytkownik przewija kilka wyników i wybiera to, co pasuje. MRR jest świetny, gdy ważna jest szybkość „pierwszego trafienia” – np. w systemie FAQ chatbot powinien jak najszybciej podać przynajmniej jedną przydatną odpowiedź.

Przykład: w wyszukiwarce wewnętrznej w aplikacji pracowniczej MAP pokaże, czy ludzie faktycznie znajdują kilka sensownych artykułów procedur, a MRR – jak często pierwszy wynik nadaje się od razu do kliknięcia. Zespół produktowy widzi wtedy, czy poprawa rankingu zmniejszy liczbę „pustych” zapytań do supportu.

NDCG, DCG – gdy liczy się jakość i pozycja jednocześnie

W niektórych rankingach nie każdy trafny element jest tak samo wartościowy. Jeden dokument jest trochę pomocny, inny rozwiązuje problem od ręki. Tu wchodzą metryki typu DCG i NDCG.

  • DCG (Discounted Cumulative Gain):
    • każdej pozycji na liście przypisujesz „zysk” (np. 0 – nietrafne, 1 – ok, 2 – bardzo trafne),
    • sumujesz ten zysk, ale z dyskontem dla dalszych pozycji, np. gain / log2(position + 1),
    • dzięki temu trafny wynik na pozycji 1 liczy się znacznie bardziej niż ten sam na pozycji 10.
  • NDCG (Normalized DCG):
    • DCG dzielisz przez najlepszy możliwy DCG dla danego zestawu wyników (idealny ranking),
    • dostajesz skalę 0–1, łatwiej porównywalną między zapytaniami.

Wyszukiwarki treści (np. help center, wyszukiwarka newsów) często korzystają właśnie z NDCG@k. Można wtedy precyzyjnie zmierzyć, czy eksperyment z nowym featuringen popchnął „najlepsze” artykuły nieco wyżej, czy tylko zamieszał w ogonie listy, której nikt nie przewija.

CTR, konwersja i metryki produktowe jako „prawdziwe” KPI

Metryki rankingowe świetnie nadają się do pracy nad modelami, ale końcowa ocena i tak zwykle wraca do prostych pytań: czy użytkownicy klikają?, czy kupują?, czy wracają?

  • CTR (Click-Through Rate) – odsetek wyświetleń, które zakończyły się kliknięciem:
    • dobry szybki wskaźnik „atrakcyjności” listy,
    • przydatny szczególnie w testach A/B: porównujesz CTR nowego rankingu z poprzednim.
  • Conversion rate – odsetek sesji / wizyt / użytkowników, którzy wykonali kluczową akcję (zakup, rejestracja, kontakt z handlowcem).

CTR i konwersja są bardziej „hałaśliwe” niż syntetyczne metryki typu NDCG, bo zależą od layoutu strony, copywritingu czy sezonowości. Mimo to to one często lądują w deckach dla zarządu, a MAP czy MRR pełnią rolę pomocniczą: pokazują, gdzie w łańcuchu wartości pojawiają się usprawnienia.

Top‑k, listy długie i „pojemność uwagi” użytkownika

W rankingach jednym z częstszych błędów jest dobranie metryki w oderwaniu od tego, jak ludzie faktycznie korzystają z listy. Słynne pytanie: „czy ktoś w ogóle przewija do pozycji 50?”.

Jeśli użytkownik zwykle widzi tylko pierwsze 3–5 pozycji, skupiasz się na metrykach @3, @5 (np. NDCG@5, recall@3). Dla systemów mailowych lub powiadomień push, gdzie nie ma przewijania, top‑1 bywa zasadniczo jedyną częścią listy, która ma znaczenie. Z kolei w wyszukiwarkach e‑commerce paginacja i filtry sprawiają, że część osób dociera na kolejne strony – wtedy sens ma także monitorowanie „głębszych” k.

Dlatego dobrze jest połączyć metryki modelowe z danymi produktowymi: heatmapy scrollowania, liczba kliknięć w zależności od pozycji, średnia liczba wyświetlonych elementów na sesję. To one podpowiadają, czy lepiej poprawiać precyzję w absolutnym topie listy, czy może pracować nad lepszym „ogonem” rekomendacji.

Strojenie progów decyzyjnych i kompromisy między metrykami

Ten sam model probabilistyczny może wyglądać świetnie według jednej metryki, a mizernie według innej – wystarczy zmienić próg klasyfikacji. U większości zespołów konflikt „więcej recallu czy więcej precision?” wraca jak bumerang.

Krzywe precision–recall i ROC – mapa kompromisów

Zamiast szukać „jednego słusznego” progu, lepiej obejrzeć cały ciąg możliwych konfiguracji. Do tego służą:

  • Krzywa ROC (Receiver Operating Characteristic):
    • na osi X – FPR (False Positive Rate), na osi Y – TPR (True Positive Rate, czyli recall),
    • dla każdego progu dostajesz punkt; cała ścieżka pokazuje, jak zmienia się czułość przy rosnącej liczbie fałszywych alarmów.
  • AUC-ROC – pole pod krzywą ROC:
    • wartość bliska 1 oznacza dobrą separację klas (model wysoko punktuje pozytywy, nisko negatywy),
    • 0.5 – model losowy; poniżej 0.5 – model „odwrotny” (da się go odwrócić i poprawić).
  • Krzywa precision–recall (PR):
    • na osi X – recall, na osi Y – precision,
    • bardziej miarodajna niż ROC przy silnie niezbalansowanych danych.

W klasycznym wykrywaniu fraudów czy nadużyć, ROC może wyglądać obiecująco, a model i tak będzie w praktyce słaby, bo interesuje nas tylko malutki fragment krzywej (bardzo mały FPR). Wtedy patrzy się raczej na kształt krzywej PR i na AUC‑PR.

Dobieranie progu do budżetu błędów

Próg klasyfikacji sensownie ustala się nie abstrakcyjnie, ale pod konkretny limit „błędów, które firma jest w stanie znieść”. Praktyczne podejście:

  • najpierw z biznesem ustalasz dopuszczalny odsetek false positives / false negatives,
  • potem na krzywej PR albo ROC wybierasz taki punkt (taki próg), który spełnia te ograniczenia i jednocześnie maksymalizuje wybraną metrykę (np. F1 lub recall).

Przykład z call center: zespół jest w stanie obdzwonić 15% wszystkich leadów. Wtedy wybierasz taki próg lead scoringu, by model wypluwał jako „gorące” mniej więcej te 15% bazy, a w ramach tego segmentu maksymalizujesz oczekiwaną konwersję. Kluczem jest więc nie samo F1, ale F1 przy ograniczeniu na liczbę „pozytywów”.

F‑beta i inne sposoby na świadome faworyzowanie

Jeśli ważniejsze jest dla ciebie „nie przeoczyć” niż „nie przesadzić z alarmami”, zwykłe F1 może być zbyt neutralne. Użyteczne są:

  • F‑β – uogólnienie F1:
    • β > 1 – większy nacisk na recall (np. F2),
    • β < 1 – większy nacisk na precision (np. F0.5).
  • Specyficzne punkty na krzywej PR – np. „szukamy progu z co najmniej 0.8 precision i jak najwyższym recall”.

To podejście wprost przekłada się na sytuacje typu medyczne pre-screeningi: lepiej mieć trochę więcej false alarms, jeśli w zamian praktycznie nie przepuszcza się prawdziwych przypadków choroby. W raporcie obok F‑beta dobrze jest też pokazać tabelkę z confusion matrix dla wybranego progu – wtedy lekarze lub analitycy szybko widzą, za jaką cenę kupiliśmy wyższy recall.

Stabilność metryk i bootstrap – czy różnica jest „prawdziwa”

Dwie wersje modelu, dwie liczby F1, różnica 0.01 – odwieczne pytanie: czy to realna poprawa, czy tylko kaprys losowego podziału danych?

Przedziały ufności dla metryk – mniej wiary na słowo

Metryki z pojedynczego splitu (train/test) potrafią być mylące, zwłaszcza na małych zbiorach. Jedna nietypowa partia danych w teście i „gorszy” model nagle wygląda lepiej. Żeby to złagodzić:

  • stosuje się k‑fold cross‑validation i raportuje średnią + odchylenie standardowe metryki,
  • lub używa bootstrapu – wielokrotnego próbkowania z danych testowych i liczenia rozkładu danej metryki.

Wyobraź sobie, że dla modelu A F1 waha się między 0.71 a 0.76, a dla modelu B – między 0.73 a 0.74. Mimo że średnio A ma trochę wyższe F1, to B jest stabilniejszy, co w niektórych projektach bywa ważniejsze niż pojedynczy punkt procentowy poprawy.

Testy statystyczne przy porównywaniu modeli

Gdy różnice są subtelne, można sięgnąć po testy porównawcze:

  • McNemar test – dla klasyfikatorów, bada różnice w błędach na tych samych przykładach testowych,
  • paired t‑test lub Wilcoxon – na wynikach cross‑validation dla dwóch modeli.

Nie chodzi o to, by wpychać statystykę do każdego sprint review. Chodzi o sytuacje, w których cała firma ma przebudować proces pod nowy model – wtedy dobrze mieć coś więcej niż „bo accuracy jest o 0.5 punktu lepsze”.

Łączenie metryk modelowych z biznesowymi

Nawet najlepsze F1, AUC czy NDCG nie obronią się same, jeśli nie wiadomo, jak przekładają się na realne wskaźniki – sprzedaż, koszty, czas pracy ludzi. Tu zaczyna się gra w „tłumaczenie” metryk.

Od confusion matrix do złotówek i godzin pracy

Confusion matrix może stać się małym arkuszem kalkulacyjnym. Wystarczy dopisać do niej orientacyjne koszty:

  • koszt false positive (np. niepotrzebny kontakt handlowca, zbędna weryfikacja manualna),
  • koszt false negative (np. utracony klient, niewychwycony fraud).

Mnożąc te liczby przez wartości z confusion matrix dla danego progu, dostajesz oczekiwany koszt operacyjny modelu. Nagle okazuje się, że scenariusz z trochę gorszym F1, ale innym rozkładem błędów jest tańszy o kilka etatów w skali roku.

Metryki per segment – ten sam model, różne światy

Średnie metryki lubią maskować problemy. Ten sam klasyfikator może mieć świetne F1 na dużych klientach i bardzo słabe na małych, a średnia będzie wyglądała „tak sobie”. Rozwiązaniem jest raportowanie:

  • tych samych metryk, ale per segment (np. region, typ klienta, kanał sprzedaży),
  • oraz ich wagę biznesową – ile przychodu / kosztu wiąże się z danym segmentem.

W praktyce często wychodzi, że warto celowo „przestroić” model lub dobudować osobny model dla małej, ale bardzo wartościowej grupy. Takie decyzje nie wynikną z samego „globalnego” ROC‑AUC, tylko z rozkładu metryk po segmentach.

Metryki w czasie – monitoring, drift i regresja jakości

Model, który dziś ma piękne wyniki, za pół roku może już ledwo zipieć. Dane się zmieniają, zachowania użytkowników też. Tu liczy się nie tylko jaka metryka, ale też jak często jest liczona.

Monitoring metryk online i offline

Typowy zestaw kontrolny obejmuje:

  • metryki offline – liczone okresowo na „świeżych” danych z labelami (np. raz na tydzień),

1 KOMENTARZ

  1. Bardzo ciekawy artykuł! Cieszy mnie to, że autor dokładnie omówił różnice metryk jakości modelu ML stosowanych w klasyfikacji, regresji i rankingach. Dzięki temu artykułowi zyskałem lepsze zrozumienie, jak dobrać odpowiednie metryki do konkretnego problemu. Jednakże brakowało mi bardziej szczegółowych przykładów zastosowania poszczególnych metryk w praktyce. Byłoby to bardzo pomocne dla osób początkujących w dziedzinie uczenia maszynowego. Mimo tego, polecam lekturę tego artykułu wszystkim, którzy chcą lepiej zrozumieć temat metryk jakości modelu ML.

Tylko zalogowani mają tu głos w komentarzach.