Ist es besser, eine explorative Datenanalyse nur für den Trainingsdatensatz durchzuführen?

14

Ich mache eine explorative Datenanalyse (EDA) für einen Datensatz. Dann werde ich einige Features auswählen, um eine abhängige Variable vorherzusagen.

Die Frage ist:
Soll ich die EDA nur für meinen Trainingsdatensatz durchführen? Oder sollte ich die Trainings- und Testdatensätze zusammenfügen und dann die EDA auf beiden durchführen und die Funktionen basierend auf dieser Analyse auswählen?

Aboelnour
quelle

Antworten:

6

Ich würde empfehlen, einen Blick auf "7.10.2 Die falsche und richtige Methode zur Kreuzvalidierung" in http://statweb.stanford.edu/~tibs/ElemStatLearn/printings/ESLII_print10.pdf zu werfen .

Die Autoren geben ein Beispiel, in dem jemand Folgendes tut:

  1. Untersuchen Sie die Prädiktoren: Finden Sie eine Teilmenge von „guten“ Prädiktoren, die eine ziemlich starke (univariate) Korrelation mit den Klassenbezeichnungen aufweisen
  2. Erstellen Sie mit nur dieser Teilmenge von Prädiktoren einen multivariaten Klassifikator.
  3. Verwenden Sie die Kreuzvalidierung, um die unbekannten Optimierungsparameter und den Vorhersagefehler des endgültigen Modells abzuschätzen

Dies hört sich sehr ähnlich an, als würden Sie eine EDA für alle (dh Training plus Test) Ihrer Daten durchführen und mithilfe der EDA "gute" Prädiktoren auswählen.

Die Autoren erklären, warum dies problematisch ist: Die quervalidierte Fehlerrate ist künstlich niedrig, was Sie in die Irre führen könnte, wenn Sie glauben, ein gutes Modell gefunden zu haben.

Adrian
quelle
1

Sie möchten also unabhängige Variablen identifizieren, die sich auf Ihre abhängige Variable auswirken?

Dann sind Ihre beiden Ansätze eigentlich nicht wirklich zu empfehlen.

Nachdem Sie Ihre Forschungsfrage definiert haben, sollten Sie Ihre Theorie entwickeln. Das heißt, dass Sie anhand der Literatur Variablen identifizieren sollten, die eine Wirkung haben sollten (Sie sollten in der Lage sein, den Grund zu erklären).

Peter Clark
quelle
6
Während diese Ansicht im Kern mit dem klassischen Konzept der statistischen Tests übereinzustimmen scheint (und es mich daher schmerzt, nicht damit einverstanden zu sein), gibt es viele moderne Probleme, für die dies einfach nicht durchführbar ist. Angenommen, Sie möchten herausfinden, ob eines der 20.000 proteinkodierenden Gene mit einer neuen Erbkrankheit in Zusammenhang steht. Es gibt keinen Hintergrund, der Sie darauf vorbereiten würde, keine Möglichkeit, "eine Theorie zu entwickeln", und eine EDA ist nur ein Weg, um anzufangen. Und wenn Sie genug Daten für eine EDA- und Bestätigungsanalyse haben, können Sie tatsächlich irgendwo hin.
Cliff AB
3
"Sie sollten Ihre Theorie entwickeln" - das ist eine gute Idee, aber gerade in der Branche nicht immer möglich. Manchmal setzt man Prognosen einfach fort, ohne irgendwelche Theorien zu entwickeln
Aksakal,
1

Das Anwenden von EDA auf Testdaten ist falsch.

Training ist der Prozess der Suche nach den richtigen Antworten, um das beste Modell zu erstellen. Dieser Prozess beschränkt sich nicht nur auf das Ausführen von Code für Trainingsdaten. Die Verwendung von EDA-Informationen, um zu entscheiden, welches Modell verwendet werden soll, um Parameter usw. zu optimieren, ist Teil des Trainingsprozesses und sollte daher keinen Zugriff auf Testdaten gewähren. Um sich selbst treu zu bleiben, sollten Sie Testdaten nur verwenden, um die Leistung Ihres Modells zu überprüfen.

Wenn Sie feststellen, dass das Modell während des Testens keine gute Leistung erbringt und Sie dann wieder Ihr Modell anpassen, ist dies auch nicht gut. Teilen Sie stattdessen Ihre Trainingsdaten in zwei Teile auf. Verwenden Sie eine für das Training und eine andere, um Ihre Modelle zu testen und zu optimieren. Siehe Was ist der Unterschied zwischen Test- und Validierungssatz?

Fliesen
quelle
0

Nach dem Absatz dieser Antwort . Hastie erklärt weiter S.245 :

"In diesem Beispiel ist die korrekte Methode zum Ausführen einer Kreuzvalidierung:

  1. Teilen Sie die Proben nach dem Zufallsprinzip in K Kreuzvalidierungsfalten (Gruppen) ein.
  2. Für jede Falte ist k = 1, 2,. . . , K
    (a) Finden Sie eine Teilmenge von „guten“ Prädiktoren, die eine ziemlich starke (univariate) Korrelation mit den Klassenbezeichnungen aufweisen, und verwenden Sie dabei alle Stichproben mit Ausnahme derjenigen in Falte k.
    (b) Erstellen Sie mit nur dieser Teilmenge von Prädiktoren einen multivariaten Klassifikator, wobei Sie alle Stichproben mit Ausnahme derjenigen in Falte k verwenden.
    (c) Verwenden Sie den Klassifikator, um die Klassenbezeichnungen für die Proben in Falte k vorherzusagen. "
user2672299
quelle
-3

Sie führen EDA für den gesamten Datensatz durch. Wenn Sie beispielsweise eine einmalige Kreuzvalidierung verwenden, wie würden Sie EDA nur für einen Trainingsdatensatz durchführen ? In diesem Fall wird jede Beobachtung mindestens einmal trainiert und gehalten.

Nein, Sie verstehen die Daten der gesamten Stichprobe. Wenn Sie in der Industrie sind, ist es noch offensichtlicher. Von Ihnen wird erwartet, dass Sie den Stakeholdern im Unternehmen die Trends und die allgemeine Beschreibung der Daten zeigen, und Sie tun dies für die gesamte Stichprobe.

Aksakal
quelle