Randomisierung

Praktische Überlegungen

Reproduzierbarkeit der Datengenerierungspipeline herstellen Angenommen, Sie möchten ein Feature hinzufügen, um zu sehen, wie es sich auf die Modellqualität auswirkt. Für einen fairen Test sollten deine Datasets bis auf das neue Feature identisch sein. Wenn Ihre Datengenerierungsausführungen nicht reproduzierbar sind, können Sie diese Datasets nicht erstellen.

In diesem Sinne muss jede Zufallsauswahl bei der Datengenerierung deterministisch festgelegt werden:

  • Sie haben einen Zufallsgenerator generiert (RNGs). Das Seeding sorgt dafür, dass der RNG-Wert bei jeder Ausführung dieselben Werte in derselben Reihenfolge ausgibt und Ihr Dataset dann neu erstellt.
  • Invarianten-Hash-Schlüssel verwenden. Hashing ist eine gängige Methode zum Aufteilen oder Auslesen von Daten. Sie können jedes Beispiel hashen und die resultierende Ganzzahl verwenden, um zu entscheiden, in welcher Aufteilung das Beispiel platziert wird. Die Eingaben für die Hash-Funktion sollten sich nicht bei jedem Ausführen des Programms zur Datengenerierung ändern. Verwenden Sie beispielsweise nicht die aktuelle Zeit oder eine Zufallszahl in Ihrem Hash, z. B. wenn Sie Ihre Hashes nach Bedarf neu erstellen möchten.

Die obigen Ansätze gelten sowohl für die Stichprobenerhebung als auch für die Aufteilung Ihrer Daten.

Hinweise zum Hashen

Stellen Sie sich noch einmal vor, Sie erfassen Suchanfragen und verwenden Hashing, um Suchanfragen ein- oder auszuschließen. Wenn der Hash-Schlüssel nur die Abfrage verwendet hat und Daten über mehrere Tage hinweg enthalten sind, schließen Sie die Abfrage immer ein oder schließen sie immer aus. Eine Abfrage immer oder immer auszuschließen, ist aus folgenden Gründen schlecht:

  • Für Ihr Trainings-Dataset werden weniger unterschiedliche Abfragen angezeigt.
  • Ihre Auswertungssätze werden künstlich hart sein, da sie sich nicht mit Ihren Trainingsdaten überschneiden. In der Praxis haben Sie bei der Bereitstellung einen Teil des Live-Traffics in den Trainingsdaten gesehen. Daher sollte dies bei der Auswertung berücksichtigt werden.

Stattdessen können Sie die Abfrage und das Datum hashen, was zu einer anderen Hash-Technologie pro Tag führen würde.

 

Animierte Visualisierung, die zeigt, wie Daten allein durch die Hash-Technologie in denselben Bucket verschoben werden, beim Hashen der Abfrage und der Abfragezeit jedoch jeden Tag in verschiedene Buckets. Die drei Buckets sind Training, Evaluation und Ignoriert.