Pertanyaan ini sudah ada jawabannya di sini:
Saya menyadari bahwa seseorang menggunakan set.seed()
R untuk pembuatan angka pseudo-acak. Saya juga menyadari bahwa menggunakan nomor yang sama, seperti set.seed(123)
memastikan Anda dapat mereproduksi hasil.
Tapi yang tidak saya dapatkan adalah apa arti nilai-nilai itu sendiri. Saya bermain dengan beberapa fungsi, dan beberapa menggunakan set.seed(1)
atau set.seed(300)
atau set.seed(12345)
. Apa artinya angka itu (jika ada) - dan kapan saya harus menggunakan yang berbeda.
Contoh, dalam buku yang saya kerjakan - mereka gunakan set.seed(12345)
saat membuat set pelatihan untuk pohon keputusan. Kemudian di bab lain, mereka menggunakan set.seed(300)
untuk membuat Hutan Acak.
Hanya saja, jangan mendapatkan nomornya.
sumber
Jawaban:
Nomor benih yang Anda pilih adalah titik awal yang digunakan dalam pembuatan urutan nomor acak, itulah sebabnya (asalkan Anda menggunakan generator nomor acak semu yang sama) Anda akan mendapatkan hasil yang sama dengan nomor benih yang sama. Mengenai pertanyaan kedua Anda, cuplikan singkat ini dari deskripsi fungsi yang setara di Stata mungkin membantu:
http://www.stata.com/manuals13/rsetseed.pdf
sumber
Singkatnya, angka-angka itu sendiri tidak benar-benar berarti apa-apa! Jika Anda melihat kode orang lain (seperti pada dua contoh yang Anda berikan di atas), angkanya tidak mengubah fungsi fungsi; juga tidak ada angka "baik" untuk fungsi tertentu. Itu hanya pilihan penulis.
Selanjutnya, jika Anda hanya pernah mengatur seed sekali dalam kode Anda, maka Anda dapat memilih nomor yang Anda suka. Satu-satunya hal yang Anda perlu sedikit berhati-hati adalah bahwa, jika Anda berinteraksi dengan fungsi lain yang juga menggunakan angka acak, maka ada baiknya memilih seed yang tidak jelas (sehingga kemungkinan Anda berdua menggunakan seed yang sama lebih kecil. ).
Namun, seperti yang ditunjukkan Corcovado dengan sangat baik, untuk beberapa aplikasi, Anda harus sangat berhati-hati dengan pilihan yang Anda buat. Jika secara matematis Anda memerlukan sejumlah angka yang dibuat secara acak, maka tidak mungkin ada pola pada angka yang Anda pilih.
sumber
Fungsi set.seed () di R mengambil argumen integer (arbitrer). Jadi kita dapat mengambil argumen apa pun, katakanlah, 1 atau 123 atau 300 atau 12345 untuk mendapatkan angka acak yang dapat direproduksi.
Juga, dalam paketTeachingDemos, fungsi char2seed memungkinkan pengguna untuk mengatur seed berdasarkan string karakter.
sumber