Istnieje wiele sposobów oceny wydajności klasyfikatora. W tym artykule przedstawiamy krzywą precyzji przypomnienia i dokładniej badamy różnicę między dwiema popularnymi metodami raportowania wyników: krzywą precyzji przypomnienia (PR) i Charakterystyka pracy odbiornika (ROC) Krzywa. Krzywa ROC została już omówiona w artykuł . Przyjrzyjmy się pokrótce, czym jest krzywa Precyzja-Przypomnienie.
Co to jest precyzja i pamięć?
Precyzja
- Stosunek prawidłowo przewidywanych pozytywnych obserwacji do wszystkich przewidywanych pozytywnych obserwacji nazywany jest precyzją.
- Mierzy, jak dobrze model prognozuje pozytywne wyniki.
- Wzór na precyzję to:
- Precyzja dotyczy jakości pozytywnych przewidywań. Wysoka precyzja wskazuje, że model ma niski odsetek wyników fałszywie dodatnich.
Przypomnienie sobie czegoś
- Stosunek prawidłowo przewidywanych pozytywnych obserwacji do całkowitej liczby faktycznie pozytywnych obserwacji nazywany jest przypomnieniem.
- Mierzy, jak dobrze model może uchwycić każde istotne wystąpienie.
- Wycofanie jest obliczane przy użyciu następującego wzoru:
- Przypomnienie dotyczy liczby odpowiednich instancji uchwyconych przez model. Wysoka powtarzalność wskazuje, że model ma niski odsetek wyników fałszywie ujemnych.
Jeśli chodzi o interpretację empiryczną, najbardziej użytecznym narzędziem do zrozumienia precyzji i zapamiętywania jest macierz zamieszania składająca się z czterech podstawowych terminów:
- True Positive (TP): Liczba dokładnie zidentyfikowanych instancji klasy pozytywnej
- Fałszywie pozytywne (FP): Liczba instancji klasy negatywnej, które są błędnie identyfikowane jako instancje klasy pozytywne, nazywana jest fałszywie pozytywną (FP).
- True Negative (TN): Liczba dokładnie zidentyfikowanych instancji klasy negatywnej
- Fałszywie ujemne (FN): Liczba instancji klasy pozytywnej, które zostały błędnie sklasyfikowane jako instancje klasy negatywnej (fałszywie ujemne lub FN)
Krzywa precyzyjnego przywoływania (PR) w uczeniu maszynowym
Precyzja jest proporcją prawidłowy pozytywne klasyfikacje (prawdziwie pozytywne) podzielone przez całkowitą liczbę przewidywane pozytywne klasyfikacje, które zostały dokonane (prawdziwie pozytywne + fałszywie pozytywne). Przypomnienie sobie czegoś jest proporcją prawidłowy pozytywne klasyfikacje (prawdziwie pozytywne) podzielone przez całkowitą liczbę naprawdę pozytywne klasyfikacje (prawdziwie pozytywne + fałszywie negatywne).
Krzywa PR to po prostu wykres z wartościami Precyzji na osi Y i wartościami Przywołania na osi X. Innymi słowy, krzywa PR zawiera
- Należy zauważyć, że precyzja nazywana jest także dodatnią wartością predykcyjną (PPV).
- Przywołanie nazywane jest również czułością, współczynnikiem trafień lub współczynnikiem prawdziwie dodatnim (TPR).
Poniższy rysunek przedstawia porównanie przykładowych krzywych PR i ROC.
Interpretacja krzywej precyzji przypomnienia
Pożądane jest, aby algorytm charakteryzował się zarówno wysoką precyzją, jak i wysoką powtarzalnością. Jednak większość algorytmów uczenia maszynowego często wiąże się z kompromisem między nimi. Dobra krzywa PR ma większą AUC (obszar pod krzywą) . Na powyższym rysunku klasyfikator odpowiadający niebieskiej linii ma lepszą wydajność niż klasyfikator odpowiadający zielonej linii. Należy zauważyć, że klasyfikator, który ma wyższą wartość AUC na Krzywa ROC zawsze będzie miał również wyższe AUC na krzywej PR. Rozważmy algorytm, który klasyfikuje, czy dokument należy do kategorii Wiadomości sportowe. Załóżmy, że istnieje 12 dokumentów z następującymi podstawowymi informacjami (rzeczywistymi) i etykietami klas wyjściowych klasyfikatora.
rodzaje uczenia maszynowego
Identyfikator dokumentu | Prawda gruntowa | Dane wyjściowe klasyfikatora |
---|---|---|
D1 | Sporty | Sporty |
D2 | Sporty | Sporty |
D3 | Nie sport | Sporty |
D4 | Sporty | Nie sport |
D5 | Nie sport | Nie sport |
D6 | Sporty | Nie sport |
D7 | Nie sport | Sporty |
D8 | Nie sport | Nie sport |
D9 | Nie sport | Nie sport |
D10 | Sporty | Sporty |
D11 | Sporty | Sporty |
D12 | Sporty | Nie sport |
Znajdźmy teraz wartości TP, TN, FP i FN.
Użyjmy przykładu dokumentów sklasyfikowanych jako sportowe lub niesportowe, aby lepiej wyjaśnić definicje prawdziwie pozytywnych (TP), prawdziwie negatywnych (TN), fałszywie pozytywnych (FP) i fałszywie negatywnych (FN) w kontekście klasyfikacji:
Prawdziwe pozytywy (TP): Dokumenty, które zostały trafnie zaklasyfikowane jako sport i które w rzeczywistości dotyczyły sportu. Dokumenty D1, D2, D10 i D11 w tym scenariuszu są instancjami TP.
Prawdziwie negatywy (TN): Prawdziwie negatywne to przypadki, w których dokument został odpowiednio oznaczony jako „Niesportowy”, mimo że nie miał nic wspólnego ze sportem. W tym przypadku TN wykazano w dokumentach D5, D8 i D9.
Fałszywie pozytywne (FP): Dokumenty błędnie zaklasyfikowane jako sportowe, mimo że nie miały ze sportem nic wspólnego. Oto kilka przykładów FP, dokumenty D3 i D7.
Fałszywie negatywne (FN): Przykłady dokumentów błędnie oznaczonych jako „Nie sport”, choć w rzeczywistości dotyczyły sportu. Dokumenty D4, D6 i D12 w tym przypadku są przykładami FN.
Biorąc pod uwagę te liczby: Miasto =4, TN =3, FP =2, FN =3
Na koniec precyzję i przypominanie oblicza się w następujący sposób:
Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}
Recall = frac{TP}{TP+FN} = frac{4}{7} Wynika z tego, że przywołanie wynosi 4/7, gdy precyzja wynosi 2/3. Inaczej mówiąc, ze wszystkich przypadków, które przewidywano jako pozytywne, dwie trzecie zostały dokładnie sklasyfikowane (precyzja), a ze wszystkich przypadków, które były rzeczywiście pozytywne, model był w stanie uchwycić cztery siódme z nich (przypomnijmy).
Ustawiając różne progi, uzyskujemy wiele par o takiej precyzji, przypominania. Wykreślając wiele takich par P-R o dowolnej wartości z zakresu od 0 do 1, otrzymujemy krzywą PR.
Potrzebujesz krzywej PR, gdy istnieje krzywa ROC?
Krzywa PR jest szczególnie przydatna w raportowaniu wyników wyszukiwania informacji.
Wyszukiwanie informacji obejmuje przeszukiwanie puli dokumentów w celu znalezienia tych, które odpowiadają konkretnemu zapytaniu użytkownika. Załóżmy na przykład, że użytkownik wprowadza zapytanie Różowe Słonie. Wyszukiwarka przegląda miliony dokumentów (przy użyciu zoptymalizowanych algorytmów) w celu znalezienia kilku odpowiednich dokumentów. Można więc śmiało założyć, że nie. odpowiednich dokumentów będzie znacznie mniejsza w porównaniu do nr. nieistotnych dokumentów.
Linux, które polecenie
W tym scenariuszu,
- TP = liczba wyszukanych i istotnych dokumentów (dobre wyniki).
- FP = liczba wyszukanych dokumentów, które nie są istotne (fałszywe wyniki wyszukiwania).
- TN = liczba nieodzyskanych dokumentów, które są nieistotne.
- FN = liczba nieodnalezionych dokumentów, które są istotne (dobre dokumenty, które pominęliśmy).
Krzywa ROC to wykres zawierający Recall = TPR =
Co więcej, FPR nie pomaga nam dobrze ocenić systemu wyszukiwania, ponieważ chcemy bardziej skoncentrować się na dokumentach odzyskanych, a nie tych, które nie zostały odzyskane. Krzywa PR pomaga rozwiązać ten problem. Krzywa PR ma wartość przywołania (TPR) na osi x i precyzję =
Kiedy stosować krzywe ROC a krzywe przypomnienia o precyzji?
ROC Krzywe (charakterystyka działania odbiornika) są odpowiednie, gdy rozkład klas jest zrównoważony, a wyniki fałszywie dodatnie i fałszywie ujemne mają podobne konsekwencje. Przedstawiają kompromis między czułością a swoistością. Natomiast krzywe Precision-Recall są preferowane w przypadku niezrównoważonych zbiorów danych, koncentrując się na wydajności przewidywania klas dodatnich.
Precision-Recall zapewnia wgląd w zdolność modelu do prawidłowego klasyfikowania pozytywnych instancji. Wybór pomiędzy ROC a Precision-Recall zależy od konkretnych potrzeb problemu, podkreślając znaczenie zrozumienia dystrybucji danych i konsekwencji różnych typów błędów.
Podstawowa implementacja kodu dla krzywej precyzyjnego przywoływania
Importowanie niezbędnych bibliotek
Te linie kodu importują plik Biblioteki Pythona oraz moduły wymagane do wygenerowania krzywej precyzji przypomnienia sci-kit-naucz się i wizualizuj wyniki za pomocą Matplotlib . Matplotlib to popularna biblioteka do kreślenia w języku Python, a pyplot zapewnia prosty interfejs do tworzenia różnego rodzaju wykresów i wykresów. Regresja logistyczna to popularny algorytm klasyfikacji do zadań klasyfikacji binarnej i wieloklasowej. Krzywa precyzji przypominania i AUC to popularne wskaźniki oceny klasyfikacja binarna problemy, szczególnie w przypadku niezrównoważonych zbiorów danych.
Python3 import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import precision_recall_curve, auc>
Wykorzystany zbiór danych
Ten kod generuje syntetyczny zbiór danych dla problemu klasyfikacji binarnej przy użyciu funkcji „make_classification” sci-kit-learn.
Python3 # Generate a synthetic dataset X, y = make_classification( n_samples=1000, n_features=20, n_classes=2, random_state=42)>
Podział pociągów i testów
The train_test_split Funkcja w scikit-learn została użyta w tym fragmencie kodu do podzielenia wcześniej wygenerowanego syntetycznego zbioru danych (X i y) na zbiory szkoleniowe i testowe. Ten podział jest krytycznym krokiem w ocenie modeli uczenia maszynowego. Model zostanie wyszkolony na danych X_train i y_train przed przetestowaniem na danych X_test i y_test, aby sprawdzić, jak dobrze radzi sobie na niewidocznych próbkach. Funkcja train_test_split oddziela zbiory uczące i testowe, zapewniając, że wydajność modelu odzwierciedla jego uogólnienie na nowe, wcześniej niewidziane dane.
Python3 # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)>
Budowa modelu
W tym przypadku używamy regresji logistycznej do uczenia modelu na zestawie danych szkoleniowych. Popularny algorytm klasyfikacji binarnej, regresja logistyczna, jest implementowany przez klasę sci-kit-learn LogisticRegression.
Python3 # Train a logistic regression model (you can replace this with your own classifier) model = LogisticRegression() model.fit(X_train, y_train)>
Przewidywanie modelu
Obliczenia te zwykle podają wartości precyzji i przypominania dla różnych progów decyzyjnych, których można użyć do narysowania krzywej precyzji zapamiętania lub sprawdzenia względnego znaczenia precyzji i przypominania w różnych momentach. I obliczenie Obszar pod krzywą (AUC) dla krzywej precyzji przypomnienia.
Python3 # Predict probabilities for positive class y_scores = model.predict_proba(X_test)[:, 1] # Calculate precision and recall precision, recall, thresholds = precision_recall_curve(y_test, y_scores) # Calculate Area Under the Curve (AUC) for precision-recall curve auc_score = auc(recall, precision)>
Wykreślanie krzywej PR
Ten blok kodu zapewnia standardową metodę wizualizacji krzywej precyzji przypominania i pozwala ocenić kompromis między precyzją a przypominaniem na różnych progach decyzyjnych. Ogólną wydajność modelu na krzywej precyzji przypominania podsumowuje wynik AUC pokazany w legendzie.
Python3 # Plot precision-recall curve plt.figure(figsize=(8, 6)) plt.plot(recall, precision, label=f'Precision-Recall Curve (AUC = {auc_score:.2f})') plt.xlabel('Recall') plt.ylabel('Precision') plt.title('Precision-Recall Curve') plt.legend() plt.show()>
Wyjście :

Krzywa precyzji i przypomnienia
Często zadawane pytania (FAQ)
P. Co to jest precyzja?
Stosunek dokładnie przewidywanych pozytywnych obserwacji do całkowitej liczby przewidywanych pozytywnych obserwacji nazywany jest precyzją. Mierzy, jak dobrze model przewiduje pozytywne wyniki. Poniżej znajduje się wzór na dokładność:
Precision = frac{True Positives}{True Positives + False Positives}
P. Co to jest wycofanie?
Przypomnienie to stosunek prawidłowo przewidywanych pozytywnych obserwacji do całkowitej liczby faktycznie pozytywnych obserwacji. Nazywa się to również wrażliwością lub prawdziwie dodatnią stopą procentową. Ocenia, jak dobrze model może uchwycić każdą istotną instancję. Wycofanie jest obliczane przy użyciu następującego wzoru:
Precision = frac{True Positives}{True Positives + False Negatives}
P. Dlaczego potrzebujemy precyzji i zapamiętywania?
Aby ocenić skuteczność klasyfikatora w problemach klasyfikacji binarnej i wieloklasowej, stosuje się dwie metryki oceny: precyzję i przypominanie. Dokładność przewidywania pozytywnego mierzy się precyzją, a kompletność przewidywania pozytywnego mierzy się przywołaniem.
P. Jaki jest kompromis między wycofaniem a precyzją?
Pamięć i precyzja to często kompromisy. Przypomnienie może ucierpieć wraz ze wzrostem precyzji i odwrotnie. Zmieniając pasek identyfikujący pozytywny przypadek, można zarządzać tym kompromisem. I odwrotnie, niższy próg skutkuje mniejszą pamięcią, ale wyższą precyzją. Decyzja pomiędzy wycofaniem a precyzją opiera się na szczegółach danego problemu.
P. Jaki jest wynik w F1 i jaki ma on związek z precyzją i zapamiętywaniem?
Średnia harmoniczna zapamiętywania i precyzji jest znana jako wynik F1. Oferuje uczciwy pomiar, który uwzględnia zarówno wyniki fałszywie dodatnie, jak i fałszywie ujemne. Wynik F1 oblicza się według następującego wzoru:
F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall} Wynik F1 jest szczególnie przydatny, gdy precyzja i zapamiętywanie nie są zrównoważone, a pożądana jest równowaga między nimi.
FCFS