Prüfen, ob die Genauigkeitsverbesserung signifikant ist


14

Angenommen, ich habe einen Algorithmus, der die Dinge in zwei Kategorien unterteilt. Ich kann die Genauigkeit des Algorithmus an beispielsweise 1000 Testobjekten messen. Angenommen, 80% der Objekte sind korrekt klassifiziert.

Nehmen wir an, ich ändere den Algorithmus irgendwie so, dass 81% der Dinge richtig klassifiziert sind.

Können Statistiken Aufschluss darüber geben, ob meine Verbesserung des Algorithmus statistisch signifikant ist? Ist das Konzept der statistischen Signifikanz in dieser Situation relevant? Bitte weisen Sie mich in die Richtung einiger Ressourcen, die relevant sein könnten.

Danke vielmals.

Antworten:


3

Kurz gesagt ja. Hier ist die statistische Signifikanz relevant. Sie betrachten den Klassifizierungsfehler (oder, wie Sie es hier angeben, Genauigkeit = 1 - Klassifizierungsfehler). Wenn Sie die Klassifikatoren mit verschiedenen 1000 Stichproben vergleichen, können Sie einfach den Binomialtest verwenden. Wenn es sich um dieselben 1000 Stichproben handelt, müssen Sie den McNemar-Test verwenden. Beachten Sie, dass das einfache Testen des Klassifizierungsfehlers auf diese Weise nicht optimal ist, da Sie entweder davon ausgehen, dass der Klassifizierungsfehler von der wahren Klasse unabhängig ist, oder dass der Anteil der wahren Klassen in Ihren potenziellen Anwendungen gleich ist.

Das heißt, Sie sollten sich Maßnahmen wie True Positive Rate, False Positive Rate oder AUC ansehen. Welche Maßnahme zu verwenden und wie sie zu testen ist, hängt von der Ausgabe Ihres Klassikers ab. Es kann sich nur um eine Klasse oder um eine fortlaufende Zahl handeln, die die Wahrscheinlichkeit angibt, zu einer bestimmten Klasse zu gehören.


Das ist großartig Danke. Eigentlich beschäftige ich mich mit der Stimmungsanalyse von Textdokumenten - sie werden in "positiv" oder "negativ" klassifiziert - es wird eine Menge Arbeit veröffentlicht, bei der die Benutzer die Auswahl der Features auf subtile Weise ändern, beispielsweise mit einer Genauigkeitsverbesserung von 1% - und schreiben ein Papier darüber. Ich frage mich, ob die Autoren in vielen Fällen keine statistisch signifikante Verbesserung der Klassifikationsgenauigkeit nachgewiesen haben.
Ben

Der McNemar-Test zeigt Ihnen, ob die Modelle erheblich voneinander abweichen, was nicht immer bedeutet, dass der Unterschied in der Genauigkeit erheblich ist (verschiedene Modelle können dieselbe Genauigkeit aufweisen). Um die Signifikanz der Genauigkeitssteigerung direkt zu überprüfen, sollten Sie viele Genauigkeitsschätzungen durchführen, um die Genauigkeitsverteilungen abzubilden und somit zu schätzen, ob sie unterschiedlich sind. Dies würde bedeuten, dass Sie Ihre Modelle mehrmals trainieren müssen.
Drevicko

3

Wie Erik sagte, kann man dies auf statistische Signifikanz überprüfen. Überlegen Sie sich jedoch einen Moment genau, was Sie überprüfen möchten. Ich denke, eine interessantere Frage könnte sein, zu fragen, wie wahrscheinlich es ist, dass der angeblich "verbesserte" Algorithmus besser (oder sinnvollerweise besser) ist als das Original, wenn man die Daten einer beobachteten Differenz von 1% zugrunde legt. Das Stellen von Fragen in Bezug auf "statistische Signifikanz" führt tendenziell zu der entgegengesetzten Art von Frage: Besteht bei gleichen beiden Algorithmen eine Wahrscheinlichkeit von weniger als 5%, eine Verbesserung von mindestens so viel zu beobachten?

Für mich ist die letztere Frage verkehrt, aber irgendwie zum Standard geworden. Sie können Wikipedia über die Kontroverse beim Testen statistischer Hypothesen lesen . Vielleicht interessieren Sie sich später für die Bayes'sche Folgerung . Wenn Sie wirklich in die Bayes'sche Datenanalyse einsteigen möchten, können Sie die "Bayes'sche Datenanalyse" von Gelman et al. Oder diese Frage prüfen .


2

Anwenden von Erik Antwort auf Michaels :

Genauso kann man denken, worauf Erik sich bezieht, wenn er das Leistungsmaß auswählt.

Ich finde es hilfreich, anhand der Fragen, die sie beantworten, auf verschiedene solche Maßnahmen zu verweisen (hier in der mir am besten vertrauten medizinischen Diagnosesprache - aber vielleicht können Sie den Patienten einfach durch Text und die Krankheit durch Spam ersetzen ;-)):

  • Empfindlichkeit: Wenn der Patient wirklich an der Krankheit leidet, wie wahrscheinlich ist es, dass der Klassifikator dies erkennt?

  • Spezifität: Wie wahrscheinlich ist es, dass der Klassifikator dies erkennt, wenn der Patient die Krankheit tatsächlich nicht hat?

  • Positiver prädiktiver Wert: Wie wahrscheinlich ist es, dass der Patient tatsächlich an der Krankheit leidet, wenn der Klassifikator behauptet, er sei krank?

  • Negativer Vorhersagewert: Wenn der Klassifikator behauptet, der Patient sei nicht krank, wie wahrscheinlich ist es dann, dass der Patient die Krankheit wirklich nicht hat?

Wie Sie sehen, sind die prädikitiven Werte das, woran Ärzte und Patienten wirklich interessiert sind. Fast jeder charakterisiert seinen Klassifikator jedoch durch Sensitivität und Spezifität. Der Grund dafür ist, dass die Vorhersagewerte die Prävalenz der Krankheit berücksichtigen müssen und diese für verschiedene Arten von Patienten sehr unterschiedlich sein kann (Größenordnungen!).

Mehr zum Thema für Ihre Frage:

Ich wette, Sie haben Recht, wenn Sie sich Sorgen machen.

Nehmen wir beide Szenarien von Erik als Beispiel:

Hier sind die unabhängigen Testmuster:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

(Beachten Sie, dass dieser Test zweiseitig war, vorausgesetzt, die beiden Klassifikatoren wären veröffentlicht worden, selbst wenn die Ergebnisse umgekehrt gewesen wären ...)

Hier ist die bestmögliche Situation: gepaarter Test, und der neue Klassifikator ist für alle Proben richtig, der alte ist auch richtig, plus 10 weitere:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

(Der p-Wert bleibt unter dem magischen Wert von 0,05, solange nicht mehr als 10 der 1000 Proben von den beiden Klassifikatoren unterschiedlich vorhergesagt wurden.)

Auch wenn p-Werte die richtige Antwort auf die falsche Frage sind, gibt es Hinweise darauf, dass es ein enger Raum ist.

Unter Berücksichtigung der üblichen wissenschaftlichen Praxis, dh es wurde eine unbekannte (unveröffentlichte) Anzahl neuer Funktionen getestet, und nur die, die etwas besser funktionierte, wurde veröffentlicht, wodurch der Platz noch enger wurde. Und dann ist der 80% -Klassifikator möglicherweise nur der Nachfolger eines 79% -Klassifikators ...

Wenn Sie gerne Deutsch lesen, gibt es einige wirklich schöne Bücher von Beck-Bornhold und Dubben. Wenn ich mich richtig erinnere, hat Mit an Wahrscheinlichkeit grenzender Sicherheit eine sehr nette Diskussion über diese Probleme. (Ich weiß nicht, ob es eine englische Ausgabe gibt, eine eher wörtliche Übersetzung des Titels lautet "Mit einer an die Wahrscheinlichkeit grenzenden Gewissheit".)


1

Ich würde dringend davon abraten, eine diskontinuierliche, unkorrekte Bewertungsregel zu verwenden (eine Genauigkeitsbewertung wie Sensitivität, Spezifität, korrekt eingestufter Anteil, die in einem falschen Modell zu optimierenden Ergebnissen führt), und stattdessen Likelihood-Ratio-Tests oder partielle F-Tests für den Mehrwert des neuen Modells verwenden Variablen.

Eine von mehreren Möglichkeiten, die Probleme mit der korrekten Einstufung des Anteils zu erkennen, besteht darin, dass Sie, wenn der Gesamtanteil in einer Kategorie 0,9 beträgt, 0,9 der Zeit korrekt sind, indem Sie die Daten ignorieren und jede Beobachtung als in dieser Kategorie klassifizieren.


2
Ja, manchmal ist Genauigkeit eine miese Metrik und manchmal eine großartige Methode. es hängt davon ab, ob. Das scheint jedoch völlig tangential zu sein, worum es bei der Frage geht. Die Frage ist, ob ein neuer Algorithmus für eine bekannte Metrik besser ist, und nicht, ob überhaupt eine Metrik ausgewählt wird.
Michael McGowan

Ich denke, wir müssen Ziele und Dienstprogrammfunktionen sorgfältig beschreiben, und wenn wir keine Dienstprogrammfunktionen bereitstellen möchten, müssen wir die Dienstprogrammfunktion, die bei der Klassifizierung effektiv angenommen wird, zurückrechnen.
Frank Harrell

Gibt es einen Grund für so viele anonyme Abstimmungen?
chl

2
@chl Ich dachte, ich hätte erklärt, dass ich dafür herabgestimmt habe, dass ich die gestellte Frage nicht wirklich beantwortet habe.
Michael McGowan

@MichaelMcGowan Fair genug.
Chl
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.