Gegeben
- ein Datensatz mit Instanzen zusammen mit N Klassen, wobei jede Instanz x i genau zu einer Klasse y i gehört
- ein Klassifikator für mehrere Klassen
Nach dem Training und Testen habe ich grundsätzlich eine Tabelle mit der wahren Klasse und der vorhergesagten Klasse a i für jede Instanz x i im Testsatz. Also habe ich für jede Instanz entweder eine Übereinstimmung ( y i = a i ) oder eine Verfehlung ( y i ≠ a i ).
Wie kann ich die Qualität des Spiels bewerten? Das Problem ist, dass einige Klassen viele Mitglieder haben können, dh viele Instanzen gehören dazu. Wenn 50% aller Datenpunkte zu einer Klasse gehören und mein Endklassifikator zu 50% korrekt ist, habe ich offensichtlich nichts gewonnen. Ich hätte genauso gut einen trivialen Klassifikator erstellen können, der die größte Klasse ausgibt, unabhängig von der Eingabe.
Gibt es eine Standardmethode, um die Qualität eines Klassifikators basierend auf den bekannten Testergebnissen von Übereinstimmungen und Treffern für jede Klasse zu schätzen? Vielleicht ist es sogar wichtig, Übereinstimmungsraten für jede bestimmte Klasse zu unterscheiden?
Der einfachste Ansatz, den ich mir vorstellen kann, ist es, die richtigen Matches der größten Klasse auszuschließen. Was sonst?
Antworten:
Wie bei der binären Klassifizierung können Sie die empirische Fehlerrate zur Abschätzung der Qualität Ihres Klassifikators verwenden. Sei ein Klassifikator und x i und y i jeweils ein Beispiel in Ihrer Datenbank und ihrer Klasse. e r r ( g ) = 1G xich yich
Wie Sie gesagt, wenn die Klassen unausgeglichen sind, die Basislinie nicht50%, aber der Anteil der größeren Klasse. Sie können jeder Klasse eine Gewichtung hinzufügen, um den Fehler auszugleichen. SeiWydas Gewicht der Klassey. Stellen Sie die Gewichte so ein, dass1
Wie Steffen sagte, könnte die Verwirrungsmatrix eine gute Möglichkeit sein, die Qualität eines Klassifikators einzuschätzen. Im binären Fall können Sie aus dieser Matrix ein Maß ableiten, z. B. die Sensitivität und Spezifität, und so die Fähigkeit eines Klassifikators abschätzen, eine bestimmte Klasse zu erkennen. Die Fehlerquelle eines Klassifikators kann auf eine bestimmte Art und Weise sein. Zum Beispiel kann ein Klassifikator bei der Vorhersage einer 1 zu sicher sein, aber bei der Vorhersage einer 0 niemals falsch sagen. Viele Klassifikatoren können so parametrisiert werden, dass sie diese Rate steuern (falsch-positive vs. falsch-negative), und Sie interessieren sich dann für die Qualität der ganze Familie von Klassifikatoren, nicht nur eine. Daraus können Sie die ROC- Kurve zeichnen , und die Messung der Fläche unter der ROC-Kurve gibt Ihnen die Qualität dieser Klassifikatoren.
ROC-Kurven können für Ihr Mehrklassenproblem erweitert werden. Ich schlage vor, die Antwort dieses Threads zu lesen .
quelle
Um mehrwegige Textklassifizierungssysteme zu bewerten, verwende ich mikro- und makromitteltes F1 (F-Measure). Das F-Maß ist im Wesentlichen eine gewichtete Kombination aus Präzision und Erinnerung daran. Für die binäre Klassifizierung sind die Mikro- und Makroansätze gleich, aber für den Mehrwegefall denke ich, dass sie Ihnen helfen könnten. Sie können sich Micro F1 als eine gewichtete Kombination aus Präzision und Erinnerung vorstellen, die jedem Dokument das gleiche Gewicht verleiht, während Macro F1 jeder Klasse das gleiche Gewicht verleiht. Die F-Measure-Gleichung ist für jede Gleichung gleich, aber Sie berechnen die Genauigkeit und rufen sie anders ab:
woherTP ist wahr positiv, FP ist falsch positiv, FN ist falsch negativ und C ist klasse.
quelle
quelle