To pytanie ma już odpowiedź tutaj:
Zdaję sobie sprawę, że używa się set.seed()
w R do generowania liczb pseudolosowych. Zdaję sobie również sprawę z tego, że używając tego samego numeru, np. set.seed(123)
Ubezpieczenia, możesz odtwarzać wyniki.
Ale nie rozumiem, co oznaczają same wartości. Gram z kilkoma funkcjami, a niektóre używają set.seed(1)
lub set.seed(300)
lub set.seed(12345)
. Co oznacza ta liczba (jeśli w ogóle) - i kiedy powinienem użyć innej.
Przykład: w książce, nad którą pracuję - używają ich do set.seed(12345)
tworzenia zestawu szkoleniowego dla drzew decyzyjnych. Następnie w innym rozdziale używają ich set.seed(300)
do tworzenia Losowego lasu.
Tylko nie dostań numeru.
r
random-generation
mylesg
źródło
źródło
Odpowiedzi:
Wybrany numer początkowy jest punktem początkowym używanym do generowania sekwencji liczb losowych, dlatego (pod warunkiem, że używasz tego samego generatora liczb pseudolosowych) uzyskasz te same wyniki, otrzymując ten sam numer początkowy. Jeśli chodzi o twoje drugie pytanie, ten krótki fragment opisu równoważnej funkcjonalności w Stacie może być pomocny:
http://www.stata.com/manuals13/rsetseed.pdf
źródło
Krótko mówiąc, same liczby tak naprawdę nic nie znaczą! Jeśli patrzysz na kod innej osoby (jak w dwóch przykładach, które podałeś powyżej), liczby nie zmieniają funkcjonalności funkcji; nie ma też „dobrych” liczb dla określonych funkcji. To tylko wybór autora.
Ponadto, jeśli ustawiasz ziarno tylko raz w kodzie, możesz wybrać dowolną liczbę. Jedyną rzeczą, na którą musisz uważać, jest to, że jeśli łączysz się z innymi funkcjami, które również używają liczb losowych, dobrze jest wybrać nieoczywiste ziarno (więc jest mniej prawdopodobne, że oboje użyjesz tego samego ziarna ).
Jak jednak bardzo ładnie podkreśla Corcovado, w przypadku niektórych aplikacji należy bardzo uważać na dokonany wybór. Jeśli matematycznie potrzebujesz liczby pseudolosowo wygenerowanych liczb, to nie może być wzorca dla wybranych liczb.
źródło
Funkcja set.seed () w języku R przyjmuje (dowolną) liczbę całkowitą. Możemy więc wziąć dowolny argument, powiedzmy 1 lub 123 lub 300 lub 12345, aby uzyskać powtarzalne liczby losowe.
Ponadto w pakiecie TeachingDemos funkcja char2seed pozwala użytkownikowi ustawić ziarno na podstawie ciągu znaków.
źródło