Warum löst ein Kreuzvalidierungsverfahren das Problem der Überanpassung eines Modells?
Warum löst ein Kreuzvalidierungsverfahren das Problem der Überanpassung eines Modells?
Antworten:
Mir fällt gerade keine ausreichend klare Erklärung ein, also überlasse ich das jemand anderem. Durch die Kreuzvalidierung wird das Problem der Überanpassung bei der Modellauswahl jedoch nicht vollständig gelöst, sondern nur reduziert. Der Kreuzvalidierungsfehler weist keine vernachlässigbare Varianz auf, insbesondere wenn der Datensatz klein ist. Mit anderen Worten, Sie erhalten einen geringfügig unterschiedlichen Wert, der von der verwendeten Datenprobe abhängt. Dies bedeutet, dass Sie das Kreuzvalidierungskriterium überbewerten können, wenn Sie bei der Modellauswahl viele Freiheitsgrade haben (z. B. viele Funktionen, aus denen Sie eine kleine Teilmenge auswählen können, viele Hyperparameter, aus denen Sie auswählen können) Da das Modell so abgestimmt ist, dass diese zufällige Variation ausgenutzt wird und nicht so, dass die Leistung tatsächlich verbessert wird, und Sie können mit einem Modell enden, das schlecht funktioniert. Eine Diskussion hierzu finden Sie unterCawley und Talbot "Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung", JMLR, vol. 11, S. 2079–2107, 2010
Leider kann eine Kreuzvalidierung Sie am ehesten im Stich lassen, wenn Sie über einen kleinen Datensatz verfügen, genau dann, wenn Sie eine Kreuzvalidierung am meisten benötigen. Beachten Sie, dass die k-fache Kreuzvalidierung im Allgemeinen zuverlässiger ist als die ausschließliche Kreuzvalidierung, da sie eine geringere Varianz aufweist, bei einigen Modellen jedoch teurer zu berechnen ist (weshalb manchmal LOOCV für die Modellauswahl verwendet wird). obwohl es eine hohe Varianz hat).
Meine Antwort ist eher intuitiv als streng, aber vielleicht hilft sie ...
Nach meinem Verständnis ist eine Überanpassung das Ergebnis einer Modellauswahl auf der Grundlage von Training und Test mit denselben Daten, wobei Sie über einen flexiblen Anpassungsmechanismus verfügen: Sie passen Ihre Stichprobe von Daten so genau an, dass Sie dem Rauschen, den Ausreißern und allem gerecht werden die andere Varianz.
Wenn Sie die Daten in ein Trainings- und Test-Set aufteilen, können Sie dies nicht tun. Bei einer statischen Aufteilung werden Ihre Daten jedoch nicht effizient verwendet, und die Aufteilung selbst kann ein Problem darstellen. Durch die Kreuzvalidierung bleibt der Vorteil der Aufteilung der Trainingstests, dass keine exakte Anpassung an die Trainingsdaten erfolgt, erhalten. Gleichzeitig werden die Daten, über die Sie verfügen, so effizient wie möglich verwendet (dh alle Ihre Daten werden verwendet) als Trainings- und Testdaten, nur nicht im gleichen Lauf).
Wenn Sie über einen flexiblen Anpassungsmechanismus verfügen, müssen Sie Ihre Modellauswahl einschränken, damit er nicht "perfekt", sondern in irgendeiner Weise komplex passt. Sie können dies mit AIC, BIC oder einer anderen Bestrafungsmethode tun, die die Anpassungskomplexität direkt bestraft, oder Sie können dies mit dem Lebenslauf tun. (Oder Sie können eine Anpassungsmethode verwenden, die nicht sehr flexibel ist. Dies ist einer der Gründe, warum lineare Modelle gut sind.)
Eine andere Sichtweise ist, dass es beim Lernen um Generalisierung geht und eine zu enge Passform in gewissem Sinne nicht generalisiert. Indem Sie variieren, worauf Sie lernen und worauf Sie getestet werden, verallgemeinern Sie besser, als wenn Sie nur die Antworten auf eine bestimmte Reihe von Fragen gelernt haben.
Aus Bayes-Sicht bin ich mir nicht so sicher, ob eine Kreuzvalidierung etwas bewirkt, was eine "richtige" Bayes-Analyse für den Vergleich von Modellen nicht bewirkt. Aber ich bin nicht zu 100% sicher, dass es das tut.
Welches die vorherige prädiktive Verteilung genannt wird . Grundsätzlich wird angegeben, wie gut das Modell die tatsächlich beobachteten Daten vorhergesagt hat, und zwar genau so, wie dies bei der Kreuzvalidierung der Fall ist, wobei das "vorherige" durch das angepasste "Trainingsmodell" und die "Daten" durch das "Testen" ersetzt wurden. Daten. Wenn also Modell B die Daten besser vorhergesagt hat als Modell A, steigt seine hintere Wahrscheinlichkeit im Vergleich zu Modell A. Daraus ergibt sich, dass das Bayes-Theorem tatsächlich eine Kreuzvalidierung unter Verwendung aller Daten und nicht einer Teilmenge durchführt. Davon bin ich allerdings nicht ganz überzeugt - anscheinend bekommen wir etwas für nichts.
Ein weiteres nettes Merkmal dieser Methode ist, dass sie einen eingebauten "Occam-Rasierer" besitzt, der durch das Verhältnis der Normalisierungskonstanten der vorherigen Verteilungen für jedes Modell gegeben ist.
Eine Kreuzvalidierung scheint jedoch für das gefürchtete alte "etwas anderes" oder das, was manchmal als "Modellfehlspezifikation" bezeichnet wird, wertvoll zu sein. Ich bin ständig hin- und hergerissen, ob dieses "etwas anderes" wichtig ist oder nicht, denn es scheint wichtig zu sein - aber Sie sind gelähmt und haben keine Lösung, wenn es anscheinend wichtig ist. Nur etwas, um Ihnen Kopfschmerzen zu bereiten, aber nichts, was Sie dagegen tun können - außer darüber nachzudenken, was dieses "etwas anderes" sein könnte und es in Ihrem Modell auszuprobieren (damit es nicht mehr Teil von "etwas anderem" ist). .
Darüber hinaus ist die Kreuzvalidierung eine Möglichkeit, eine Bayes'sche Analyse durchzuführen, wenn die obigen Integrale lächerlich schwer sind. Und Kreuzvalidierung "macht Sinn" für fast jeden - sie ist "mechanisch" und nicht "mathematisch". So ist es leicht zu verstehen, was los ist. Und es scheint auch Ihren Kopf dazu zu bringen, sich auf den wichtigen Teil von Modellen zu konzentrieren - gute Vorhersagen zu treffen.