Area sotto la curva di richiamo di precisione (AUC della curva PR) e precisione media (AP)


27

La precisione media (AP) è l'area sotto la curva di richiamo di precisione (AUC della curva PR)?

MODIFICARE:

ecco alcuni commenti sulla differenza tra PR AUC e AP.

L'AUC è ottenuto per interpolazione trapezoidale della precisione. Una metrica alternativa e di solito quasi equivalente è la precisione media (AP), restituita come info.ap. Questa è la media della precisione ottenuta ogni volta che viene richiamato un nuovo campione positivo. È uguale all'AUC se la precisione è interpolata da segmenti costanti ed è la definizione usata più spesso da TREC.

http://www.vlfeat.org/overview/plots-rank.html

Inoltre, i risultati AUC e Average_precision_score non sono gli stessi in Scikit-Learn. Questo è strano, perché nella documentazione abbiamo:

Calcola la precisione media (AP) dai punteggi di previsione Questo punteggio corrisponde all'area sotto la curva di richiamo della precisione.

ecco il codice:

# Compute Precision-Recall and plot curve
precision, recall, thresholds = precision_recall_curve(y_test, clf.predict_proba(X_test)[:,1])
area = auc(recall, precision)
print "Area Under PR Curve(AP): %0.2f" % area  #should be same as AP?

print 'AP', average_precision_score(y_test, y_pred, average='weighted')
print 'AP', average_precision_score(y_test, y_pred, average='macro')
print 'AP', average_precision_score(y_test, y_pred, average='micro')
print 'AP', average_precision_score(y_test, y_pred, average='samples')

per il mio classifer ho qualcosa come:

Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304

Risposte:


15

La risposta breve è: . La precisione media è un singolo numero utilizzato per riassumere una curva di richiamo di precisione:

inserisci qui la descrizione dell'immagine

È possibile approssimare l'integrale (area sotto la curva) con:

inserisci qui la descrizione dell'immagine

Dai un'occhiata a questo link per una buona spiegazione.


Che mi dici di questo commento? "L'AUC è ottenuta per interpolazione trapezoidale della precisione. Una metrica alternativa e solitamente quasi equivalente è la precisione media (AP), restituita come info.ap. Questa è la media della precisione ottenuta ogni volta che viene richiamato un nuovo campione positivo. È uguale all'AUC se la precisione è interpolata da segmenti costanti ed è la definizione usata più spesso da TREC. " vlfeat.org/overview/plots-rank.html
mrgloom

1
Penso che si the average of the precision obtained every time a new positive sample is recalledriferisca alla precisione media interpolata spiegata nel link che ho dato. Alcuni autori scelgono un'approssimazione alternativa che si chiama precisione media interpolata . Confusamente, la chiamano ancora precisione media.
Zhubarb,

alcune domande veloci: 1) perché coordinate (richiamo = 0, precisione = 1)? non ha alcun senso per me. 2) come potresti osservare, se abbassiamo la soglia del classificatore, potrebbero essere restituiti più risultati e, di conseguenza, il richiamo potrebbe non aumentare, ma la precisione potrebbe variare, ad esempio, con 2 elementi positivi in ​​totale, ecco i risultati classificati = [Falso, Vero, Falso, Falso, Vero], quindi coppie pr = = ((p = 0, r = 0), (1/2, 1/2), (1/3, 1/2), (1 / 4, 1/2), (2/5, 2/2)], come puoi vedere, per r = 1/2, ci sono 3 p (cioè 1/2, 1/3, 1/4) , proprio come nel tuo grafico a r = 0,8, va bene solo tracciarli sullo stesso asse x?
avocado,

2

average_precision_score la funzione prevede sicurezza o probabilità come secondo parametro.

quindi dovresti usarlo come di seguito,

average_precision_score(y_test, clf.predict_proba(X_test)[:,1])

e quindi è lo stesso risultato della aucfunzione.


Diversi esempi nel software WEKA e scikit-learn forniscono il punteggio CLF ma non l'AUC. Può essere che questo punteggio CLF sia in qualche modo correlato all'AUC o addirittura all'AUC?
hhh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.