2016-07-13 10 views
-1

Ich habe einen Datensatz, der rund 4 Jahre historische Daten mit wöchentlichen Saisonalität hat. Ich habe damit begonnen, das letzte 1 Jahr als Trainingsdatensatz zu nehmen und habe ungefähr 30 Datenpunkte vorhergesagt. Aber wenn ich den Trainingsdatensatz in einigen Fällen auf 6 Monate reduziere, verschafft es mir bessere Prognosewerte.Wie wähle ich den richtigen Trainingsdatensatz für die Prognose?

Beim Online-Lesen scheint die k-fache Kreuzvalidierung eine Methode zu sein, um das korrekte Volumen des Trainingsdatensatzes zu ermitteln.

Bin ich richtig?

Im Allgemeinen, kann jemand bitte effiziente Möglichkeiten empfehlen, die richtige Menge an Trainingsdatensätzen auszuwählen?

Schätzen Sie die Hilfe!

Antwort

0

Es ist schwierig, a priori geeignete Trainingssatzgrößen zu identifizieren, insbesondere wenn wir (wie wir) nichts über die Struktur der Daten wissen.

ÜBERNAHME, dass Sie versuchen, einen LINEARKLASSIFIKATOR für eine Reihe von Beobachtungen ("Trainingsbeispiele") zu erhalten, die als N KOMPONENTEN eines NACHRICHTENVEKTORS in einem N-DIMENSIONALEN KOTELNIKOFF-HYPERSPACE gekennzeichnet sind, eine "geeignete Größe" für ein Trainingssatz ist eine, die es ermöglicht, nachfolgende Proben korrekt zu klassifizieren, aber nicht zu Klassifikationsfehlern führt.

Anders ausgedrückt, wenn Daten, die neu zu einer monotonen Datenbank hinzugefügt wurden, nicht korrekt klassifiziert werden können, erweist sich das Problem als linear untrennbar. Machen Sie Ihren Kunden einen Trick, indem Sie lange davor anhalten, damit das System für einige Zeit beeindruckend wirkt, BEVOR Sie den Punkt erreichen, an dem die lineare Untrennbarkeit nicht mehr getanzt werden kann.

Welcher Tanz? Warum, der Voronoi-Tanz, natürlich (ein BITTERLY POOR digitaler Kommunikationstheorie Witz)

+0

Danke für die Eingabe! – Arun

0

Ich lerne gerade und Anwendung Machine Learning und ich habe gefunden, aus meiner Forschung, dass, wenn Sie Ihre Daten in ein Training-Set geteilt haben und ein Test-Set, und wenn Ihr Trainingssatz kleiner als Ihr Test-Set ist, wird Ihr Modell eine schlechte Vorhersage-Performance haben. Auf der anderen Seite, wenn Sie zu wenige Datenpunkte in Ihrem Test-Set haben und Ihre Trainingsmenge verbessern, dann hätten Sie eine schlechte Annäherung an Ihren Generalisierungsfehler. Es gibt keine perfekte Möglichkeit, Trainingssatz und Testset aufzuteilen, aber eine allgemeine Faustregel ist, dass Sie einen guten Trainingsfehler haben, um den Generalisierungsfehler gut zu approximieren, und Sie Ihre Daten in Ihrem Testset ausruhen möchten. Dies kann durch Splits wie 60% Training und 40% Tests oder 70% Training und 30% Tests oder 90% Trainingsdaten und 10% Testdaten dargestellt werden. Dies ist ausreichend, wenn Sie einen sehr großen Datensatz haben.

Jetzt, wenn Sie eine kleine Menge von Daten haben und Sie nicht die Fähigkeit haben, die beiden Situationen zu vermeiden, die ich zuvor erwähnte, dann k-falten Kreuz Validierung könnte die Antwort auf Ihr Problem sein, aber lassen Sie mich zuerst eine andere erklären Methode zum Teilen Ihrer Daten. Zuvor habe ich Ihnen gezeigt, wie Sie Ihre Daten in ein Trainingsset und ein Testset aufteilen können. Aber ich möchte Ihnen etwas vorstellen, das Validierungssatz genannt wird.

Die beiden wichtigsten Aufgaben in der Regression (und alle anderen Themen in Maschinelles Lernen für diese Angelegenheit) ist die Wahl eine spezifische Modellkomplexität, wenn Sie also mit Polynomial Regression arbeiten würden Sie über das, was Grad besorgt sein, Ihre Arbeiten mit und schließlich für das Modell, das Sie auswählen, müssen Sie beurteilen, es ist die Leistung.Nun, für die erste Aufgabe, wählen Sie ein spezifisches Modell, lassen Sie λ einen Tuning-Parameter darstellen, der die Komplexität unseres Modells steuert. Zum Beispiel würde λ den Grad meines Polynoms angeben, wenn ich mit der polynomialen Regression arbeiten würde. Nun stellen wir uns eine hypothetische Situation vor, in der ich meinen Datensatz in ein Trainingsset und ein Testset aufspalte und die beiden zuvor genannten Aufgaben ausführen soll.

------------------------------------------ 
| Training set   | Test set | 
------------------------------------------ 
  1. Modellauswahl:

    • Für jede Modellkomplexität beachten Sie: λ
    • i. Schätzen Sie Ihre Gewichte am Trainingssatz
    • ii. Beurteilen Sie die Leistung mit Ihrem Testset
    • iii. Wählen Sie die Modellkomplexität λ, die die niedrigste Testfehler hat
  2. Bewertung der Leistung: Wenn Sie das beste Modell Komplexität oder Modell im Allgemeinen finden (lassen Sie dies als λ * bezeichnet werden), beurteilen wir einfach die Leistung durch Berechnung der Testfehler. Hier

ist das Problem mit haben nur einen Trainingssatz und ein Test gesetzt. Dieser Ansatz, nur mit einem Trainingsset und einem Testset zu arbeiten, ist zu optimistisch. Als wir über die Auswahl einer spezifischen Modellkomplexität nachdachten, verwendeten wir unseren Testsatz/Daten, um zwischen verschiedenen λ-Werten zu vergleichen, und wählten das λ, das den Testfehler minimierte. Aber das bedeutet, dass wir Testfehler als einen Weg verwenden, um zu approximieren, wie gut wir mit neuen Daten umgehen werden. Das Problem ist, dass unsere Testdaten nicht alles darstellen, was wir auf der Welt sehen könnten (d. H. Alle möglichen Daten, die von unserem Modell erfasst werden können). Unser Modell wurde speziell für Testdaten ausgewählt. Eine bessere Lösung sind zwei "Testsätze": ein Trainingssatz, ein Validierungssatz und ein Testsatz.

Jetzt ist die Frage, wie wählen wir ein Modell aus und bewerten es mit einem zweiten Testset? Hier ist, wie wir es schaffen können.

    1. Fit unser Modell auf unserem Trainingssatz/Daten für jede Modellkomplexität wir betrachten (λ).
    1. Wir werden die beste Modell/Modellkomplexität wählen/& lgr; basierend auf dem Modell auf der Validierung die Fehler minimiert gesetzt.
    1. Schließlich bewerten wir die Leistung der besten Modell/Modellkomplexität/λ auf das Testset. Jetzt kann der Testsatz als Annäherung unseres Generalisierungsfehlers angesehen werden, da er nie verwendet wurde.

Jetzt können Sie sich fragen Sie, wie zu tun geteilt ich diese Gruppe von Daten jetzt, dass ich zwei Test-Sets haben? Hier ist der typischsten Splits:

  • 80% Trainingssatz, 10% Validierungssatz, 10% Tests eingestellt
  • 50% Trainingssatz, 25% Validierungssatz, 25% -Prüfung gesetzt

Diese Aufteilungen werden empfohlen, wenn Sie über genügend Daten verfügen. Jetzt, wenn Sie nicht genug Daten haben, um Ihre Daten in diese 3 Sätze aufzuteilen. Eine Möglichkeit, all unsere Daten zu verwenden, um die Leistung Ihres Modells zu bewerten, ist die K-Fold-Kreuzvalidierung. Ich würde empfehlen, diese Methode zu verwenden, wenn Sie einen kleinen Datensatz haben. Zum Zeitpunkt des Schreibens dieses Beitrags habe ich nicht mit einem Datensatz gearbeitet, der so groß ist wie das, was Sie beschrieben haben, aber es würde nicht schaden, K-Fold Validation auszuprobieren und es mit anderen Methoden zu vergleichen, um zu sehen, was am besten mit Ihrem Modell funktioniert .

Ich hoffe, das hat geholfen.

+1

Danke für die aufwendige Antwort Guled! Ich werde die von Ihnen gemachten Empfehlungen ausprobieren. – Arun

Verwandte Themen