Wenn Sie ein Regressionsmodell mit separaten Modellierungs- / Validierungssätzen erstellen, ist es angemessen, die Validierungsdaten erneut zu verteilen?

13

Angenommen, ich habe eine 80/20 Aufteilung zwischen Modellierungs- / Validierungsbeobachtungen. Ich habe ein Modell an den Modellierungsdatensatz angepasst und bin mit dem Fehler, den ich im Validierungsdatensatz sehe, einverstanden. Ist es angebracht, die Validierung mit den Modellierungsdaten zu kombinieren, um aktualisierte Parameterschätzungen für die 100% -Daten zu erhalten, bevor ich mein Modell für die Bewertung zukünftiger Beobachtungen herausbringe? Ich habe zwei Perspektiven dazu gehört:

  1. Die Validierung, die ich durchgeführt habe, war eine Validierung der Modellstruktur, dh der Menge der Prädiktoren und Transformationen, die ich angewendet habe. Es ist nicht sinnvoll, 20% meiner Daten in der Tabelle zu belassen, wenn ich damit meine Schätzungen aktualisieren könnte.

  2. Die Validierung, die ich durchgeführt habe, war teilweise eine Validierung der Parameterschätzungen, die ich anhand meines Modellierungsdatensatzes berechnet habe. Wenn ich die Modellanpassung aktualisiere, habe ich die Schätzungen geändert und kann die Leistung des aktualisierten Modells nicht mehr objektiv testen.

Ich habe immer Argument # 1 gefolgt, aber in letzter Zeit habe ich mehrere Leute gehört, die Argument # 2 argumentierten. Ich wollte sehen, was andere darüber denken. Haben Sie in der Literatur oder anderswo gute Diskussionen zu diesem Thema gesehen?

DavidLiebeHart
quelle

Antworten:

6

Option 1 ist die richtige. Sie können den Validierungsdatensatz hinzufügen, um die Parameter Ihres Modells zu aktualisieren.

Das ist die Antwort. Jetzt lassen Sie uns darüber diskutieren. Die Tatsache, dass das, was Sie getan haben, Ihre obige Option 1 war, ist klarer, wenn Sie entweder eine k-fache Kreuzvalidierung von Bootstrapping durchgeführt haben (und das hätten Sie tun sollen - das geht aus Ihrer Frage nicht hervor).

Bei der fünffachen Kreuzvalidierung teilen Sie die vorhandenen Daten in 5 zufällige Sätze gleicher Größe. Nennen wir sie A, B, C, D und E. Dann lernen Sie die Parameter Ihres Modells (des Modells selbst) in 4 der Mengen, sagen A, B, C und D, und testen es oder validieren es in das fünfte Modell E. (Das hast du getan). Dann wählen Sie einen anderen Satz als Test / Validierung (sagen Sie D) und lernen mit den anderen 4 (A, B, C und E). Testen Sie es auf D, wiederholen Sie.

Der Fehler, den Sie in Ihrem Vorhersagemodell sehen, ist der durchschnittliche Fehler der 5 Tests - und Sie haben Verständnis dafür, wie der Vorhersagefehler von den Lern- und Testsätzen abhängt. Im besten Fall sind alle 5 Fehlermaßnahmen ähnlich, und Sie können sich sicher sein, dass Ihr Modell in Zukunft auf diesem Niveau arbeitet.

Aber welches modell ??? Für jeden Satz von Lernsätzen haben Sie einen anderen Parameter für das Modell. Das Lernen mit A, B, C, D erzeugt einen Parametersatz P1, das Lernen mit A, B, C, E den Parametersatz P2 bis P5. Keiner von ihnen ist Ihr Modell.

Was Sie getestet haben, ist der erwartete Fehler einer Prozedur zum Erstellen von Modellen , die Prozedur, die Sie befolgt haben, als die Lernmenge A, B, C, D und als es A, B, C, E und so weiter war. Diese Prozedur generiert ein Modell mit dem erwarteten Fehler.

Also, was ist das endgültige Modell? Es ist die Anwendung des Verfahrens in allen verfügbaren Daten (A, B, C, D und E). Ein neues Modell mit dem Parametersatz P0, das Sie noch nie zuvor generiert haben, verfügt über keine Daten, um es zu testen (da Sie alle Daten für die Bestimmung der Parameter P0 "verwendet" haben), und Sie haben dennoch eine vernünftige Erwartung, dass es in Zukunft funktionieren wird Daten wie bei den anderen Modellen (P1, P2 ...), die nach dem gleichen Verfahren erstellt wurden.

Was wäre, wenn Sie keine Kreuzvalidierung oder kein Bootstrap durchgeführt hätten (Bootstrap ist etwas komplexer zu erklären - ich lasse es aus dieser Diskussion heraus)? Was wäre, wenn Sie nur eine Lern- / Validierungsaufteilung und ein Fehlermaß durchführen würden? Dann mag Argument 2 etwas zutreffen, aber Sie haben ein größeres Problem - Sie haben nur ein Maß für den Fehler des Modells und Sie wissen nicht, wie abhängig dieser Fehler von den Daten ist, die zur Validierung verwendet wurden. Vielleicht war Ihr 20% -Validierungssatz glücklicherweise besonders leicht vorherzusagen. Wenn Sie nicht mehrere Fehlermessungen durchgeführt haben, ist es sehr riskant anzunehmen, dass die erwartete Fehlerrate Ihres Vorhersagemodells für zukünftige Daten gleich bleibt.

Welches ist das "größere Risiko"? Wenn Sie davon ausgehen, dass dieser Fehler für zukünftige Daten im Grunde derselbe bleibt, oder wenn Sie weitere Daten hinzufügen, um Ihr Modell zu erlernen, wird dies das Modell auf irgendeine Weise "vermasseln" und die Fehlerrate in Zukunft erhöhen? Ich weiß nicht wirklich, wie ich das beantworten soll, aber ich wäre misstrauisch gegenüber Modellen, die mit mehr Daten schlechter werden ...

Jacques Wainer
quelle