Angenommen, ich habe ein Empfehlungssystem erstellt, das (z. B. Filmrankings oder was auch immer von vielen Benutzern angegeben wird) eine Liste von 10 empfohlenen Filmen erstellt, die jeder Benutzer ansehen kann. Stellen Sie sich vor, ich habe auch einen großen Pool an Filmelementen sowie ein Protokoll mit Benutzerbewertungen und Filmen, die sie tatsächlich ansehen möchten. Daher möchte ich diesen Datensatz verwenden, um mein System zu bewerten.
Ich habe in der Literatur gesehen, dass diese Aufgaben "einige gute Gegenstände vorschlagen" normalerweise mit Präzision, Rückruf und F1-Scores bewertet werden (siehe z. B. [1] ). Ich denke, dass ich mich insbesondere für "Präzision bei 10" interessieren sollte. Ich bin mir jedoch nicht ganz sicher, wie man diese Kennzahlen in dem oben beschriebenen Szenario berechnen soll (oder ob sie sinnvoll sind).
Anscheinend ist es am besten, die Probe zufällig in einen "Trainings" - und einen "Test" -Teil zu unterteilen. Und dann füttere die Trainingsdaten meinem Algorithmus, damit er eine Liste mit 10 Vorhersagen erstellen kann.
Jetzt macht Präzision irgendwie Sinn. Ich kann anhand der 10 Vorhersagen überprüfen, wie viele davon tatsächlich in den Filmen enthalten sind, die der Benutzer in den Testdaten gesehen hat.
Wenn der Benutzer jedoch viele Filme in den Testdaten angesehen hat, sagen wir etwa 50; Es gibt keine Möglichkeit, eine "gute" Rückrufbewertung zu erhalten, einfach weil mein System nur 10 Filme produzieren musste und ich höchstens 1/5 = 0,2 Rückruf erhalten würde.
Wenn ich den Test nur darauf beschränke, die "nächsten 10 gesehenen" Filme des Benutzers zu erraten (so dass die Möglichkeit besteht, einen "perfekten Rückruf" zu erhalten), sind Präzision und Rückruf immer genau dieselbe Zahl (wenn der empfohlene Nummer und die für den Benutzer relevante Nummer ist gleich, Präzision und Rückruf sind auch immer gleich).
Mache ich etwas falsch? Oder machen diese Metriken im betrachteten Szenario einfach keinen Sinn?
quelle
In den meisten Fällen führt ein Rückruf nicht zu einem Ergebnis, das absolut bewertet werden kann. Sie sollten den Rückrufwert verwenden, um einen Algorithmus in Bezug auf einen anderen zu bewerten.
Wenn ein Algorithmus A einen Rückrufwert von 0,2 hat (wie in Ihrem Beispiel), ist es schwierig zu interpretieren, was dieser Wert bedeutet. Wenn jedoch ein anderer Algorithmus B einen Rückrufwert von 0,15 hat (bei gleichem Versuchsaufbau), können Sie daraus schließen, dass Algorithmus A in Bezug auf den Rückruf eine bessere Leistung als Algorithmus B aufweist.
Mean Absolute Error (MAE) ist nicht so, es kann von selbst interpretiert werden.
quelle