Kolejność losowa

Praktyczne kwestie

Zadbaj o odzyskanie potoku generowania danych. Załóżmy, że chcesz dodać funkcję, aby sprawdzić, jak wpłynie to na jakość modelu. W przypadku uczciwego eksperymentu Twoje zbiory danych powinny być identyczne – poza tą nową funkcją. Jeśli nie możesz wygenerować tych zbiorów danych, nie możesz utworzyć tych zbiorów danych.

W związku z tym upewnij się, że losowa kolejność w generowaniu danych może być określona:

  • Generatory losowych liczb. Dzięki ustawieniu wartości wyjściowej RNG przy każdym odtworzeniu zbioru danych powoduje wyświetlenie tych samych wartości.
  • Używaj kluczy szyfrowania niepowiązanych z kontem. Hashowanie to popularny sposób na podział lub próbkę danych. Możesz zahaszować każdy przykład i użyć powstałej liczby całkowitej do określenia, w którym miejscu ma zostać on podzielony. Dane wejściowe funkcji haszowania nie powinny się zmieniać za każdym razem, gdy uruchamiasz program generowania danych. Nie używaj w haszcie aktualnej godziny ani losowej liczby, np. gdy chcesz odtworzyć haszowanie na żądanie.

Powyższe metody mają zastosowanie zarówno do próbkowania, jak i do podziału danych.

Uwagi dotyczące szyfrowania

Wyobraź sobie, że zbierasz wyszukiwane hasła i używasz haszowania, aby je uwzględniać lub wykluczać. Jeśli klucz skrótu używa tylko zapytania, a dane z wielu dni będą zawsze uwzględnione, lub zawsze je wyklucz. Zawsze uwzględnianie lub wykluczanie zapytań jest niewłaściwe, ponieważ:

  • Twój zestaw treningowy będzie miał nieco inny zestaw zapytań.
  • Twoje zbiory do oceny będą sztuczne, ponieważ nie będą pokrywać się z danymi treningowymi. W czasie rzeczywistym w danych treningowych pojawiły się dane o ruchu na stronie, więc Twoja ocena powinna to odzwierciedlać.

W zapytaniach możesz użyć skrótu i daty, co mogłoby skutkować innym haszowaniem każdego dnia.

 

Animacja przedstawiająca sposób, w jaki szyfrowanie w zapytaniu powoduje, że dane trafiają do tego samego zasobnika każdego dnia, ale haszowanie zapytania plus czas zapytania powoduje przesyłanie danych do różnych zasobników. Trzy zasobniki to Trenowanie, Ocena i Ignoruj.