Obstaja veliko načinov za ocenjevanje učinkovitosti klasifikatorja. V tem članku predstavljamo krivuljo natančnega priklica in nadalje preučujemo razliko med dvema priljubljenima metodama poročanja o uspešnosti: krivuljo natančnega priklica (PR) in Delovna karakteristika sprejemnika (ROC) Krivulja. Krivulja ROC je že obravnavana v Članek . Naj na kratko razumemo, kaj je krivulja Precision-Recall.
Kaj je natančnost in priklic?
Natančnost
- Razmerje med pravilno napovedanimi pozitivnimi opazovanji in vsemi napovedanimi pozitivnimi rezultati je znano kot natančnost.
- Meri, kako dobro model napoveduje pozitivne rezultate.
- Formula za natančnost je:
- Natančnost se nanaša na kakovost pozitivnih napovedi. Visoka natančnost pomeni, da ima model nizko stopnjo lažno pozitivnih rezultatov.
Odpoklic
- Razmerje med pravilno napovedanimi pozitivnimi opazovanji in skupnim številom dejanskih pozitivnih opazovanj je znano kot odpoklic.
- Meri, kako dobro lahko model zajame vsak ustrezen primer.
- Odpoklic se izračuna po tej formuli:
- Odpoklic se nanaša na količino ustreznih primerkov, ki jih zajame model. Visok priklic pomeni, da ima model nizko stopnjo lažno negativnih rezultatov.
V smislu empirične interpretacije je matrika zmede, ki obsega štiri bistvene izraze, najbolj uporabno orodje za razumevanje natančnosti in priklica:
- True Positive (TP): Število pozitivnih primerkov razreda, ki so natančno identificirani
- Lažno pozitivno (FP): Število primerkov negativnega razreda, ki so pomotoma identificirani kot pozitivni primerki razreda, je znano kot lažno pozitivno (FP).
- True Negative (TN): Število primerkov negativnega razreda, ki so natančno identificirani
- False Negative (FN): Število pozitivnih primerkov razreda, ki so pomotoma razvrščeni kot negativni primerki razreda (False Negative ali FN)
Krivulja natančnosti priklica (PR) v strojnem učenju
Natančnost je delež pravilno pozitivne razvrstitve (resnično pozitivne), deljene s skupnim številom napovedano opravljene pozitivne razvrstitve (resnično pozitivne + lažno pozitivne). Odpoklic je delež pravilno pozitivne razvrstitve (resnično pozitivne), deljene s skupnim številom resnično pozitivne klasifikacije (resnično pozitivno + lažno negativno).
Krivulja PR je preprosto graf z vrednostmi natančnosti na osi y in vrednostmi priklica na osi x. Z drugimi besedami, krivulja PR vsebuje
- Pomembno je omeniti, da se natančnost imenuje tudi pozitivna napovedna vrednost (PPV).
- Odpoklic se imenuje tudi občutljivost, stopnja zadetkov ali resnična pozitivna stopnja (TPR).
Spodnja slika prikazuje primerjavo vzorcev PR in ROC krivulj.
tretja normalna oblika
Razlaga krivulje natančnosti priklica
Zaželeno je, da ima algoritem visoko natančnost in visok priklic. Vendar pa večina algoritmov strojnega učenja pogosto vključuje kompromis med obema. Dobra PR krivulja ima večjo AUC (površina pod krivuljo) . Na zgornji sliki ima klasifikator, ki ustreza modri črti, boljše delovanje kot klasifikator, ki ustreza zeleni črti. Pomembno je omeniti, da klasifikator, ki ima višjo AUC na ROC krivulja bo imel vedno višjo AUC tudi na krivulji PR. Razmislite o algoritmu, ki razvršča, ali dokument spada v kategorijo Športne novice ali ne. Predpostavimo, da obstaja 12 dokumentov z naslednjimi osnovnimi resnicami (dejanskimi) in oznakami izhodnih razredov klasifikatorja.
ID dokumenta | Ground Truth | Izhod klasifikatorja |
---|---|---|
D1 | Šport | Šport |
D2 | Šport | Šport |
D3 | Ne šport | Šport |
D4 | Šport | Ne šport |
D5 | Ne šport | Ne šport |
D6 | Šport | Ne šport |
D7 | Ne šport | Šport |
D8 | Ne šport | Ne šport |
D9 | Ne šport | Ne šport |
D10 | Šport | Šport |
D11 | Šport | Šport |
D12 | Šport | Ne šport |
Zdaj pa poiščimo vrednosti TP, TN, FP in FN.
Uporabimo primer, ki vključuje dokumente, razvrščene kot športni ali nešportni, da bolje razložimo definicije resničnih pozitivnih (TP), resničnih negativnih (TN), lažnih pozitivnih (FP) in lažnih negativnih (FN) v kontekstu razvrščanja:
Resnični pozitivni učinki (TP): Dokumenti, ki so bili natančno kategorizirani kot športni in ki so dejansko govorili o športu. Dokumenti D1, D2, D10 in D11 v tem scenariju so primerki TP.
Pravi negativi (TN): Pravi negativi so tisti primeri, v katerih je bil dokument ustrezno označen kot Ni športen, čeprav ni imel nobene zveze s športom. V tem primeru je TN prikazan z dokumenti D5, D8 in D9.
Lažni pozitivni rezultati (FP): Dokumenti, ki so bili pomotoma kategorizirani kot športni, čeprav s športom niso imeli nobene zveze. Tukaj je nekaj primerov FP, dokumenta D3 in D7.
Lažni negativi (FN): Primeri dokumentov, ki so bili pomotoma označeni kot Nešportni, v resnici pa so bili o športu. Dokumenti D4, D6 in D12 so v tem primeru primeri FN.
Glede na te številke: Mesto =4, TN =3, FP =2, FN =3
Končno se natančnost in priklic izračunata na naslednji način:
Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}
Recall = frac{TP}{TP+FN} = frac{4}{7} Iz tega sledi, da je priklic 4/7, ko je natančnost 2/3. Povedano drugače, od vseh primerov, ki so bili pričakovano pozitivni, sta bili dve tretjini natančno razvrščeni (natančnost), od vseh primerov, ki so bili dejansko pozitivni, pa jih je model uspel zajeti štiri sedmine (priklic).
Z nastavitvijo različnih pragov dobimo več takih parov natančnosti, priklica. Z izrisom več takšnih parov P-R s katero koli vrednostjo v razponu od 0 do 1 dobimo krivuljo PR.
Potrebujete krivuljo PR, če obstaja krivulja ROC?
Krivulja PR je še posebej uporabna pri poročanju o rezultatih pridobivanja informacij.
Pridobivanje informacij vključuje iskanje po naboru dokumentov, da bi našli tiste, ki ustrezajo določeni uporabniški poizvedbi. Recimo, da uporabnik vnese iskalno poizvedbo Pink Elephants. Iskalnik preleti na milijone dokumentov (z uporabo nekaterih optimiziranih algoritmov), da pridobi peščico ustreznih dokumentov. Zato lahko varno domnevamo, da št. ustreznih dokumentov bo precej manj v primerjavi s št. nepomembnih dokumentov.
V tem scenariju
- TP = Število pridobljenih dokumentov, ki so relevantni (dobri rezultati).
- FP = Število pridobljenih dokumentov, ki niso ustrezni (lažni rezultati iskanja).
- TN = Število nepreklicnih dokumentov, ki so nepomembni.
- FN = Št. nepridobljenih dokumentov, ki so pomembni (dobre dokumente smo pogrešali).
Krivulja ROC je graf, ki vsebuje Recall = TPR =
Poleg tega nam FPR ne pomaga dobro oceniti sistema za iskanje, ker se želimo bolj osredotočiti na pridobljene dokumente in ne na tiste, ki niso pridobljeni. Krivulja PR pomaga rešiti to težavo. Krivulja PR ima vrednost priklica (TPR) na osi x in natančnost =
Kdaj uporabiti ROC v primerjavi s krivuljami Precision-Recall?
ROC (Receiver Operating Characteristic) krivulje so primerne, če je porazdelitev po razredih uravnotežena in imajo lažno pozitivni in lažno negativni rezultati podobne posledice. Prikazujejo kompromis med občutljivostjo in specifičnostjo. Nasprotno pa so krivulje Precision-Recall bolj zaželene, ko imamo opravka z neuravnoteženimi nabori podatkov, pri čemer se osredotočamo na pozitivno učinkovitost napovedovanja razreda.
Precision-Recall zagotavlja vpogled v sposobnost modela, da pravilno razvrsti pozitivne primere. Izbira med ROC in Precision-Recall je odvisna od posebnih potreb problema, pri čemer je poudarek na pomembnosti razumevanja distribucije podatkov in posledic različnih vrst napak.
Implementacija osnovne kode za krivuljo natančnega priklica
Uvoz potrebnih knjižnic
Te vrstice kode uvažajo Knjižnice Python in moduli, potrebni za ustvarjanje krivulje natančnega odpoklica sci-kit-learn in vizualizirajte rezultate z Matplotlib . Matplotlib je priljubljena knjižnica za risanje v jeziku Python, pyplot pa ponuja preprost vmesnik za ustvarjanje različnih vrst risb in grafikonov. Logistična regresija je priljubljen klasifikacijski algoritem za binarne in večrazredne naloge klasifikacije. Krivulja natančnosti priklica in AUC sta priljubljeni metriki vrednotenja za binarna klasifikacija težave, zlasti pri obravnavi neuravnoteženih podatkovnih nizov.
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>
Uporabljen nabor podatkov
Ta koda ustvari sintetični nabor podatkov za problem binarne klasifikacije z uporabo funkcije '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)>
Usposabljaj in testiraj Split
The train_test_split funkcija v scikit-learn se v tem izrezku kode uporablja za razdelitev predhodno ustvarjenega sintetičnega nabora podatkov (X in y) v nabore za usposabljanje in testiranje. Ta delitev je kritičen korak pri ocenjevanju modelov strojnega učenja. Model se bo uril na podatkih X_train in y_train, preden se bo preizkusil na podatkih X_test in y_test, da bi videli, kako dobro deluje na nevidenih vzorcih. Funkcija train_test_split ločuje nize za usposabljanje in testiranje ter zagotavlja, da zmogljivost modela odraža njegovo posplošitev na nove, prej nevidene podatke.
skrite aplikacijePython3
# 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)>
Modelna zgradba
Tukaj uporabljamo logistično regresijo za usposabljanje modela na naboru podatkov o usposabljanju. Priljubljen algoritem za binarno klasifikacijo, logistično regresijo, izvaja razred 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)>
Napoved modela
Ti izračuni običajno dajejo vrednosti natančnosti in priklica za različne pragove odločitve, ki jih lahko uporabite za risanje krivulje natančnosti in priklica ali preučite relativno pomembnost natančnosti in priklica v različnih časovnih točkah. In izračunavanje Območje pod krivuljo (AUC) za krivuljo natančnosti priklica.
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)>
Risanje PR krivulje
Ta kodni blok nudi standardno metodo za vizualizacijo krivulje natančnosti in priklica ter vam omogoča, da ocenite kompromis med natančnostjo in priklicem pri različnih pragovih odločitve. Splošno delovanje modela na krivulji natančnosti priklica je povzeto z oceno AUC, prikazano v legendi.
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()>
Izhod :

Krivulja natančnosti priklica
Pogosto zastavljena vprašanja (FAQ)
V. Kaj je natančnost?
Razmerje med natančno napovedanimi pozitivnimi opazovanji in skupnim številom napovedanih pozitivnih rezultatov je znano kot natančnost. Meri, kako dobro model napove pozitivne rezultate. Naslednja je formula za natančnost:
Precision = frac{True Positives}{True Positives + False Positives}
V. Kaj je odpoklic?
Odpoklic je razmerje med pravilno napovedanimi pozitivnimi opazovanji in skupnim številom dejanskih pozitivnih rezultatov. Imenuje se tudi občutljivost ali prava pozitivna stopnja. Oceni, kako dobro lahko model zajame vsak ustrezen primer. Odpoklic se izračuna po naslednji formuli:
Precision = frac{True Positives}{True Positives + False Negatives}
V. Zakaj potrebujemo natančnost in odpoklic?
Za oceno učinkovitosti klasifikatorja pri problemih binarne in večrazredne klasifikacije se uporabljata dve metriki vrednotenja: natančnost in priklic. Natančnost pozitivne napovedi se meri z natančnostjo, popolnost pozitivne napovedi pa s priklicem.
V. Kakšen je kompromis med odpoklicem in natančnostjo?
Pomnjenje in natančnost sta pogosto kompromisi. Priklic se lahko poslabša, ko se natančnost poveča, in obratno. S spreminjanjem vrstice za identifikacijo pozitivnega primera je ta kompromis mogoče upravljati. Nasprotno pa nižji prag povzroči nižji priklic, vendar večjo natančnost. Odločitev med priklicem in natančnostjo temelji na podrobnostih danega problema.
V. Kaj je rezultat F1 in kako je povezan z natančnostjo in odpoklicem?
Harmonično povprečje priklica in natančnosti je znano kot rezultat F1. Ponuja pošteno meritev, ki upošteva lažno pozitivne in lažno negativne rezultate. Rezultat F1 se izračuna po naslednji formuli:
F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall} Ocena F1 je še posebej uporabna, kadar sta natančnost in priklic v neravnovesju in je zaželeno ravnovesje med obema.