Bien souvent, j'ai vu la fonction set.seed
dans R avant de lancer le programme. Je sais que c'est essentiellement utilisé pour la génération de nombres aléatoires. Y at-il un besoin spécifique pour définir cela?
Réponses
Trop de publicités?Le besoin est la volonté de résultats reproductibles, qui peuvent par exemple provenir d'essayer de déboguer votre programme, ou bien sûr d'essayer de refaire ce qu'il fait:
Ces deux résultats nous permettra de "jamais" à reproduire, comme je viens de demandé quelque chose "aléatoire":
R> sample(LETTERS, 5)
[1] "K" "N" "R" "Z" "G"
R> sample(LETTERS, 5)
[1] "L" "P" "J" "E" "D"
Ces deux-là, cependant, sont identiques , car j'ai mis la graine:
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R>
Il est vaste littérature sur tout ce qui; Wikipedia est un bon début. En substance, ces Rng sont appelés Générateurs de nombres Pseudo Aléatoires, car ils sont en fait totalement algorithmique: compte-tenu de la même semence, vous obtenez la même séquence. Et c' est une fonction et non un bug.
Juste plus de l'ajout de certains aspects. Nécessité de mettre en de la graine: Dans le monde académique, si l'on prétend que son algorithme permet d'obtenir, dire 98.05% performance sur une simulation, d'autres ont besoin pour être en mesure de la reproduire.
?set.seed
En passant par le fichier d'aide de cette fonction, ce sont quelques faits intéressants:
(1) ensemble.de la graine() renvoie NULL, invisible
(2) "au départ, il n'y a pas de postérité; un nouveau est créé à partir de l'heure et de l'ID de processus lorsque celui-ci est requis. D'où les différentes sessions de donner différents résultats de simulation par défaut. Cependant, la graine pourrait être restaurée à partir d'une session précédente, si préalablement enregistré de l'espace de travail est restauré.", c'est pourquoi vous voulez à l'appel.de la graine() avec les mêmes valeurs de type entier la prochaine fois que vous voulez une même séquence de séquence aléatoire.