Ich arbeite an der Erkennung von Satzkategorien Problem. Wo jeder Satz kann auf mehrere Kategorien gehören zum Beispiel:Wie Formel F1 in Multi-Label-Klassifizierung berechnen?
"It has great sushi and even better service."
True Label: [[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1.]]
Pred Label: [[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1.]]
Correct Prediction!
Output: ['FOOD#QUALITY' 'SERVICE#GENERAL']
ich umgesetzt haben einen Klassifikator, die mehrere Kategorien vorhersagen kann. Ich habe insgesamt 587 Sätze, die zu mehreren Kategorien gehören. Ich habe die Genauigkeit Punkte auf zwei Arten berechnet:
Wenn alle Etiketten eines Beispiels vorhergesagt oder nicht?
Code:
print "<------------ZERO one ERROR------------>"
print "Total Examples:",(truePred+falsePred) ,"True Pred:",truePred, "False Pred:", falsePred, "Accuracy:", truePred/(truePred+falsePred)
Ausgang:
<------------ZERO one ERROR------------>
Total Examples: 587 True Pred: 353 False Pred: 234 Accuracy: 0.60136286201
Wie viele Etiketten sind für alle Beispiele korrekt vorhergesagt?
Code:
print "\n<------------Correct and inccorrect predictions------------>"
print "Total Labels:",len(total[0]),"Predicted Labels:", corrPred, "Accuracy:", corrPred/len(total[0])
Ausgang:
<------------Correct and inccorrect predictions------------>
Total Labels: 743 Predicted Labels: 522 Accuracy: 0.702557200538
Problem: Das ist die Genauigkeit Scores berechnet, indem vorhergesagte Werte verglichen mit Grundwahrheit Etikett. Aber ich möchte F1-Score berechnen (mit Mikro-Mittelung), Präzision und Rückruf. Ich habe Grundwahrheitsbezeichnungen und ich muss meine Vorhersagen mit diesen Grundwahrheitsbezeichnungen zusammenbringen. Aber ich weiß nicht, wie ich diese Art von Multi-Label-Klassifizierung Problem angehen. Kann ich scikit-learn oder andere Bibliotheken in Python verwenden?
Okay, können Sie mir bitte sagen, dass, wenn ich eine echte Label [0,1,0,1] und vorhergesagte Label [0,1,1,0] habe. Was wird dann die Präzision und die Erinnerung für dieses einzelne Beispiel sein? Oder was werden die TN, TP, FN und FP sein. –
Wenn Sie tun, was ich vorschlage, dann wird Ihr wahres Label 0 sein und Ihre Vorhersage wird 1. Also werden Ihre Präzision und Ihr Rückruf 0 sein. Oder Sie können subtiler sein und unabhängig für jede Klasse die Präzision und den Rückruf und danach berechnen durchschnitt sie. – dooms
Also, für jedes Beispiel x true label [0,1,0,1] und vorhergesagte label [0,1,1,0] können wir FP, TP, TN und TP nicht berechnen, indem wir nur die Position von 1 und 0 sehen. –