logo

Precizitātes-atsaukt līkne | ML

Ir vairāki veidi, kā novērtēt klasifikatora veiktspēju. Šajā rakstā mēs iepazīstinām ar precizitātes-atgādināšanas līkni un sīkāk izpētām atšķirību starp divām populārām veiktspējas ziņošanas metodēm: precizitātes-atgādināšanas (PR) līkni un Uztvērēja darbības raksturlielums (ROC) Līkne. ROC līkne jau ir apspriesta rakstu . Īsi sapratīsim, kas ir precizitātes-atgādināšanas līkne.

Kas ir precizitāte un atsaukšana?

Precizitāte

  • Pareizi prognozēto pozitīvo novērojumu attiecība pret visiem prognozētajiem pozitīvajiem ir pazīstama kā precizitāte.
  • Tas novērtē, cik labi modelis prognozē pozitīvos rezultātus.
  • Precizitātes formula ir:

Precision = frac{True Positives}{True Positives + False Positives}



  • Precizitāte ir saistīta ar pozitīvu prognožu kvalitāti. Augsta precizitāte norāda, ka modelim ir zems viltus pozitīvu rezultātu līmenis.

Atsaukt

  • Pareizi prognozēto pozitīvo novērojumu attiecība pret kopējo faktisko pozitīvo novērojumu skaitu ir pazīstama kā atsaukšana.
  • Tas novērtē, cik labi modelis var uztvert katru atbilstošo gadījumu.
  • Atgādināšanu aprēķina, izmantojot šo formulu:

Precision = frac{True Positives}{True Positives + False Negatives}

  • Atgādināšana attiecas uz modeli tverto attiecīgo gadījumu skaitu. Augsts atsaukšanas rādītājs norāda, ka modelim ir zems viltus negatīvu gadījumu skaits.

Empīriskās interpretācijas ziņā neskaidrības matrica, kurā ir četri būtiski termini, ir visnoderīgākais instruments, lai izprastu precizitāti un atsaukšanu:

  • True Positive (TP): precīzi identificēto pozitīvo klases gadījumu skaits
  • Viltus pozitīvs (FP): negatīvo klases gadījumu skaits, kas kļūdaini identificēti kā pozitīvi klases gadījumi, ir zināms kā viltus pozitīvs (FP).
  • True Negative (TN): precīzi identificēto negatīvo klases gadījumu skaits
  • Viltus negatīvs (FN): to pozitīvo klases gadījumu skaits, kas kļūdaini klasificēti kā negatīvi klases gadījumi (viltus negatīvs vai FN).

Precizitātes-atgādināšanas (PR) līkne mašīnmācībā

Precizitāte ir proporcija pareizi pozitīvās klasifikācijas (patiesi pozitīvas), dalītas ar kopējo skaitu prognozēts veiktās pozitīvās klasifikācijas (patiesi pozitīva + viltus pozitīva). Atsaukt ir proporcija pareizi pozitīvās klasifikācijas (patiesi pozitīvas), dalītas ar kopējo skaitu patiesi pozitīvas klasifikācijas (patiesi pozitīva + viltus negatīva).



PR līkne ir vienkārši grafiks ar precizitātes vērtībām uz y ass un atsaukšanas vērtībām uz x ass. Citiem vārdiem sakot, PR līkne saturfrac{TP}{TP+FP} uz y ass unfrac{TP}{TP+FN} uz x ass.

  • Ir svarīgi atzīmēt, ka precizitāti sauc arī par pozitīvo paredzamo vērtību (PPV).
  • Atsaukšanu sauc arī par jutīgumu, trāpījumu skaitu vai patiesi pozitīvo līmeni (TPR).

Zemāk esošajā attēlā parādīts PR un ROC paraugu līkņu salīdzinājums.

Precizitātes-atgādināšanas līknes interpretācija

Vēlams, lai algoritmam būtu gan augsta precizitāte, gan augsta atsaukšana. Tomēr lielākā daļa mašīnmācīšanās algoritmu bieži ietver kompromisu starp abiem. Laba PR līkne ir lielāka AUC (laukums zem līknes) . Augšējā attēlā klasifikatoram, kas atbilst zilajai līnijai, ir labāka veiktspēja nekā klasifikatoram, kas atbilst zaļajai līnijai. Ir svarīgi atzīmēt, ka klasifikators, kuram ir augstāks AUC uz ROC līkne vienmēr būs augstāks AUC arī PR līknē. Apsveriet algoritmu, kas klasificē, vai dokuments pieder kategorijai Sporta ziņas. Pieņemsim, ka ir 12 dokumenti ar šādām pamata patiesības (faktiskām) un klasifikatora izvades klases etiķetēm.



Dokumenta IDZemes patiesībaKlasifikatora izvade
D1SportsSports
D2SportsSports
D3Nevis SportsSports
D4SportsNevis Sports
D5Nevis SportsNevis Sports
D6SportsNevis Sports
D7Nevis SportsSports
D8Nevis SportsNevis Sports
D9Nevis SportsNevis Sports
D10SportsSports
D11SportsSports
D12SportsNevis Sports

Tagad atradīsim TP, TN, FP un FN vērtības.

Izmantosim piemēru, kas ietver dokumentus, kas klasificēti kā Sports vai Not sports, lai labāk izskaidrotu patieso pozitīvo (TP), patieso negatīvo (TN), viltus pozitīvu (FP) un viltus negatīvo (FN) definīcijas klasifikācijas kontekstā:

Patiesi pozitīvie aspekti (TP): Dokumenti, kas tika precīzi klasificēti kā sports un kas patiesībā bija par sportu. Dokumenti D1, D2, D10 un D11 šajā scenārijā ir TP gadījumi.

Patiesie negatīvie (TN): Patiesie negatīvie ir gadījumi, kad dokuments tika atbilstoši marķēts kā Nav sports, lai gan tam nebija nekāda sakara ar sportu. Šajā gadījumā TN parāda dokumenti D5, D8 un D9.

Austrālijas pilsētas

Viltus pozitīvi (FP): Dokumenti, kas kļūdaini tika klasificēti kā sports, lai gan tiem nebija nekāda sakara ar sportu. Šeit ir daži FP piemēri, dokumenti D3 un D7.

Viltus negatīvi (FN): Dokumentu piemēri, kas kļūdaini tika apzīmēti kā Nevis sports, bet patiesībā tie bija par sportu. Dokumenti D4, D6 un D12 šajā gadījumā ir FN piemēri.

Ņemot vērā šos skaitļus: Pilsēta =4, TN =3, FP =2, FN =3

Visbeidzot, precizitāti un atsaukšanu aprēķina šādi:

Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}

Recall = frac{TP}{TP+FN} = frac{4}{7}

No tā izriet, ka atsaukšana ir 4/7, ja precizitāte ir 2/3. Citādi apgalvojot, ka no visiem gadījumiem, kas bija sagaidāmi pozitīvi, divas trešdaļas bija precīzi klasificētas (precizitāte), un no visiem gadījumiem, kas bija faktiski pozitīvi, modelis spēja uztvert četras septītās no tiem (atsaukt).

Nosakot dažādus sliekšņus, mēs iegūstam vairākus šādus precizitātes, atsaukšanas pārus. Atzīmējot vairākus šādus P-R pārus ar vienu no vērtībām no 0 līdz 1, mēs iegūstam PR līkni.

Nepieciešama PR līkne, ja pastāv ROC līkne?

PR līkne ir īpaši noderīga, ziņojot par informācijas izguves rezultātiem.
Informācijas izguve ietver dokumentu kopas meklēšanu, lai atrastu tos, kas attiecas uz konkrētu lietotāja vaicājumu. Piemēram, pieņemsim, ka lietotājs ievada meklēšanas vaicājumu Pink Elephants. Meklētājprogramma pārlasa miljoniem dokumentu (izmantojot dažus optimizētus algoritmus), lai izgūtu dažus atbilstošus dokumentus. Tādējādi mēs varam droši pieņemt, ka Nr. attiecīgo dokumentu būs daudz mazāk, salīdzinot ar Nr. neatbilstošiem dokumentiem.

Šajā scenārijā

  • TP = atbilstošo izgūto dokumentu skaits (labi rezultāti).
  • FP = izgūto neatbilstošo dokumentu skaits (viltus meklēšanas rezultāti).
  • TN = to neizgūto dokumentu skaits, kuriem nav nozīmes.
  • FN = attiecīgo neizgūto dokumentu skaits (labus dokumentus mēs palaidām garām).

ROC līkne ir diagramma, kurā ir Atsaukt = TPR =frac{TP}{TP+FN}uz x ass un FPR =frac{FP}{FP+TN}uz y ass. Kopš Nr. patieso negatīvu, t.i., neizgūtu dokumentu, kuriem nav nozīmes, ir tik milzīgs skaits, RBO kļūst nenozīmīgi mazs.

Turklāt FPR mums nepalīdz labi novērtēt izguves sistēmu, jo mēs vēlamies vairāk koncentrēties uz izgūtajiem dokumentiem, nevis neizgūtajiem. PR līkne palīdz atrisināt šo problēmu. PR līknei ir atsaukšanas vērtība (TPR) uz x ass, un precizitāte =frac{TP}{TP+FP}uz y ass. Precizitāte palīdz izcelt cik atbilstoši ir izgūtie rezultāti , kas ir svarīgāk, vērtējot IR sistēmu. Tādējādi PR līkne bieži ir biežāk sastopama ap problēmām, kas saistītas ar informācijas izguvi.

Kad izmantot ROC un precizitātes atgādinājuma līknes?

ROC (Receiver Operating Characteristic) līknes ir piemērotas, ja klašu sadalījums ir līdzsvarots, un viltus pozitīvajiem un viltus negatīvajiem ir līdzīgas sekas. Tie attēlo kompromisu starp jutīgumu un specifiskumu. Turpretim Precision-Recall līknēm ir vēlams izmantot nelīdzsvarotu datu kopas, koncentrējoties uz pozitīvu klases prognozēšanas veiktspēju.

Precision-Recall sniedz ieskatu modeļa spējā pareizi klasificēt pozitīvos gadījumus. Izvēle starp ROC un Precision-Recall ir atkarīga no problēmas konkrētajām vajadzībām, uzsverot, cik svarīgi ir izprast datu sadalījumu un dažāda veida kļūdu sekas.

Pamatkoda ieviešana precizitātes-atgādināšanas līknei

Nepieciešamo bibliotēku importēšana

Šīs koda rindas importē Python bibliotēkas un moduļi, kas nepieciešami, lai ģenerētu precīzas atsaukšanas līkni ar sci-kit-learn un vizualizēt rezultātus ar Matplotlib . Matplotlib ir populāra Python diagrammu bibliotēka, un pyplot nodrošina vienkāršu saskarni dažāda veida diagrammu un diagrammu izveidei. Loģistiskā regresija ir populārs klasifikācijas algoritms bināro un vairāku klašu klasifikācijas uzdevumiem. Precizitātes-atgādināšanas līkne un AUC ir populāri novērtēšanas rādītāji binārā klasifikācija problēmas, jo īpaši, strādājot ar nelīdzsvarotām datu kopām.

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>

Izmantotā datu kopa

Šis kods ģenerē sintētisku datu kopu binārai klasifikācijas problēmai, izmantojot sci-kit-learn funkciju “make_classification”.

Python3 # Generate a synthetic dataset X, y = make_classification( n_samples=1000, n_features=20, n_classes=2, random_state=42)>

Apmācība un pārbaude Split

The train_test_split Scikit-learn funkcija tiek izmantota šajā koda fragmentā, lai sadalītu iepriekš ģenerēto sintētisko datu kopu (X un y) apmācības un testēšanas kopās. Šis sadalījums ir būtisks solis mašīnmācīšanās modeļu novērtēšanā. Modelis tiks apmācīts par X_train un y_train datiem, pirms tiks pārbaudīts ar X_test un y_test datiem, lai noskaidrotu, cik labi tas darbojas neredzētos paraugos. Funkcija train_test_split atdala apmācības un testēšanas kopas, nodrošinot, ka modeļa veiktspēja atspoguļo tā vispārināšanu jauniem, iepriekš neredzētiem datiem.

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)>

Modeļu veidošana

Šeit mēs izmantojam loģistikas regresiju, lai apmācītu modeli apmācības datu kopā. Populārs binārās klasifikācijas, loģistikas regresijas algoritms ir ieviests ar sci-kit-learn klasi LogisticRegression.

Python3 # Train a logistic regression model (you can replace this with your own classifier) model = LogisticRegression() model.fit(X_train, y_train)>

Modeļa prognozēšana

Šie aprēķini parasti sniedz dažādu lēmumu sliekšņu precizitātes un atsaukšanas vērtības, kuras varat izmantot, lai uzzīmētu precizitātes-atgādināšanas līkni vai pārbaudītu precizitātes un atsaukšanas relatīvo nozīmi dažādos laika punktos. Un aprēķinot Apgabals zem līknes (AUC) precizitātes-atsauces līknei.

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)>

PR līknes uzzīmēšana

Šis koda bloks nodrošina standarta metodi precizitātes-atsauces līknes vizualizēšanai un ļauj novērtēt precizitātes un atsaukšanas kompromisu pie dažādiem lēmuma sliekšņiem. Modeļa kopējo veiktspēju precizitātes-atgādināšanas līknē apkopo leģendā parādītais AUC rādītājs.

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()>

Izvade :


centrālais attēls css
Precizitāte-Atsaukt-līkne-Geeksforgeeks

Precizitātes-atgādināšanas līkne


Bieži uzdotie jautājumi (FAQ)

J. Kas ir precizitāte?

Precīzi prognozēto pozitīvo novērojumu attiecība pret kopējo prognozēto pozitīvo novērojumu skaitu ir pazīstama kā precizitāte. Tas novērtē, cik labi modelis paredz pozitīvos rezultātus. Tālāk ir norādīta precizitātes formula:

Precision = frac{True Positives}{True Positives + False Positives}

J. Kas ir atsaukšana?

Atgādinājums ir pareizi prognozēto pozitīvo novērojumu attiecība pret kopējo faktisko pozitīvo novērojumu skaitu. To sauc arī par jutīgumu vai patiesi pozitīvu likmi. Tas novērtē, cik labi modelis var uztvert katru atbilstošo gadījumu. Atgādināšanu aprēķina, izmantojot šādu formulu:

Precision = frac{True Positives}{True Positives + False Negatives}

J. Kāpēc mums ir vajadzīga precizitāte un atsaukšana?

Lai novērtētu klasifikatora veiktspēju binārās un daudzklases klasifikācijas problēmās, tiek izmantoti divi novērtēšanas rādītāji: precizitāte un atsaukšana. Pozitīvās prognozēšanas precizitāte tiek mērīta ar precizitāti, un pozitīvas prognozes pilnīgums tiek mērīts ar atsaukšanu.

J. Kāds ir atsaukšanas un precizitātes kompromiss?

Atgādināšana un precizitāte bieži ir kompromisi. Palielinoties precizitātei, atsaukšana var ciest un otrādi. Mainot joslu pozitīvas instances identificēšanai, šo kompromisu var pārvaldīt. Un otrādi, zemāks slieksnis nodrošina mazāku atsaukšanu, bet augstāku precizitāti. Lēmums starp atsaukšanu un precizitāti ir balstīts uz konkrētās problēmas detaļām.

J. Kas ir F1 rezultāts un kā tas ir saistīts ar precizitāti un atsaukšanu?

Atsaucības un precizitātes harmoniskais vidējais ir pazīstams kā F1 rādītājs. Tas piedāvā godīgu mērījumu, kurā tiek ņemti vērā gan viltus pozitīvi, gan viltus negatīvi rezultāti. F1 rezultātu aprēķina, izmantojot šādu formulu:

F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall}

F1 rezultāts ir īpaši noderīgs, ja precizitāte un atsaukšana nav līdzsvarā un ir vēlams līdzsvars starp abiem.