Auswählen einer Klassifizierungsleistungsmetrik für die Modellauswahl, Merkmalsauswahl und Veröffentlichung


8

Ich habe einen kleinen, unausgeglichenen Datensatz (70 positiv, 30 negativ) und habe mit der Modellauswahl für SVM-Parameter unter Verwendung von BAC (ausgeglichene Genauigkeit) und AUC (Bereich unter der Kurve) herumgespielt. Ich habe verschiedene Klassengewichte für den C-Parameter in libSVM verwendet, um die unausgeglichenen Daten gemäß den hier angegebenen Anweisungen auszugleichen ( Training eines Entscheidungsbaums gegen unausgeglichene Daten ).

  1. Es scheint, dass der k-fache Kreuzvalidierungsfehler sehr empfindlich auf die Art der Leistungsmessung reagiert. Es hat auch einen Fehler an sich, weil die Trainings- und Validierungssätze zufällig ausgewählt werden. Wenn ich beispielsweise BAC zweimal mit verschiedenen zufälligen Startwerten wiederhole, erhalte ich unterschiedliche Fehler und anschließend unterschiedliche optimale Parameterwerte. Wenn ich wiederholte BAC-Werte mittle, ergibt eine 1000-fache Mittelung andere optimale Parameterwerte als eine 10000-malige Mittelung. Darüber hinaus ergeben sich durch Ändern der Anzahl der Falten unterschiedliche optimale Parameterwerte.

  2. Genauigkeitsmetriken für die Kreuzvalidierung sind möglicherweise zu optimistisch. Normalerweise ergibt alles, was über eine zweifache Kreuzvalidierung hinausgeht, eine 100% ige Genauigkeit. Auch die Fehlerrate wird aufgrund der geringen Stichprobengröße diskretisiert. Die Modellauswahl gibt mir oft die gleiche Fehlerrate über alle oder die meisten Parameterwerte hinweg.

  3. Woher weiß ich beim Schreiben eines Berichts, dass eine Klassifizierung „gut“ oder „akzeptabel“ ist? Auf dem Gebiet scheint es so, als hätten wir keine allgemein akzeptierte Anpassungsgüte oder p-Wert-Schwelle. Da ich die Daten iterativ hinzufüge, möchte ich wissen, wann ich aufhören soll - was ist ein gutes N, bei dem sich das Modell nicht wesentlich verbessert?

Angesichts der oben beschriebenen Probleme scheint es, dass die Genauigkeit zwischen Veröffentlichungen nicht einfach verglichen werden kann, während AUC als schlechter Indikator für die Leistung beschrieben wurde (siehe hier oder hier zum Beispiel).

Irgendwelche Ratschläge, wie man eines dieser 3 Probleme angeht?


1
Was Sie größtenteils tun möchten, kann nicht getan werden, insbesondere mit so wenigen Daten. Das wars so ziemlich. In Bezug auf Ihren Standpunkt, dass Sie keine Konvention wie einen Schwellenwert für p-Werte haben, sollten Sie wahrscheinlich dankbar sein.
Gung - Reinstate Monica

Antworten:


5

Es scheint, dass der k-fache Kreuzvalidierungsfehler sehr empfindlich auf die Art der Leistungsmessung reagiert. Es hat auch einen Fehler an sich, weil die Trainings- und Validierungssätze zufällig ausgewählt werden.

# correct predictions# test cases

k

Darüber hinaus ergeben sich durch Ändern der Anzahl der Falten unterschiedliche optimale Parameterwerte.

Das ist aufgrund der Varianz zu erwarten. Hier können Sie einen zusätzlichen Effekt haben: libSVM teilt die Daten nur einmal auf, wenn Sie die integrierte Kreuzvalidierung für die Optimierung verwenden. Aufgrund der Natur von SVMs werden Sie feststellen, dass Unterstützungsvektoren (und folglich Genauigkeit) springen, wenn Sie die SVM mit identischen Trainingsdaten erstellen und die Parameter langsam variieren: Solange die SVM-Parameter nicht zu unterschiedlich sind, wird dies immer noch der Fall sein Wählen Sie die gleichen Unterstützungsvektoren. Nur wenn die Parater ausreichend geändert werden, ergeben sich plötzlich unterschiedliche Unterstützungsvektoren. Wenn Sie also das SVM-Parameterraster mit genau denselben Kreuzvalidierungsaufteilungen auswerten, wird möglicherweise die Variabilität ausgeblendet, die Sie zwischen verschiedenen Läufen sehen.

Meiner Meinung nach besteht das Grundproblem darin, dass Sie eine Rastersuche durchführen. Dies ist eine Optimierung, die auf einem einigermaßen reibungslosen Verhalten Ihrer Zielfunktion (Genauigkeit oder was auch immer Sie sonst verwenden) beruht. Aufgrund der hohen Varianz Ihrer Leistungsmessungen wird diese Annahme verletzt. Die "sprunghafte" Abhängigkeit des SVM-Modells verstößt ebenfalls gegen diese Annahme.

Genauigkeitsmetriken für die Kreuzvalidierung sind möglicherweise zu optimistisch. Normalerweise ergibt alles, was über eine zweifache Kreuzvalidierung hinausgeht, eine 100% ige Genauigkeit. Auch die Fehlerrate wird aufgrund der geringen Stichprobengröße diskretisiert. Die Modellauswahl gibt mir oft die gleiche Fehlerrate über alle oder die meisten Parameterwerte hinweg.

Dies ist angesichts der allgemeinen Probleme des Ansatzes zu erwarten.

Normalerweise ist es jedoch möglich, wirklich extreme Parameterwerte zu wählen, bei denen der Klassifikator ausfällt. IMHO sind die Parameterbereiche, in denen die SVMs gut funktionieren, wichtige Informationen.

In jedem Fall benötigen Sie unbedingt eine externe (doppelte / verschachtelte) Validierung der Leistung des Modells, das Sie als "am besten" auswählen.

Ich würde wahrscheinlich eine Reihe von Läufen / Wiederholungen / Iterationen einer äußeren Kreuzvalidierung oder einer äußeren Out-of-Bootstrap-Validierung durchführen und die Verteilung von angeben

  • Hyperparameter für das "beste" Modell
  • gemeldete Leistung der Abstimmung
  • beobachtete Leistung der äußeren Validierung

Der Unterschied zwischen den letzten beiden ist ein Indikator für eine Überanpassung (z. B. aufgrund des "Überfliegens" der Varianz).

Woher weiß ich beim Schreiben eines Berichts, dass eine Klassifizierung „gut“ oder „akzeptabel“ ist? Auf dem Gebiet scheint es so, als hätten wir keine allgemein akzeptierte Anpassungsgüte oder p-Wert-Schwelle. Da ich die Daten iterativ hinzufüge, möchte ich wissen, wann ich aufhören soll - was ist ein gutes N, bei dem sich das Modell nicht wesentlich verbessert?

(Was fügen Sie hinzu? Fälle oder Variablen / Merkmale?)

Wenn Sie eine iterative Modellierung durchführen, müssen Sie entweder angeben, dass Ihre Leistung aufgrund Ihres Anpassungsverfahrens nicht ernst genommen werden darf, da sie einer optimistischen Tendenz unterliegt. Die bessere Alternative ist eine Validierung des endgültigen Modells. Die Testdaten davon müssen jedoch unabhängig von allen Daten sein, die jemals in das Training oder Ihren Entscheidungsprozess für die Modellierung eingegangen sind (sodass Sie möglicherweise keine solchen Daten mehr haben).


Danke für die hervorragende Antwort. Soweit ich weiß, würde Ihre Strategie darin bestehen, eine Verteilung von Hyperparametern aus Wertebereichen zu erstellen, die aus mehreren äußeren Falten / Iterationen stammen. (1) In diesem Fall sind optimistische Genauigkeiten oder AUCs in Ordnung? Ich bin der Meinung, dass eine pessimistische Metrik besser wäre, um das "beste Modell" zu finden, da sonst die Verteilung der Bewertungen aus wiederholten Lebensläufen "einseitig" wäre. (2) Ich finde es auch merkwürdig, dass es nicht unbedingt hilfreich ist, mehr Iterationen des Lebenslaufs zu mitteln. Liegt das daran, dass Fehler aufgrund der Instabilität des SVM-Modells nicht wahrscheinlich verteilt sind?
Bravetang8

Um meine letzte Frage zu klären, füge ich Fälle iterativ mit Experimenten hinzu. Ich verwende ein erstes Modell, um 'informative' Punkte auszuwählen, aus denen ich das ursprüngliche Modell neu erstellen und verfeinern kann. Ich möchte im Wesentlichen wissen, wie viele Fälle ich hinzufügen muss, damit der geschätzte Fehler (aus der äußeren Validierung) minimal verzerrt ist. Ich hatte gehofft, dass es ein Fall / Merkmal-Verhältnis gibt, das "akzeptabel" ist.
Bravetang8

@ bravetang8: (1) Sie haben Recht: Optimistisch voreingenommene Maßnahmen sind keine gute Idee: Nicht für die interne Optimierung, da die Optimierung nicht zwischen verschiedenen Modellen unterscheiden kann, die alle perfekt zu sein scheinen. Nicht für die externe Optimierung, da in vielen Anwendungen eine konservative Schätzung der Leistung besser ist als eine überoptimistische. Es ist jedoch gut zu wissen, ob bei der internen Optimierung die interne Schätzung zu optimistisch ist oder ob dies hier kein Problem darstellt.
cbeleites unglücklich mit SX

@ bravetang8: 2) Durch Mittelung der Iterationen des Lebenslaufs wird nur der Teil der Varianz reduziert, der auf die Instabilität des Modells zurückzuführen ist, nicht jedoch der Teil, der auf Ihre endliche Fallmenge zurückzuführen ist. Nach "genug" Iterationen trägt die Varianz vom Typ Modellinstabilität nur geringfügig zur Gesamtvarianz bei, und es hilft nicht, mehr Iterationen durchzuführen.
cbeleites unglücklich mit SX

@cbeleites, hi cbeleites, ich habe mich gefragt, ob Sie Zeit haben, sich diesen Beitrag anzusehen, obwohl prof.Harrel hier bereits eine wichtige Notiz gemacht hat? Vielen Dank. stats.stackexchange.com/questions/86917/…
lennon310

3

Einfacher als BIR sind die logarithmischen oder quadratischen (Brier) Bewertungsregeln. Dies sind korrekte Bewertungen, die im Gegensatz zu dem korrekt klassifizierten Anteil bei der Optimierung nicht zu einem falschen Modell führen.


Dazu muss das OP auf die Wahrscheinlichkeitsausgabe für die SVM umschalten. IIRC zumindest mit libSVM wird dies durch Anpassen einer Logistik berechnet, und ich bin mir nicht sicher, wie eng dies mit der ursprünglichen SVM zusammenhängt.
cbeleites unglücklich mit SX

1

Wie Sie hervorheben, sind die Vorhersagegenauigkeit und die AUC in bestimmten Aspekten begrenzt. Ich würde die Bayesian Information Reward (BIR) ausprobieren, die eine genauere Einschätzung darüber geben sollte, wie gut oder schlecht Ihr Klassifikator abschneidet und wie sich dies ändert, wenn Sie Ihre Parameter anpassen (Anzahl der Validierungsfalten usw.).

Die Intuition von BIR ist wie folgt: Ein Wetter wird nicht nur für die Identifizierung der endgültigen Gewinner und Verlierer (Nullen und Einsen) belohnt, sondern vor allem für die Identifizierung der geeigneten Gewinnchancen. Darüber hinaus geht es einen Schritt voraus und vergleicht alle Vorhersagen mit den vorherigen Wahrscheinlichkeiten.

WinLose

Geben Sie hier die Bildbeschreibung ein

ppp=0.6p=0.6(inf,1].

BIR ist nicht auf binäre Klassifikationen beschränkt, sondern wird auch für multinomiale Klassifikationsprobleme verallgemeinert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.