Angenommen, ich erstelle einen logistischen Regressionsklassifikator, der vorhersagt, ob jemand verheiratet oder ledig ist. (1 = verheiratet, 0 = ledig) Ich möchte einen Punkt auf der Präzisionsrückrufkurve auswählen, der mir eine Genauigkeit von mindestens 75% gibt. möchte ich die Schwellenwerte und auswählen , damit:
- Wenn die Ausgabe meines Klassifikators größer als , ich "verheiratet" aus.
- Wenn der Ausgang unter , ich "single" aus.
- Wenn die Ausgabe dazwischen liegt, gebe ich "Ich weiß nicht" aus.
Ein paar Fragen:
- Ich denke, unter der Standarddefinition von Präzision wird Präzision nur die Präzision der verheirateten Klasse messen (dh Präzision = # Mal, wenn ich die Ehe richtig vorhersage / Gesamt # Mal, wenn ich die Ehe vorhersage). Was ich jedoch wirklich tun möchte, ist die Gesamtgenauigkeit zu messen (dh die Gesamtanzahl der Zeiten, in denen ich verheiratet oder ledig voraussage, / die Gesamtanzahl, in der ich verheiratet oder ledig vorhersage). Ist das in Ordnung? Wenn nicht, was soll ich tun?
- Gibt es eine Möglichkeit, diese "Gesamt" -Präzisions- / Rückrufkurve in R zu berechnen (z. B. mithilfe des ROCR-Pakets oder einer anderen Bibliothek)? Ich verwende derzeit das ROCR-Paket, aber es scheint mir nur die Präzision / den Rückruf einer einzelnen Klasse zu geben.
quelle
Wie Robert es richtig ausdrückte, ist Genauigkeit der richtige Weg. Ich möchte nur hinzufügen, dass es möglich ist, es mit ROCR zu berechnen. Schauen Sie sich die Hilfe (Leistung) an, um verschiedene Maßnahmen auszuwählen.
Beispielsweise wird in ROCR nur eine Entscheidungsschwelle verwendet, die als Cutoff bezeichnet wird . Der folgende Code zeigt die Genauigkeit gegenüber dem Grenzwert und extrahiert den Grenzwert für maximale Genauigkeit.
was in ... resultiert
Um mit zwei Schwellenwerten zu arbeiten, um einen mittleren Unsicherheitsbereich zu erstellen (was ein gültiger Weg ist, wenn die Umstände / Zielanwendung dies zulassen), können mit ROCR zwei Leistungsobjekte erstellt werden
Wählen Sie einen geeigneten Cutoff aus den Leistungsvektoren (mit der R-Methode) und kombinieren Sie diese, um das gewünschte Gleichgewicht zu erreichen. Dies sollte unkompliziert sein, daher überlasse ich es dem Leser als Übung.
Ein letzter Hinweis: Was ist der Unterschied zwischen Genauigkeit und Berechnungsgenauigkeit für beide Klassen getrennt und z. B. kombinieren Sie sie in einem (gewichteten) Durchschnitt?
Die Genauigkeit berechnet einen gewichteten Durchschnitt, wobei das Gewicht für Klasse c der Anzahl der Instanzen mit Klasse c entspricht. Dies bedeutet, dass Sie bei einem starken Klassenversatz (z. B. 98% Negative) die Genauigkeit einfach "optimieren" können, indem Sie das negative Label für alle Instanzen vorhersagen. In einem solchen Fall verhindert ein nicht gewichteter einfacher Durchschnitt beider Klassenpräzisionen das Spielen der Metrik. Bei ausgeglichenen Klassen führen beide Berechnungsmethoden natürlich zum gleichen Ergebnis.
quelle