Konfidenzintervall für die kreuzvalidierte Klassifizierungsgenauigkeit


11

Ich arbeite an einem Klassifizierungsproblem, das eine Ähnlichkeitsmetrik zwischen zwei eingegebenen Röntgenbildern berechnet. Wenn die Bilder von derselben Person stammen (Bezeichnung "rechts"), wird eine höhere Metrik berechnet. Eingabebilder von zwei verschiedenen Personen (Bezeichnung "falsch") führen zu einer niedrigeren Metrik.

Ich habe eine geschichtete 10-fache Kreuzvalidierung verwendet, um die Wahrscheinlichkeit einer Fehlklassifizierung zu berechnen. Meine aktuelle Stichprobengröße beträgt ungefähr 40 richtige Übereinstimmungen und 80 falsche Übereinstimmungen, wobei jeder Datenpunkt die berechnete Metrik ist. Ich erhalte eine Fehlklassifizierungswahrscheinlichkeit von 0,00, benötige jedoch eine Art Konfidenzintervall / Fehleranalyse.

Ich habe versucht, ein Konfidenzintervall für binomiale Proportionen zu verwenden (wobei ich die Ergebnisse der Kreuzvalidierung als korrekte Kennzeichnung oder falsche Kennzeichnung für meine Anzahl von Erfolgen verwenden würde). Eine der Annahmen hinter der Binomialanalyse ist jedoch die gleiche Erfolgswahrscheinlichkeit für jeden Versuch, und ich bin mir nicht sicher, ob die Methode hinter der Klassifizierung von "richtig" oder "falsch" in der Kreuzvalidierung als gegeben angesehen werden kann die gleiche Erfolgswahrscheinlichkeit.

Die einzige andere Analyse, die mir in den Sinn kommt, besteht darin, die Kreuzvalidierung X-mal zu wiederholen und den Mittelwert / die Standardabweichung des Klassifizierungsfehlers zu berechnen. Ich bin mir jedoch nicht sicher, ob dies überhaupt angemessen ist, da ich die Daten aus meinem wiederverwenden würde relativ kleine Stichprobengröße mehrmals.

Irgendwelche Gedanken? Ich verwende MATLAB für alle meine Analysen und habe die Statistik-Toolbox. Würde mich über jede Unterstützung freuen!


Eine Fehlklassifizierungswahrscheinlichkeit von 0,00 bedeutet, dass Sie für jede der 10 Kreuzvalidierungsfalten eine Klassifizierungsgenauigkeit von 100% erhalten.
Amöbe sagt Reinstate Monica

Ja das ist korrekt. Jede der Falten führte zu keinen Fehlklassifizierungen; Die von mir gemeldeten 0,00 repräsentieren die Gesamtzahl der Fehlklassifizierungen (0) aus der Gesamtzahl der Testfälle (120).
Sean

Übrigens, was genau meinen Sie mit "geschichteter" Kreuzvalidierung? Auf jeder CV-Falte haben Sie 120/10 = 12 Testmuster mit immer 4 Übereinstimmungen und 8 Nichtübereinstimmungen?
Amöbe sagt Reinstate Monica

Ja, genau das ist es - zumindest verstehe ich so, wie es in MATLAB gemacht wird. Jede Falte sollte das gleiche Verhältnis der 'richtigen' / 'falschen' Klassenbezeichnungen enthalten, nämlich 1: 2.
Sean

Antworten:


7

Einfluss der Instabilität auf die Vorhersagen verschiedener Ersatzmodelle

Eine der Annahmen hinter der Binomialanalyse ist jedoch die gleiche Erfolgswahrscheinlichkeit für jeden Versuch, und ich bin mir nicht sicher, ob die Methode hinter der Klassifizierung von "richtig" oder "falsch" in der Kreuzvalidierung als gegeben angesehen werden kann die gleiche Erfolgswahrscheinlichkeit.

Normalerweise ist diese Gleichwertigkeit eine Annahme, die auch erforderlich ist, damit Sie die Ergebnisse der verschiedenen Ersatzmodelle zusammenfassen können.

In der Praxis ist Ihre Intuition, dass diese Annahme verletzt werden könnte, oft richtig. Sie können jedoch messen, ob dies der Fall ist. Hier finde ich die iterierte Kreuzvalidierung hilfreich: Anhand der Stabilität von Vorhersagen für denselben Fall durch verschiedene Ersatzmodelle können Sie beurteilen, ob die Modelle äquivalent sind (stabile Vorhersagen) oder nicht.

Hier ist ein Schema der iterierten (auch wiederholten) fachen Kreuzvalidierung:k
iterierte k-fache Kreuzvalidierung

Der Unterricht ist rot und blau. Die Kreise rechts symbolisieren die Vorhersagen. In jeder Iteration wird jede Stichprobe genau einmal vorhergesagt. Normalerweise wird der Mittelwert als Leistungsschätzung verwendet, wobei implizit davon ausgegangen wird, dass die Leistung der Ersatzmodelle gleich ist. Wenn Sie nach jeder Stichprobe anhand der Vorhersagen suchen, die von verschiedenen Ersatzmodellen (dh über die Spalten hinweg) gemacht wurden, können Sie sehen, wie stabil die Vorhersagen für diese Stichprobe sind.ichk

Sie können auch die Leistung für jede Iteration berechnen (Block mit 3 Zeilen in der Zeichnung). Jede Abweichung zwischen diesen bedeutet, dass die Annahme, dass Ersatzmodelle äquivalent sind (zueinander und darüber hinaus zu dem in allen Fällen aufgebauten "großen Modell"), nicht erfüllt ist. Dies zeigt Ihnen aber auch, wie viel Instabilität Sie haben. Für den Binomialanteil denke ich, solange die wahre Leistung gleich ist (dh unabhängig davon, ob immer dieselben Fälle falsch vorhergesagt werden oder ob dieselbe Anzahl, aber unterschiedliche Fälle falsch vorhergesagt werden). Ich weiß nicht, ob man für die Leistung der Ersatzmodelle vernünftigerweise eine bestimmte Verteilung annehmen könnte. Aber ich denke, es ist auf jeden Fall ein Vorteil gegenüber der derzeit üblichen Meldung von Klassifizierungsfehlern, wenn Sie diese Instabilität überhaupt melden. Ersatzmodelle wurden bereits für jede der Iterationen gepoolt, die Instabilitätsvarianz beträgt ungefähr das k- fache der beobachteten Varianz zwischen den Iterationen.kk


nki

Die Zeichnung ist eine neuere Version von Abb. 5 in diesem Artikel: Beleites, C. & Salzer, R.: Bewertung und Verbesserung der Stabilität chemometrischer Modelle in Situationen mit kleinen Probengrößen, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Beachten Sie, dass ich beim Schreiben des Papiers die verschiedenen Varianzquellen , die ich hier erklärt habe, noch nicht vollständig erkannt habe - denken Sie daran. Ich denke daher, dass die ArgumentationFür eine effektive Schätzung der Probengröße ist dies nicht korrekt, obwohl die Schlussfolgerung der Anwendung, dass unterschiedliche Gewebetypen innerhalb jedes Patienten ungefähr so ​​viele Gesamtinformationen liefern wie ein neuer Patient mit einem bestimmten Gewebetyp, wahrscheinlich immer noch gültig ist (ich habe einen völlig anderen Typ von Beweise, die auch in diese Richtung weisen). Ich bin mir jedoch noch nicht ganz sicher (noch wie ich es besser machen und somit überprüfen kann), und dieses Problem hat nichts mit Ihrer Frage zu tun.


Welche Leistung soll für das Binomial-Konfidenzintervall verwendet werden?

Bisher habe ich die durchschnittlich beobachtete Leistung verwendet. Sie können auch die schlechteste beobachtete Leistung verwenden: Je näher die beobachtete Leistung an 0,5 liegt, desto größer ist die Varianz und damit das Konfidenzintervall. Konfidenzintervalle der beobachteten Leistung, die 0,5 am nächsten kommen, geben Ihnen daher eine konservative "Sicherheitsmarge".

Beachten Sie, dass einige Methoden zur Berechnung von Binomial-Konfidenzintervallen auch dann funktionieren, wenn die beobachtete Anzahl von Erfolgen keine Ganzzahl ist. Ich verwende die "Integration der Bayes'schen posterioren Wahrscheinlichkeit", wie in
Ross, TD, beschrieben: Genaue Konfidenzintervalle für Binomialproportionen und Poisson-Ratenschätzung, Comput Biol Med, 33, 509-531 (2003). DOI: 10.1016 / S0010-4825 (03) 00019-2

(Ich weiß es nicht für Matlab, aber in R können Sie binom::binom.bayesbeide Formparameter auf 1 setzen).


n

Siehe auch: Bengio, Y. und Grandvalet, Y.: Kein unvoreingenommener Schätzer der Varianz der K-fachen Kreuzvalidierung, Journal of Machine Learning Research, 2004, 5, 1089-1105 .

(Mehr über diese Dinge nachzudenken steht auf meiner Forschungsliste ... aber da ich aus der experimentellen Wissenschaft komme, möchte ich die theoretischen und simulativen Schlussfolgerungen gerne mit experimentellen Daten ergänzen - was hier schwierig ist, da ich eine große benötigen würde Satz unabhängiger Fälle für Referenztests)


Update: Ist es gerechtfertigt, eine Biomialverteilung anzunehmen?

k

n

npn


Hallo @cbeleites, ich habe gerade kommentiert, dass meine CV-Analyse zu 2 eindeutigen Werten für diesen bestimmten Datensatz führt (einige andere Datensätze haben N eindeutige Werte, wobei N normalerweise weniger als 5 beträgt), genau wie die oben beschriebene Amöbe. Wie kann ich vor diesem Hintergrund zeigen, dass meine Vorhersagen nur mit meinem einzigen Datensatz und Lebenslauf stabil sind? In Bezug auf eine Binomialverteilung habe ich das Agresti-Coull-Intervall in Betracht gezogen (kann für eine hohe Erfolgsrate / 100% Erfolgsrate arbeiten, ohne dass es zu Störungen kommt). Sie sagen anscheinend, ich kann eine Binomialverteilung verwenden, aber ich bin mir immer noch nicht sicher, wie ich diese Annahme des gleichen Erfolgsproblems rechtfertigen kann.
Sean

p

1
@amoeba: Ich habe keine Ahnung, wie ich die Binomialverteilung mit der unbekannten Verteilung aufgrund von Instabilität in einem Konfidenzintervall kombinieren soll. Daher gebe ich die beobachteten Perzentile für die (In-) Stabilität und das Binomial-ci für die endliche Stichprobengröße an. Wie man sie kombiniert, ist eine der Forschungsfragen, die ich im Kopf habe, aber bisher habe ich weder eine Lösung gefunden noch jemanden getroffen, der dies getan hat. Ich denke, wir sind an der Spitze der Forschung angekommen ...
cbeleites unterstützt Monica am

1
@ Sean: Hast du meine letzte Frage zu verwandten Themen gesehen? In den Kommentaren findet eine (für mich) sehr interessante Diskussion statt, und ich arbeite derzeit selbst an einigen Simulationen. Ich kam zu der Überzeugung, dass die Binomialannahme völlig falsch ist! Sie könnten auch an mehreren dort bereitgestellten Referenzen interessiert sein, die dasselbe behaupten.
Amöbe sagt Reinstate Monica

1
@ Sean: Ich werde versuchen, diese beiden Themen auf dem neuesten Stand zu halten, was bedeutet, dass ich nach (und wenn) der weiteren Klärung des Problems versuchen werde, die Situation dort zusammenzufassen und auch hier eine neue Antwort zu geben. Haben Sie dieses Papier bemerkt , das im anderen Thread verlinkt ist? Die Autoren diskutieren genau Ihre Frage und stellen ein Bootstrap-Verfahren bereit, von dem sie behaupten, dass es gut funktioniert. Wenn ich jetzt eine Antwort auf Ihre Frage schreiben würde, würde ich deren Vorgehensweise empfehlen. Aber es wäre sinnvoll, zuerst 24 Papiere zu überprüfen, in denen dieses Papier zitiert wird.
Amöbe sagt Reinstate Monica

3

Ich denke, Ihre Idee, die Kreuzvalidierung viele Male zu wiederholen, ist genau richtig.

Wiederholen Sie Ihren Lebenslauf sagen wir mal 1000 Mal, jedes Mal Splitting Ihre Daten in 10 Teile (für 10-fach CV) in einer anderen Art und Weise (nicht nicht die Etiketten Shuffle). Sie erhalten 1000 Schätzungen der Klassifizierungsgenauigkeit. Natürlich werden Sie dieselben Daten wiederverwenden, sodass diese 1000 Schätzungen nicht unabhängig sind. Dies ähnelt jedoch dem Bootstrap-Verfahren: Sie können die Standardabweichung über diese Genauigkeiten als Standardfehler des Mittelwerts Ihres Gesamtgenauigkeitsschätzers verwenden. Oder ein 95% -Perzentilintervall als 95% -Konfidenzintervall.

Alternativ können Sie die Kreuzvalidierungsschleife und die Bootstrap-Schleife kombinieren und einfach zufällige (möglicherweise geschichtete zufällige) 10% Ihrer Daten als Testsatz auswählen und dies 1000 Mal tun. Die gleiche Argumentation wie oben gilt auch hier. Dies führt jedoch zu einer höheren Varianz gegenüber Wiederholungen, daher denke ich, dass das obige Verfahren besser ist.

Wenn Ihre Fehlklassifizierungsrate 0,00 beträgt, macht Ihr Klassifizierer keine Fehler, und wenn dies bei jeder Bootstrap-Iteration auftritt, erhalten Sie ein Konfidenzintervall von Null. Aber das würde einfach bedeuten, dass Ihr Klassifikator ziemlich perfekt ist, so gut für Sie.


Hallo @amoeba, danke für deine Antwort. Würde es Ihnen etwas ausmachen, etwas mehr über Ihren ersten Vorschlag zu erklären, den Lebenslauf 1000 Mal zu wiederholen, indem Sie die Stichproben zufällig permutieren? Sollte es einen vorher festgelegten Anteil des Testsatzes geben: Trainingssatz (z. B. 10:90 für die 10-fache Kreuzvalidierung)? Ich glaube, ich bin ein wenig unklar, wie das Wiederholen der 10-fachen Validierung die Varianz im Laufe der Zeit erhöhen würde.
Sean

1
Ich befürchte, dass das zweite von @amoeba vorgeschlagene Verfahren zu optimistisch ist: Ein nicht perfekter Klassifikator kann eine perfekte Leistung für einen bestimmten Datensatz erzielen (nehmen Sie beispielsweise an, Sie haben nur 4 Stichproben - es ist ein 1: 8, um alle zu klassifizieren zufällig richtig). Wie Amöbe bemerkte, führt das Messen der Varianz über verschiedene Zuordnungen von Zugtestfalten zu einem Konfidenzintervall von 0 Breite, was in diesem Fall eindeutig falsch ist.
Trisoloriansunscreen

1
Ich denke, dass dieses Problem letztendlich darin besteht, die Wahrscheinlichkeit zu ermitteln, Daten zu beobachten, die sich von denen unterscheiden, die ich noch nicht beobachtet habe. Das Abrufen von Konfidenzintervallen für meine Stichprobe ist das, was @amoeba für meine ursprüngliche Frage vorgeschlagen hat (ich habe für jede CV-Iteration zufällige Falten verwendet), und das Ergebnis sieht realistischer aus (95% CI: [0,0028, 0,0033]). Ich weiß jedoch nicht, ob es eine andere Technik gibt, die für die zukünftige Datenvorhersage besser wäre. Vielleicht eine Art modellbasierter Ansatz, bei dem ich Kurven an meine Daten anpasse und deren Überlappung berechne?
Sean

3
@amoeba: Danke für die Klarstellung, ich glaube ich habe deine Antwort nicht sorgfältig genug gelesen. Ich bin jedoch immer noch besorgt über eine optimistische Tendenz dieses Ansatzes (beide Verfahren). Indem Sie die Genauigkeit messen, während Sie verschiedene CV-Aufteilungen versuchen, schätzen Sie die Variabilität, die durch die willkürliche Aufteilung verursacht wird. Sie ignorieren jedoch die Tatsache, dass Ihre gesamten Daten eine zufällige Stichprobe einer größeren Anzahl von Beobachtungen sind (die Sie nicht gesammelt haben). Wenn Sie einen kleinen Datensatz haben, der zufällig eine perfekte Leistung erzielt (unabhängig von CV-Aufteilungen), ist Ihr Konfidenzintervall Null und dies ist falsch.
Trisoloriansunscreen

1
@amoeba: Es ist schwierig, da Sie die Beobachtungen nicht selbst booten können (in diesem Fall einen Klassifikator für den nächsten Nachbarn in Betracht ziehen). Ich habe selbst mit diesem Problem zu kämpfen. Mal sehen, ob jemand anderes auf eine Idee kommt.
Trisoloriansunscreen

2

Ein Klassifizierungsfehler ist sowohl diskontinuierlich als auch eine falsche Bewertungsregel. Es hat eine geringe Präzision und bei der Optimierung werden die falschen Merkmale ausgewählt und die falschen Gewichte angegeben.


Dies kann für den OP kaum ein Problem sein, wenn er eine kreuzvalidierte Klassifizierungsgenauigkeit von 99-100% erhält.
Amöbe sagt Reinstate Monica

1
@amoeba: Es kann auch ein Problem sein, wenn korrekte Anteile nahe 100 oder 0% beobachtet werden: Im Gegensatz zu Leistungsmessungen, die auf kontinuierlichen Bewertungen beruhen, kann jede Art von Leistung, die nach der Dichotomisierung (Härtung) der kontinuierlichen Klassifizierungsbewertung gemessen wird, nicht anzeigen Die Vorhersagen nähern sich der Entscheidungsgrenze, solange sie noch auf der richtigen Seite sind. IMHO gibt es jedoch triftige Gründe, die proportionalen Leistungsmessungen zu melden (z. B. wenn Ihre Leser / Mitarbeiter sie verstehen, aber nicht verstehen, z. B. Brier-Ergebnisse). Ich wollte das nicht öffnen ...
cbeleites unterstützt Monica am

... Diskussionslinie, da es in der Frage keinen Hinweis auf eine Optimierung gab (wo dies wirklich wichtig wird).
cbeleites unterstützt Monica

Wenn Sie einen Anteil berechnen, der als "richtig" eingestuft ist, müssen Sie dies aus einem bestimmten Grund tun, z. B. um ein Urteil zu fällen oder Maßnahmen zu ergreifen. Der Anteil ist für diese Zwecke irreführend.
Frank Harrell

1
@FrankHarrell: Nun, der Grund, den ich denke, ist, es in einer Zeitung zu berichten. Denken Sie, die Leute sollten überhaupt aufhören, Klassifizierungsgenauigkeiten zu melden?
Amöbe sagt Reinstate Monica
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.