Existuje mnoho spôsobov, ako vyhodnotiť výkonnosť klasifikátora. V tomto článku predstavujeme krivku presnosti spätného získavania údajov a ďalej skúmame rozdiel medzi dvoma populárnymi metódami podávania správ o výkonnosti: krivkou presného vybavovania (PR) a Prevádzková charakteristika prijímača (ROC) Krivka. O ROC Curve sa už hovorí v článok . Poďme stručne pochopiť, čo je krivka Precision-Recall.
Čo je presnosť a odvolanie?
Presnosť
- Pomer správne predpovedaných pozitívnych pozorovaní ku všetkým predpovedaným pozitívam je známy ako presnosť.
- Meria, ako dobre model predpovedá pozitívne výsledky.
- Vzorec presnosti je:
- Presnosť sa týka kvality pozitívnych predpovedí. Vysoká presnosť naznačuje, že model má nízku mieru falošných poplachov.
Odvolanie
- Pomer správne predpovedaných pozitívnych pozorovaní k celkovému počtu skutočných pozitívnych pozorovaní je známy ako pripomenutie.
- Meria, ako dobre dokáže model zachytiť každú príslušnú inštanciu.
- Stiahnutie sa vypočíta pomocou tohto vzorca:
- Recall sa týka množstva relevantných inštancií zachytených modelom. Vysoká pamäť naznačuje, že model má nízku mieru falošne negatívnych výsledkov.
Pokiaľ ide o empirickú interpretáciu, matica zmätku obsahujúca štyri základné pojmy je najužitočnejším nástrojom na pochopenie presnosti a zapamätania si:
- True Positive (TP): Počet pozitívnych inštancií triedy, ktoré sú presne identifikované
- Falošná pozitívna (FP): Počet negatívnych inštancií triedy, ktoré sú omylom identifikované ako pozitívne inštancie triedy, je známy ako falošne pozitívny (FP).
- True Negative (TN): Počet prípadov negatívnej triedy, ktoré sú presne identifikované
- Falošne negatívne (FN): Počet pozitívnych inštancií triedy, ktoré sú omylom klasifikované ako negatívne inštancie triedy (Falošne negatívne alebo FN)
Krivka presného vyvolania (PR) v strojovom učení
Presnosť je podiel správne kladné klasifikácie (skutočne pozitívne) delené celkovým počtom predpovedal pozitívne klasifikácie, ktoré boli vykonané (skutočne pozitívne + falošne pozitívne). Odvolanie je podiel správne kladné klasifikácie (skutočne pozitívne) delené celkovým počtom skutočne pozitívne klasifikácie (skutočne pozitívne + falošne negatívne).
Krivka PR je jednoducho graf s hodnotami Precision na osi y a hodnotami Recall na osi x. Inými slovami, krivka PR obsahuje
- Je dôležité poznamenať, že presnosť sa tiež nazýva pozitívna prediktívna hodnota (PPV).
- Odvolanie sa tiež nazýva citlivosť, miera úspešnosti alebo skutočná pozitívna miera (TPR).
Obrázok nižšie ukazuje porovnanie vzorových kriviek PR a ROC.
Interpretácia krivky presnosti vyvolania
Je žiaduce, aby mal algoritmus vysokú presnosť a vysokú vybavovanosť. Väčšina algoritmov strojového učenia však často zahŕňa kompromis medzi nimi. Dobrá krivka PR má väčšiu AUC (plocha pod krivkou) . Na obrázku vyššie má klasifikátor zodpovedajúci modrej čiare lepší výkon ako klasifikátor zodpovedajúci zelenej čiare. Je dôležité poznamenať, že klasifikátor, ktorý má vyššiu AUC na ROC krivka bude mať vždy vyššiu AUC na krivke PR. Zvážte algoritmus, ktorý klasifikuje, či dokument patrí alebo nepatrí do kategórie Športové správy. Predpokladajme, že existuje 12 dokumentov s nasledujúcimi základnými pravdivosťami (skutočnými) a označeniami výstupnej triedy klasifikátora.
ID dokumentu | Krutá pravda | Výstup klasifikátora |
---|---|---|
D1 | Šport | Šport |
D2 | Šport | Šport |
D3 | Nie Šport | Šport |
D4 | Šport | Nie Šport |
D5 | Nie Šport | Nie Šport |
D6 | Šport | Nie Šport |
D7 | Nie Šport | Šport |
D8 | Nie Šport | Nie Šport |
D9 | Nie Šport | Nie Šport |
D10 | Šport | Šport |
D11 | Šport | Šport |
D12 | Šport | Nie Šport |
Teraz nájdime hodnoty TP, TN, FP a FN.
Použime príklad zahŕňajúci dokumenty klasifikované ako šport alebo nešport, aby sme lepšie vysvetlili definície skutočných pozitív (TP), skutočných negatív (TN), falošných pozitív (FP) a falošných negatív (FN) v kontexte klasifikácie:
Skutočné pozitíva (TP): Dokumenty, ktoré boli presne zaradené do kategórie Šport a ktoré sa v skutočnosti týkali športu. Dokumenty D1, D2, D10 a D11 v tomto scenári sú inštanciami TP.
Skutočné negatíva (TN): Skutočné negatíva sú prípady, v ktorých bol dokument vhodne označený ako Nie je šport, aj keď so športom nemal nič spoločné. V tomto prípade je TN preukázaná dokumentmi D5, D8 a D9.
Falošné pozitíva (FP): Dokumenty, ktoré boli omylom zaradené do kategórie Šport, aj keď so športom nemali nič spoločné. Tu je niekoľko príkladov FP, dokumenty D3 a D7.
mapy javaFalošné negatívy (FN): Príklady dokumentov, ktoré boli mylne označené ako Nie šport, ale v skutočnosti sa týkali športu. Dokumenty D4, D6 a D12 sú v tomto prípade príkladmi FN.
Vzhľadom na tieto počty: Mesto =4, TN =3, FP =2, FN =3
Nakoniec sa presnosť a zapamätanie vypočítajú takto:
Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}
Recall = frac{TP}{TP+FN} = frac{4}{7} Z toho vyplýva, že odvolanie je 4/7, keď je presnosť 2/3. Inak povedané, zo všetkých prípadov, u ktorých sa predpokladalo, že budú pozitívne, boli dve tretiny presne klasifikované (presnosť) a zo všetkých prípadov, ktoré boli skutočne pozitívne, model dokázal zachytiť štyri sedminy z nich (zapamätanie).
Nastavením rôznych prahových hodnôt získame viacero takýchto presných, vyvolávacích párov. Vynesením viacerých takýchto párov P-R s každou hodnotou v rozsahu od 0 do 1 získame krivku PR.
Potrebujete PR krivku, keď existuje ROC krivka?
Krivka PR je obzvlášť užitočná pri podávaní správ o výsledkoch vyhľadávania informácií.
Vyhľadávanie informácií zahŕňa prehľadávanie skupiny dokumentov s cieľom nájsť tie, ktoré sú relevantné pre konkrétny dopyt používateľa. Predpokladajme napríklad, že používateľ zadá vyhľadávací dopyt Pink Elephants. Vyhľadávací nástroj prehľadáva milióny dokumentov (pomocou niektorých optimalizovaných algoritmov), aby získal niekoľko relevantných dokumentov. Môžeme teda s istotou predpokladať, že nie. relevantných dokumentov bude oveľa menej v porovnaní s č. nerelevantných dokumentov.
V tomto scenári
- TP = Počet vyhľadaných dokumentov, ktoré sú relevantné (dobré výsledky).
- FP = Počet získaných dokumentov, ktoré nie sú relevantné (falošné výsledky vyhľadávania).
- TN = Počet nevyhľadaných dokumentov, ktoré nie sú relevantné.
- FN = Počet nevyhľadaných dokumentov, ktoré sú relevantné (zmeškané dobré dokumenty).
ROC krivka je graf obsahujúci Recall = TPR =
Okrem toho nám FPR nepomáha dobre vyhodnotiť systém vyhľadávania, pretože sa chceme viac zamerať na vyhľadané dokumenty, a nie na nevyhľadané. PR krivka pomáha vyriešiť tento problém. Krivka PR má na osi x hodnotu Recall (TPR) a presnosť =
Kedy použiť krivky ROC vs. Precision-Recall Curves?
ROC Krivky (Prevádzková charakteristika prijímača) sú vhodné, keď je rozdelenie tried vyvážené a falošne pozitívne a falošne negatívne výsledky majú podobné dôsledky. Zobrazujú kompromis medzi citlivosťou a špecifickosťou. Naproti tomu krivky Precision-Recall sú vhodnejšie pri práci s nevyváženými súbormi údajov so zameraním na pozitívnu výkonnosť predikcie triedy.
Precision-Recall poskytuje prehľad o schopnosti modelu správne klasifikovať pozitívne prípady. Výber medzi ROC a Precision-Recall závisí od konkrétnych potrieb problému, pričom sa zdôrazňuje dôležitosť pochopenia distribúcie údajov a dôsledkov rôznych typov chýb.
ukazovateľ v c
Implementácia základného kódu pre krivku presného vyvolania
Import nevyhnutných knižníc
Tieto riadky kódu importujú súbor Python knižnice a moduly potrebné na generovanie krivky presnosti vyvolania sci-kit-learn a vizualizujte výsledky pomocou Matplotlib . Matplotlib je populárna knižnica vykresľovania Pythonu a pyplot poskytuje priame rozhranie na vytváranie rôznych typov grafov a grafov. Logistická regresia je populárny klasifikačný algoritmus pre binárne a viactriedne klasifikačné úlohy. Krivka presnosti a AUC sú populárne hodnotiace metriky pre binárna klasifikácia problémy, najmä pri riešení nevyvážených súborov údajov.
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>
Použitý súbor údajov
Tento kód generuje syntetický súbor údajov pre problém binárnej klasifikácie pomocou funkcie „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)>
Trénujte a testujte split
The train_test_split funkcia v scikit-learn sa v tomto úryvku kódu používa na rozdelenie predtým vygenerovanej syntetickej množiny údajov (X a y) na trénovacie a testovacie množiny. Toto rozdelenie je kritickým krokom pri hodnotení modelov strojového učenia. Model bude trénovaný na údajoch X_train a y_train pred testovaním na údajoch X_test a y_test, aby sa zistilo, ako dobre funguje na neviditeľných vzorkách. Funkcia train_test_split oddeľuje tréningové a testovacie sady, čím zabezpečuje, že výkon modelu odráža jeho zovšeobecnenie na nové, predtým nevidené údaje.
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)>
Stavba modelu
Tu používame logistickú regresiu na trénovanie modelu na tréningovom súbore údajov. Populárny algoritmus pre binárnu klasifikáciu, logistickú regresiu, implementuje trieda 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)>
Predikcia modelu
Tieto výpočty zvyčajne poskytujú hodnoty presnosti a vybavovania pre rôzne prahové hodnoty rozhodovania, ktoré môžete použiť na nakreslenie krivky presnosti a vybavovania alebo na preskúmanie relatívnej dôležitosti presnosti a vybavovania v rôznych časových bodoch. A výpočet Oblasť pod krivkou (AUC) pre krivku presnosti.
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)>
Vykreslenie krivky PR
Tento blok kódu poskytuje štandardnú metódu na vizualizáciu krivky presnosti a vyvolania a umožňuje vám vyhodnotiť kompromis medzi presnosťou a vyvolaním pri rôznych rozhodovacích prahoch. Celkový výkon modelu na krivke presnosti-vyvolanie je zhrnutý podľa skóre AUC uvedeného v legende.
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()>
Výkon :

Precision-Recall Curve
Často kladené otázky (FAQ)
Otázka: Čo je presnosť?
Pomer presne predpovedaných pozitívnych pozorovaní k celkovému počtu predpovedaných pozitívnych je známy ako presnosť. Meria, ako dobre model predpovedá pozitívne výsledky. Nasleduje vzorec presnosti:
Precision = frac{True Positives}{True Positives + False Positives}
Otázka: Čo je to Recall?
Recall je pomer správne predpovedaných pozitívnych pozorovaní k celkovému počtu skutočných pozitívnych. Označuje sa tiež ako citlivosť alebo skutočná pozitívna miera. Hodnotí, ako dobre dokáže model zachytiť každú relevantnú inštanciu. Stiahnutie sa vypočíta pomocou nasledujúceho vzorca:
Precision = frac{True Positives}{True Positives + False Negatives}
Otázka: Prečo potrebujeme presnosť a zapamätanie?
Na posúdenie výkonu klasifikátora v problémoch binárnej a viactriednej klasifikácie sa používajú dve hodnotiace metriky: presnosť a vyvolanie. Presnosť pozitívnej predikcie sa meria presnosťou a úplnosť pozitívnej predikcie sa meria pomocou vyvolania.
Otázka: Aký je kompromis medzi stiahnutím a presnosťou?
Odvolanie a presnosť sú často kompromisy. Pri zvyšovaní presnosti môže trpieť vyvolávanie a naopak. Zmenou lišty na identifikáciu pozitívneho prípadu možno tento kompromis zvládnuť. Naopak, nižší prah má za následok nižšie zapamätanie, ale vyššiu presnosť. Rozhodnutie medzi stiahnutím a presnosťou je založené na osobitostiach daného problému.
Otázka: Čo je to skóre F1 a ako súvisí s presnosťou a vybavovaním?
Harmonický priemer vybavovania a presnosti je známy ako skóre F1. Ponúka spravodlivé meranie, ktoré berie do úvahy falošne pozitívne aj falošne negatívne výsledky. Skóre F1 sa vypočíta podľa nasledujúceho vzorca:
F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall} Skóre F1 je užitočné najmä vtedy, keď presnosť a zapamätanie nie sú v rovnováhe a je potrebná rovnováha medzi nimi.
Greatandhra