Mi chiedo come calcolare le misure di precisione e di richiamo per la classificazione multilabel multiclasse, vale a dire la classificazione dove ci sono più di due etichette e dove ogni istanza può avere più etichette?Precisione/richiamo per la classificazione multiclasse multilivello
risposta
La risposta è che devi calcolare precisione e richiamo per ogni classe, quindi calcolarli insieme. Per esempio. se voi le classi A, B, e C, allora la vostra precisione è:
(precision(A) + precision(B) + precision(C))/3
Lo stesso vale per il richiamo.
Non sono un esperto, ma questo è quello che ho determinato sulla base delle seguenti fonti:
https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision -recall-per-multiclasse-multietichetta-classificazione
Se i tuoi dati hanno un numero di etichette sbilanciato, questa media potrebbe non riflettere la performance reale. – tashuhka
- Supponiamo che abbiamo un 3-class problema a più di classificazione con le etichette a, B e C.
- La prima cosa da fare è quello di generare una confusione matrice. Si noti che i valori nella diagonale sono sempre i veri positivi (TP).
Ora, per calcolare richiamo per l'etichetta A è possibile leggere i valori dalla matrice di confusione e di calcolo:
= TP_A/(TP_A+FN_A) = TP_A/(Total gold labels for A)
Ora, Calcoliamo precisione per l'etichetta A, si può leggere off i valori dalla matrice di confusione e calcolare:
= TP_A/(TP_A+FP_A) = TP_A/(Total predicted as A)
basta fare lo stesso per le etichette rimanenti B e C. Questo vale per tutti mu problema di classificazione lti-class.
Here è l'articolo completo che parla di come calcolare la precisione e il richiamo per qualsiasi problema di classificazione multi-classe, inclusi esempi.
La media semplice verrà eseguita se le classi sono bilanciate.
Altrimenti, il richiamo per ogni classe reale deve essere ponderato in base alla prevalenza della classe e la precisione per ogni etichetta prevista deve essere ponderata dal bias (probabilità) per ciascuna etichetta. In entrambi i casi ottieni l'accuratezza di Rand.
Un modo più diretto consiste nel creare una tabella di contingenza normalizzata (dividere per N in modo che la tabella aggiunga 1 per ogni combinazione di etichetta e classe) e aggiungere la diagonale per ottenere Precisione del Rand.
Ma se le classi non sono bilanciate, il bias rimane e un metodo corretto caso come kappa è più appropriato, o meglio ancora analisi ROC o una misura corretta caso come informalità (altezza sopra la linea di probabilità in ROC).
Per la classificazione multi-etichetta ci sono due modi per andare Considerare prima quanto segue.
- è il numero di esempi.
- è l'assegnazione dell'etichetta verità a terra dell'esempio ..
- è l'esempio .
- è le etichette previste per l'esempio .
esempio a base
Le metriche sono calcolate in modo di per datapoint. Per ogni etichetta prevista viene calcolato solo il suo punteggio, quindi questi punteggi vengono aggregati su tutti i punti dati.
- precisione = , Il rapporto tra la quantità di predetto è corretta. Il numeratore trova quante etichette nel vettore previsto sono in comune con la verità fondamentale, e il rapporto calcola, quante delle vere etichette previste sono effettivamente nella verità fondamentale.
- Ricorda = , Il rapporto di quante delle etichette effettive sono state previste. Il numeratore rileva quante etichette nel vettore previsto sono in comune con la verità di base (come sopra), quindi trova il rapporto con il numero di etichette effettive, ottenendo quindi quale frazione delle etichette effettive sono state previste.
Ci sono anche altre metriche.
basato sulle etichette
Qui le cose sono fatte etichette-saggio. Per ogni etichetta vengono calcolate le metriche (ad esempio precisione, richiamo) e quindi le metriche relative alle etichette vengono aggregate. Quindi, in questo caso si finisce col calcolare la precisione/il richiamo per ciascuna etichetta sull'intero set di dati, come per una classificazione binaria (dato che ogni etichetta ha un'assegnazione binaria), quindi aggregarla.
Il modo semplice è presentare il modulo generale.
Questa è solo un'estensione dell'equivalente multi-classe standard.
Qui il sono i veri positivi, falsi positivi, veri conteggi negativi negativi e falsi, rispettivamente, per il solo dell'etichetta .
Qui $ B $ rappresenta una metrica basata sulla matrice di confusione. Nel tuo caso inseriresti la precisione standard e richiamerai le formule. Per la media delle macro si passa nel conteggio delle etichette e poi si sommano, per la media micro si calcola innanzitutto la media, quindi si applica la funzione metrica.
Potrebbe essere interessato a dare un'occhiata al codice per le metriche mult-label here, che una parte del pacchetto mldr in R. Potresti anche essere interessato a consultare la libreria multi-label Java MULAN.
Questo è un bel carta per entrare nelle diverse metriche: A Review on Multi-Label Learning Algorithms
Il richiamo è uguale alla precisione quando si utilizza l'approccio basato su esempio per la classificazione non multilabel, ma multiclasse? – WetFish
- 1. SVM Classificazione testo multiclasse
- 2. Classificazione SVM multiclasse in Encog
- 3. Utilizzo di accento circonflesso con metodo gbm per la classificazione multiclasse
- 4. Perché naiveBayes restituisce tutte le NA per la classificazione multiclasse in R?
- 5. R randomForest per la classificazione
- 6. TensorFlow per la classificazione binaria
- 7. panico per resi multilivello
- 8. Apprendimento approfondito per la classificazione delle immagini
- 9. trovare caratteristiche importanti per la classificazione
- 10. Formato file per la classificazione utilizzando la luce SVM
- 11. ExpandableListView multilivello in Android
- 12. Applicazione multilivello gestione transazioni
- 13. multilivello intestazione GridView WPF
- 14. Consigli per passare a un'architettura Delphi multilivello
- 15. Classificazione caratteri
- 16. Algoritmo di apprendimento automatico per la classificazione dei dati.
- 17. sklearn LogisticRegression e modifica della soglia predefinita per la classificazione
- 18. Dataset Building Speech per la classificazione binaria LSTM
- 19. Mallet vs Weka per la classificazione di testo
- 20. Orange vs NLTK per la classificazione dei contenuti in Python
- 21. Tabella di classificazione per la regressione logistica in R
- 22. Uso di randomforest() per la classificazione in R?
- 23. Elaborazione del linguaggio naturale - Caratteristiche per la classificazione del testo
- 24. Come rappresentare il testo per la classificazione in weka?
- 25. Riconoscimento volti per la classificazione di foto digitali?
- 26. Allocazione di Dirichlet latente sorvegliata per la classificazione dei documenti?
- 27. transclusion multilivello in angolare 1.5
- 28. Disegnare grafici multilivello con networkx?
- 29. R accento circonflesso: Massimizzare la sensibilità per la classe positivo definito manualmente per la formazione (classificazione),
- 30. Come tracciare la curva ROC con scikit per il caso multiclasse?
Beh, sarebbe falso se non classificato correttamente e vero dove è stato classificato correttamente. Perché ti preoccupi di più etichette? –
+1 Che succede con i downvotes senza commenti? Ho avuto la stessa domanda e sono contento di aver trovato questa pagina. @ThomasJungblut Capisco come calcolare la precisione per una data classe, ad es. classe A, ma come dovrei calcolare la precisione per tutte le classi? È una media aritmetica della precisione per ogni classe? –
Ho trovato una domanda simile, questo potrebbe essere un duplicato: http://stackoverflow.com/questions/3856013/get-recall-sensitivity-and-precision-ppv-values-of-a-multi-class-problem-in –