Există numeroase moduri de a evalua performanța unui clasificator. În acest articol, introducem curba Precision-Recall și examinăm în continuare diferența dintre două metode populare de raportare a performanței: Curba Precision-Recall (PR) și Caracteristica de funcționare a receptorului (ROC) Curba. Curba ROC este deja discutată în articol . Să înțelegem pe scurt ce este o curbă Precision-Recall.
Ce este Precizia și Rechemarea?
Precizie
- Raportul dintre observațiile pozitive prezise corect și toate pozitivele prezise este cunoscut sub numele de precizie.
- Evaluează cât de bine modelul prognozează rezultatele pozitive.
- Formula de precizie este:
- Precizia este preocupată de calitatea predicțiilor pozitive. O precizie ridicată indică faptul că modelul are o rată scăzută de fals pozitive.
Amintiți-vă
- Raportul dintre observațiile pozitive prezise corect și numărul total de observații pozitive reale este cunoscut sub numele de reamintire.
- Evaluează cât de bine poate captura modelul fiecare instanță relevantă.
- Retragerea se calculează folosind această formulă:
- Rechemarea se referă la cantitatea de instanțe relevante capturate de model. O reamintire ridicată indică faptul că modelul are o rată scăzută de fals negative.
În ceea ce privește interpretarea empirică, o matrice de confuzie care cuprinde patru termeni esențiali este instrumentul cel mai util pentru înțelegerea preciziei și a reamintirii:
- True Positive (TP): numărul de instanțe de clasă pozitive care sunt identificate cu precizie
- Fals Pozitiv (FP): numărul de instanțe de clasă negativă care sunt identificate în mod eronat ca instanțe de clasă pozitive este cunoscut sub numele de Fals Pozitiv (FP).
- True Negative (TN): numărul de instanțe de clasă negativă care sunt identificate cu precizie
- Fals Negativ (FN): Numărul de instanțe de clasă pozitive care sunt clasificate în mod eronat drept instanțele de clasă negativă (Fals Negativ sau FN)
Curba Precision-Recall (PR) în Machine Learning
Precizie este proporţia de corect clasificări pozitive (adevărate pozitive) împărțite la numărul total de prezis clasificări pozitive care au fost făcute (adevărat pozitiv + fals pozitiv). Amintiți-vă este proporţia de corect clasificări pozitive (adevărat pozitiv) împărțit la numărul total al cu adevărat clasificări pozitive (adevărat pozitiv + fals negativ).
O curbă PR este pur și simplu un grafic cu valori de precizie pe axa y și valori de Recall pe axa x. Cu alte cuvinte, curba PR conține
- Este important de reținut că Precizia se mai numește și Valoarea Predictivă Pozitivă (PPV).
- Rechemarea se mai numește Sensibilitate, Rată de lovituri sau Rată pozitivă adevărată (TPR).
Figura de mai jos prezintă o comparație a eșantionului de curbe PR și ROC.
Interpretarea unei curbe de precizie-rechemare
Se dorește ca algoritmul să aibă atât precizie ridicată, cât și reamintire ridicată. Cu toate acestea, majoritatea algoritmilor de învățare automată implică adesea un compromis între cei doi. O curbă PR bună are mai mult AUC (aria de sub curbă) . În figura de mai sus, clasificatorul corespunzător liniei albastre are performanțe mai bune decât clasificatorul corespunzător liniei verzi. Este important de reținut că clasificatorul care are o AUC mai mare pe curba ROC va avea întotdeauna o AUC mai mare și pe curba PR. Luați în considerare un algoritm care clasifică dacă un document aparține sau nu categoriei Știri sportive. Să presupunem că există 12 documente, cu următoarele etichete de adevăr (real) și clasa de ieșire a clasificatorului.
ID document | Adevărul de bază | Ieșire clasificator |
---|---|---|
D1 | Sport | Sport |
D2 | Sport | Sport |
D3 | Nu Sport | Sport |
D4 | Sport | Nu Sport |
D5 | Nu Sport | Nu Sport |
D6 | Sport | Nu Sport |
D7 | Nu Sport | Sport |
D8 | Nu Sport | Nu Sport |
D9 | Nu Sport | Nu Sport |
D10 | Sport | Sport |
D11 | Sport | Sport |
D12 | Sport | Nu Sport |
Acum, să găsim valorile TP, TN, FP și FN.
Să folosim un exemplu care implică documente clasificate ca Sport sau Nu sport pentru a explica mai bine definițiile Adevăratelor Pozitive (TP), Adevăratelor Negative (TN), False Pozitive (FP) și False Negative (FN) în contextul clasificării:
Adevărate pozitive (TP): Documente care au fost clasificate cu precizie drept Sport și care au fost de fapt despre sport. Documentele D1, D2, D10 și D11 din acest scenariu sunt exemple de TP.
Adevărate negative (TN): Adevăratele negative sunt acele cazuri în care documentul a fost etichetat în mod corespunzător ca Nu sport, deși nu avea nimic de-a face cu sportul. În acest caz, TN este demonstrat de documentele D5, D8 și D9.
False pozitive (FP): Documente care au fost catalogate din greșeală drept Sport, deși nu aveau nimic de-a face cu sportul. Iată câteva exemple de FP, documentele D3 și D7.
java în timp ce stareaFals Negative (FN): Exemple de documente care au fost etichetate eronat ca Nu sport, dar, în realitate, erau despre sport. Documentele D4, D6 și D12 în acest caz sunt exemple FN.
Având în vedere aceste numere: Oraș =4, TN =3, FP =2, FN =3
În cele din urmă, precizia și retragerea sunt calculate după cum urmează:
Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}
Recall = frac{TP}{TP+FN} = frac{4}{7} Rezultă că rechemarea este de 4/7 când precizia este de 2/3. În mod diferit, dintre toate cazurile care au fost anticipate a fi pozitive, două treimi au fost clasificate cu precizie (precizie), iar dintre toate cazurile care au fost de fapt pozitive, modelul a reușit să surprindă patru șapți dintre ele (reamintire).
Prin stabilirea unor praguri diferite, obținem mai multe astfel de perechi de precizie și de reamintire. Prin trasarea mai multor astfel de perechi P-R cu oricare dintre valori cuprinse între 0 și 1, obținem o curbă PR.
Aveți nevoie de o curbă PR când există curba ROC?
Curba PR este deosebit de utilă în raportarea rezultatelor de regăsire a informațiilor.
Recuperarea informațiilor implică căutarea într-un grup de documente pentru a le găsi pe cele care sunt relevante pentru o anumită interogare de utilizator. De exemplu, să presupunem că utilizatorul introduce o interogare de căutare Pink Elephants. Motorul de căutare parcurge milioane de documente (folosind niște algoritmi optimizați) pentru a regăsi o mână de documente relevante. Prin urmare, putem presupune cu siguranță că nr. de documente relevante va fi mult mai mică comparativ cu nr. a documentelor nerelevante.
În acest scenariu,
- TP = Nr. documente preluate care sunt relevante (rezultate bune).
- FP = Nr. documente preluate care nu sunt relevante (rezultate de căutare false).
- TN = Nr. documente nerecuperate care nu sunt relevante.
- FN = Nr. documente nerecuperate care sunt relevante (documente bune pe care le-am omis).
Curba ROC este un grafic care conține Recall = TPR =
În plus, FPR nu ne ajută să evaluăm bine un sistem de recuperare pentru că vrem să ne concentrăm mai mult pe documentele preluate, și nu pe cele nerecuperate. Curba PR ajută la rezolvarea acestei probleme. Curba PR are valoarea Recall (TPR) pe axa x și precizia =
Când să folosiți curbele ROC vs. Precision-Recall?
ROC Curbele (Caracteristică de funcționare a receptorului) sunt potrivite atunci când distribuția de clasă este echilibrată, iar falsele pozitive și false negative au consecințe similare. Ele descriu compromisul dintre sensibilitate și specificitate. În schimb, curbele Precision-Recall sunt de preferat atunci când se ocupă cu seturi de date dezechilibrate, concentrându-se pe performanța pozitivă a predicției de clasă.
Precision-Recall oferă informații despre capacitatea modelului de a clasifica corect cazurile pozitive. Alegerea între ROC și Precision-Recall depinde de nevoile specifice ale problemei, subliniind importanța înțelegerii distribuției datelor și a consecințelor diferitelor tipuri de erori.
ridhima tiwari
Implementarea codului de bază pentru curba de precizie-rechemare
Importul bibliotecilor necesare
Aceste linii de cod importă Biblioteci Python și modulele necesare pentru a genera o curbă de precizie-rechemare cu sci-kit-learn și vizualizați rezultatele cu Matplotlib . Matplotlib este o bibliotecă populară de trasare Python, iar pyplot oferă o interfață simplă pentru crearea diferitelor tipuri de diagrame și diagrame. Regresie logistică este un algoritm de clasificare popular pentru sarcini de clasificare binară și multiclasă. Curba de precizie-rechemare și AUC sunt metrici de evaluare populare pentru clasificare binară probleme, în special atunci când aveți de-a face cu seturi de date dezechilibrate.
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>
Setul de date utilizat
Acest cod generează un set de date sintetice pentru o problemă de clasificare binară folosind funcția „make_classification” a lui sci-kit-learn.
Python3 # Generate a synthetic dataset X, y = make_classification( n_samples=1000, n_features=20, n_classes=2, random_state=42)>
Antrenează și Testează Split
The train_test_split funcția din scikit-learn este folosită în acest fragment de cod pentru a împărți setul de date sintetice generat anterior (X și y) în seturi de antrenament și de testare. Această împărțire este un pas critic în evaluarea modelelor de învățare automată. Modelul va fi instruit pe datele X_train și y_train înainte de a fi testat pe datele X_test și y_test pentru a vedea cât de bine funcționează pe mostre nevăzute. Funcția train_test_split separă seturile de antrenament și de testare, asigurându-se că performanța modelului reflectă generalizarea acestuia la date noi, nevăzute anterior.
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)>
Construirea modelului
Aici folosim regresia logistică pentru a antrena modelul pe setul de date de antrenament. Un algoritm popular pentru clasificarea binară, regresia logistică este implementată de clasa 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)>
Predicția modelului
Aceste calcule oferă, de obicei, valori de precizie și de reamintire pentru diferite praguri de decizie, pe care le puteți utiliza pentru a desena o curbă de precizie-rechemare sau pentru a examina importanța relativă a preciziei și a reamintirii în diferite momente în timp. Și calculând Zona sub curbă (AUC) pentru curba de precizie-rechemare.
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)>
Trasarea curbei PR
Acest bloc de cod oferă o metodă standard de vizualizare a curbei de precizie-rechemare și vă permite să evaluați compromisul dintre precizie și rechemare la diferite praguri de decizie. Performanța generală a modelului pe curba de precizie-rechemare este rezumată de scorul AUC afișat în legendă.
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()>
Ieșire :

Curba de precizie-rechemare
Întrebări frecvente (FAQs)
Î. Ce este Precizia?
Raportul dintre observațiile pozitive prezise cu precizie și numărul total de pozitive prezise este cunoscut sub numele de precizie. Evaluează cât de bine modelul prezice rezultatele pozitive. Următoarea este formula de precizie:
Precision = frac{True Positives}{True Positives + False Positives}
Î. Ce este rechemarea?
Reamintirea este raportul dintre observațiile pozitive prezise corect și numărul total de pozitive reale. Se mai numește sensibilitate sau rata pozitivă adevărată. Evaluează cât de bine poate capta modelul fiecare instanță relevantă. Retragerea se calculează folosind următoarea formulă:
Precision = frac{True Positives}{True Positives + False Negatives}
Î. De ce avem nevoie de precizie și reamintire?
Pentru a evalua performanța unui clasificator în probleme de clasificare binară și multiclasă, sunt utilizate două metrici de evaluare: precizie și reamintire. Precizia predicției pozitive este măsurată prin precizie, iar caracterul complet al predicției pozitive este măsurată prin reamintire.
Î. Care este compromisul între rechemare și precizie?
Reamintirea și precizia sunt adesea compromisuri. Rechemarea poate avea de suferit pe măsură ce precizia crește și invers. Prin schimbarea barei pentru identificarea unei instanțe pozitive, acest compromis poate fi gestionat. În schimb, un prag mai scăzut are ca rezultat o reamintire mai mică, dar o precizie mai mare. Decizia între reamintire și precizie se bazează pe detaliile problemei date.
Î. Ce este scorul F1 și cum se leagă acesta de precizie și reamintire?
Media armonică a reamintirii și preciziei este cunoscută sub numele de scor F1. Oferă o măsurare corectă care ia în considerare atât fals pozitive, cât și false negative. Scorul F1 se calculează folosind următoarea formulă:
F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall} Scorul F1 este util în special atunci când precizia și rememorarea sunt dezechilibrate și se dorește un echilibru între cele două.
hartă java