Precyzja

Odsetek prawidłowych wskazań wśród wszystkich przypadków, które model uznał za pozytywne. Odpowiada na pytanie: gdy model mówi „tak”, jak często ma rację?

Precyzja (ang. precision) to odsetek trafionych wskazań wśród wszystkich przypadków, które model uznał za pozytywne. Mówiąc wprost: gdy klasyfikator krzyczy „tak”, precyzja mówi, jak często naprawdę miał rację. Liczysz ją prosto: precision = TP / (TP + FP), czyli trafione pozytywy (true positives) podzielone przez sumę trafionych i fałszywych alarmów (false positives). Wynik to liczba od 0 do 1, im bliżej jedynki, tym mniej model „strzela na ślepo”.

Do czego to służy

Precyzja interesuje Cię wtedy, gdy koszt fałszywego alarmu jest wysoki. Filtr antyspamowy, który wrzuca ważny e-mail od szefa do spamu, jest gorszy niż taki, który przepuści jedną reklamę. System rekomendacji, który podsuwa kompletnie nietrafione produkty, traci zaufanie użytkownika. W tych scenariuszach wolisz, żeby model odzywał się rzadziej, ale pewniej.

Precyzja sama w sobie nie wystarcza, bo łatwo ją oszukać. Model, który mówi „tak” tylko raz, w przypadku którego jest absolutnie pewny, osiągnie precyzję 1.0 i przegapi resztę. Dlatego zawsze patrzysz na nią w parze z recall (czułością), a często łączysz obie w jedną liczbę przez F1-score (średnia harmoniczna obu).

Przykład z praktyki

W scikit-learn nie liczysz tego ręcznie. Masz prawdziwe etykiety y_true i predykcje y_pred, a potem:

from sklearn.metrics import precision_score

precision_score(y_true, y_pred) zwróci Ci gotowy wynik. Dla pełnego obrazu odpalasz classification_report(y_true, y_pred), które pokaże precyzję, recall i F1 dla każdej klasy naraz. Przy wielu klasach pamiętaj o parametrze average (np. macro traktuje klasy równo, weighted waży je liczebnością).

Częste błędy i mity

  • Mylenie z accuracy. Accuracy to odsetek wszystkich trafień. Przy niezbalansowanych danych (np. 99% przypadków negatywnych) accuracy 99% nic nie znaczy, a precyzja od razu pokazuje prawdę.
  • Patrzenie tylko na precyzję. Wysoka precyzja przy niskim recall oznacza, że model jest ostrożny do bólu i przegapia mnóstwo realnych pozytywów.
  • Ignorowanie progu (threshold). Precyzja zależy od progu decyzyjnego. Podnosząc go, zwykle rośnie precyzja kosztem recall, to klasyczny trade-off.

Pojęcia powiązane

Recall (czułość), F1-score, accuracy, confusion matrix, true positive, false positive, precision-recall curve, threshold.