Wie würden Sie jemandem ohne Hintergrundinformationen zur Datenanalyse die Kreuzvalidierung beschreiben ?
Wie würden Sie jemandem ohne Hintergrundinformationen zur Datenanalyse die Kreuzvalidierung beschreiben ?
Antworten:
Betrachten Sie die folgende Situation:
Ich möchte mit der U-Bahn in mein Büro fahren. Mein Plan ist, mein Auto zu nehmen, in der U-Bahn zu parken und dann mit dem Zug zu meinem Büro zu fahren. Mein Ziel ist es, jeden Tag um 8.15 Uhr mit dem Zug zu fahren, damit ich pünktlich in mein Büro komme. Ich muss Folgendes entscheiden: (a) die Zeit, zu der ich von meinem Zuhause abreisen muss, und (b) die Route, die ich nehmen werde, um zum Bahnhof zu fahren.
Im obigen Beispiel habe ich zwei Parameter (dh Abfahrtszeit und Route zur Station) und muss diese Parameter so wählen, dass ich die Station um 8.15 Uhr erreiche.
Um das obige Problem zu lösen, kann ich montags, mittwochs und freitags verschiedene Sätze von 'Parametern' (dh unterschiedliche Kombinationen von Abfahrts- und Routenzeiten) ausprobieren, um zu sehen, welche Kombination die 'beste' ist. Die Idee ist, dass ich die beste Kombination, die ich gefunden habe, jeden Tag verwenden kann, um mein Ziel zu erreichen.
Problem der Überanpassung
Das Problem mit dem obigen Ansatz besteht darin, dass ich möglicherweise überanpasse, was im Wesentlichen bedeutet, dass die beste Kombination, die ich identifiziere, in gewissem Sinne für Mo, Mi und Freitag eindeutig sein kann und diese Kombination möglicherweise nicht für Di und Do funktioniert. Eine Überanpassung kann auftreten, wenn ich bei der Suche nach der besten Kombination von Zeiten und Routen einen Aspekt der Verkehrssituation am Montag / Mittwoch / Freitag ausnutze, der am Dienstag und Donnerstag nicht auftritt.
Eine Lösung zur Überanpassung: Cross-Validation
Die Kreuzvalidierung ist eine Lösung für die Überanpassung. Die Idee ist, dass wir, sobald wir unsere beste Parameterkombination (in unserem Fall Zeit und Route) identifiziert haben, die Leistung dieses Parametersatzes in einem anderen Kontext testen. Aus diesem Grund möchten wir möglicherweise auch am Dienstag und Donnerstag testen, um sicherzustellen, dass unsere Auswahl auch für diese Tage funktioniert.
Ausweitung der Analogie auf die Statistik
In der Statistik haben wir ein ähnliches Problem. Wir verwenden häufig einen begrenzten Datensatz, um die unbekannten Parameter abzuschätzen, die wir nicht kennen. Wenn wir eine Überanpassung vornehmen, funktionieren unsere Parameterschätzungen für die vorhandenen Daten sehr gut, jedoch nicht so gut, wenn wir sie in einem anderen Kontext verwenden. Daher hilft die Kreuzvalidierung dabei, das oben genannte Problem der Überanpassung zu vermeiden, indem sie uns die Gewissheit gibt, dass die Parameterschätzungen nicht nur für die Daten gelten, die wir zu ihrer Schätzung verwendet haben.
Kreuzvalidierung ist natürlich nicht perfekt. Wenn wir noch einmal auf unser Beispiel der U-Bahn zurückgreifen, kann es vorkommen, dass unsere beste Auswahl an Parametern auch nach einer Kreuzvalidierung einen Monat später aufgrund verschiedener Probleme (z. B. Bauarbeiten, Änderungen des Verkehrsaufkommens im Laufe der Zeit usw.) nicht funktioniert.
Ich denke, dass dies am besten mit dem folgenden Bild (in diesem Fall mit k-facher Kreuzvalidierung) beschrieben werden kann:
Die Kreuzvalidierung ist eine Technik zum Schutz vor Überanpassung in einem Vorhersagemodell, insbesondere in einem Fall, in dem die Datenmenge begrenzt sein kann. Bei der Kreuzvalidierung erstellen Sie eine feste Anzahl von Falten (oder Partitionen) der Daten, führen die Analyse für jede Falte durch und mitteln dann die Gesamtfehlerschätzung.
"Vermeiden Sie es, Ihre Trainingsdaten auswendig zu lernen, indem Sie sicherstellen, dass das trainierte Modell bei unabhängigen Daten eine gute Leistung erbringt."
Nehmen wir an, Sie untersuchen einen Prozess. Sie haben einige Daten gesammelt, die diese beschreiben, und Sie haben ein Modell erstellt (entweder statistisch oder ML, spielt keine Rolle). Aber jetzt, wie soll man beurteilen, ob es in Ordnung ist? Wahrscheinlich passt es verdächtig gut zu den Daten, auf denen es aufgebaut wurde, sodass niemand glauben wird, dass Ihr Modell so großartig ist, wie Sie denken.
Die erste Idee ist, eine Teilmenge Ihrer Daten zu trennen und damit das von Ihrer Methode erstellte Modell für den Rest der Daten zu testen. Jetzt ist das Ergebnis definitiv überpassungsfrei, trotzdem hätten Sie (besonders bei kleinen Sets) (Pech) haben und (weniger) einfachere Fälle zum Testen ziehen können, was die Vorhersage (schwieriger) macht ... Auch Ihre Genauigkeit / Die Fehler- / Güte-Schätzung ist für den Modellvergleich / die Modelloptimierung unbrauchbar, da Sie wahrscheinlich nichts über die Verteilung wissen.
Wenn Sie Zweifel haben, wenden Sie rohe Gewalt an. Replizieren Sie einfach den obigen Prozess, sammeln Sie einige Schätzungen für Genauigkeit / Fehler / Güte und mitteln Sie sie - und Sie erhalten eine Kreuzvalidierung. Neben einer besseren Schätzung erhalten Sie auch ein Histogramm, mit dem Sie die Verteilung approximieren oder einige nichtparametrische Tests durchführen können.
Und das ist es; Die Details der Aufteilung von Testzügen sind der Grund für die unterschiedlichen CV-Typen. Abgesehen von seltenen Fällen und kleinen Stärkendifferenzen sind sie jedoch eher gleichwertig. In der Tat ist es ein großer Vorteil, weil es eine kugelsichere Methode ist. es ist sehr schwer, es zu betrügen.
Da Sie zum Zeitpunkt des Trainings keinen Zugriff auf die Testdaten haben und Ihr Modell mit den unsichtbaren Testdaten eine gute Leistung erbringen soll, "tun" Sie so, als hätten Sie Zugriff auf einige Testdaten, indem Sie einen kleinen Teil von wiederholt unterabtasten Halten Sie diesen Satz beim Trainieren des Modells aus und behandeln Sie ihn dann als Ersatz für die Testdaten (und wählen Sie Modellparameter aus, die die beste Leistung für die ausgesetzten Daten liefern). Sie hoffen, dass Sie durch zufälliges Abtasten verschiedener Teilmengen aus den Trainingsdaten bewirken können, dass sie den Testdaten (im Sinne eines durchschnittlichen Verhaltens) ähneln, und dass daher die erlernten Modellparameter auch für die Testdaten (dh Ihr Modell) gut sind verallgemeinert gut für unsichtbare Daten).