Eigentlich ist das, was sie erwähnt haben, richtig. Die Idee des Oversamplings ist richtig und gehört im Allgemeinen zu den Resampling-Methoden, um dieses Problem zu lösen. Resampling kann durch Überabtastung der Minderheiten oder Unterabtastung der Mehrheiten erfolgen. Sie können sich den SMOTE- Algorithmus als eine gut etablierte Methode zum Resampling ansehen.
Aber zu Ihrer Hauptfrage: Nein, es geht nicht nur um die Konsistenz der Verteilungen zwischen Test und Zugset. Es ist ein bisschen mehr.
Stellen Sie sich, wie Sie bereits über Metriken erwähnt haben, die Genauigkeitsbewertung vor. Wenn ich ein binäres Klassifizierungsproblem mit 2 Klassen habe, einer 90% der Bevölkerung und der anderen 10%, kann ich ohne maschinelles Lernen sagen, dass meine Vorhersage immer die Mehrheitsklasse ist und ich eine Genauigkeit von 90% habe! Es funktioniert also einfach nicht, unabhängig von der Konsistenz zwischen Zugtestverteilungen. In solchen Fällen können Sie Präzision und Rückruf stärker berücksichtigen. Normalerweise möchten Sie einen Klassifikator haben, der den Mittelwert (normalerweise den harmonischen Mittelwert) von Präzision und Rückruf minimiert, dh die Fehlerrate ist dort, wo FP und FN ziemlich klein und nahe beieinander liegen.
Das harmonische Mittel wird anstelle des arithmetischen Mittels verwendet, da es die Bedingung unterstützt, dass diese Fehler so gleich wie möglich sind. Zum Beispiel, wenn Präzision ist1 und Rückruf ist 0 das arithmetische Mittel ist 0,5was die Realität in den Ergebnissen nicht veranschaulicht. Aber harmonisches Mittel ist0 was besagt, dass jedoch eine der Metriken gut ist, die andere ist super schlecht, so dass das Ergebnis im Allgemeinen nicht gut ist.
In der Praxis gibt es jedoch Situationen, in denen Sie die Fehler NICHT gleich halten möchten. Warum? Siehe das folgende Beispiel:
Ein zusätzlicher Punkt
Hier geht es nicht genau um Ihre Frage, kann aber zum Verständnis beitragen.
In der Praxis können Sie einen Fehler opfern, um den anderen zu optimieren. Zum Beispiel könnte die Diagnose von HIV ein Fall sein (ich mache mir nur ein Beispiel vor). Es ist eine sehr unausgewogene Klassifizierung, da natürlich die Anzahl der Menschen ohne HIV dramatisch höher ist als die der Träger. Schauen wir uns nun die Fehler an:
Falsch positiv: Die Person hat kein HIV, aber der Test sagt, dass sie es hat.
Falsch negativ: Die Person hat zwar HIV, aber der Test sagt, dass dies nicht der Fall ist.
Wenn wir davon ausgehen, dass die falsche Aussage, dass er HIV hat, einfach zu einem anderen Test führt, können wir sehr darauf achten, dass wir nicht fälschlicherweise sagen, dass er kein Träger ist, da dies zur Verbreitung des Virus führen kann. Hier sollte Ihr Algorithmus für False Negative empfindlich sein und ihn viel stärker als False Positive bestrafen, dh gemäß der obigen Abbildung kann es zu einer höheren Rate an False Positive kommen.
Gleiches passiert, wenn Sie die Gesichter von Personen mit einer Kamera automatisch erkennen möchten, damit diese eine Website mit höchster Sicherheit betreten können. Es macht Ihnen nichts aus, wenn die Tür nicht einmal für jemanden geöffnet wird, der die Erlaubnis hat (False Negative), aber ich bin sicher, Sie möchten keinen Fremden hereinlassen! (Falsch positiv)
Hoffe es hat geholfen.
cost(false positive) = cost(false negative)
, kann ich die Genauigkeit verwenden, da Metrik und Neuausgleich nur durchgeführt werden sollten, um der Verteilung der Testprobe zu entsprechen. Ist das richtig?Auf Ihre Frage "Ist es wirklich ein Problem, einen Klassifikator mit 80% Klasse A zu trainieren, wenn der Testsatz den gleichen Anteil hat?" Lautet die Antwort "Es hängt von den Kosten für Fehlklassifizierungen ab", aber normalerweise ist es sicherlich ein Problem , weil Ihr Klassifikator voreingenommen ist, um eine Person unabhängig von den Werten ihrer Merkmale in die überrepräsentierte Klasse zu klassifizieren, da dies im Durchschnitt die Chancen auf eine korrekte Klassifizierung während des Trainings erhöht.
Es gibt verschiedene Über- und Unterabtaststrategien . Das vielleicht beliebteste ist SMOTE (Synthetic Minority Over-Sampling Technique), das synthetische Trainingsdaten basierend auf k-nächsten Nachbarn erstellt.
quelle