यादृच्छिक संख्या- Set.seed (एन) में आर [डुप्लिकेट]


37

इस सवाल का पहले से ही यहाँ एक जवाब है:

मुझे लगता है कि एक set.seed()छद्म यादृच्छिक संख्या पीढ़ी के लिए आर में उपयोग करता है। मुझे यह भी एहसास है कि उसी नंबर का उपयोग करने से, जैसे कि set.seed(123)आप परिणामों को पुन: उत्पन्न कर सकते हैं।

लेकिन मुझे जो नहीं मिलता है वह वही है जो मूल्यों का मतलब है। मैं कई कार्यों के साथ खेल रहा हूं, और कुछ उपयोग set.seed(1)या set.seed(300)या set.seed(12345)। उस संख्या का क्या मतलब है (अगर कुछ भी) - और मुझे एक अलग का उपयोग कब करना चाहिए।

उदाहरण के लिए, एक पुस्तक में मैं काम कर रहा हूं- वे set.seed(12345)निर्णय पेड़ों के लिए प्रशिक्षण सेट बनाते समय उपयोग करते हैं। फिर दूसरे अध्याय में, वे set.seed(300)एक रैंडम फ़ॉरेस्ट बनाने के लिए उपयोग कर रहे हैं ।

बस नंबर नहीं मिला।


6
क्या यह मदद करता है? stackoverflow.com/questions/14684437/… इसके अलावा? सेट। () आर के भीतर बहुत अच्छी जानकारी प्रदान करता है।
doug.numbers

6
बीज का उपयोग करने का मुख्य बिंदु 'यादृच्छिक' संख्याओं के एक विशेष अनुक्रम को पुन: पेश करने में सक्षम होना है। सामान्यतया, यदि आपको ऐसा करने में सक्षम होने की आवश्यकता नहीं है, तो आप बीज को सेट नहीं करेंगे । बीज अपने आप में कोई निहित अर्थ नहीं रखता है सिवाय इसके कि यह यादृच्छिक संख्या जनरेटर 'जहां शुरू करें' को बताने का एक तरीका है। आप इसे एक पिन नंबर और अपने बैंक खाते के बीच के रिश्ते की तरह समझ सकते हैं। पिन संख्याओं की एक लंबी स्ट्रिंग (आपका खाता संख्या) के साथ जुड़ा हुआ है, लेकिन यह स्वाभाविक रूप से एक व्याख्या योग्य मात्रा नहीं है ( एक व्याख्या है, लेकिन इसे स्थापित करने में, आप इसे अनदेखा करते हैं)।
Glen_b

4
रिकॉर्ड के लिए, 42 हमेशा सही बीज है
रेपमत

बस एक टिप्पणी: मैं स्क्रिप्ट को डीबग करने के लिए यादृच्छिक जनरेटर को केवल सेट करने की सलाह देता हूं, कुछ विशेष त्रुटियों को खोजने के लिए, या (ii) परिणाम भेजने / प्रकाशित करने के लिए ताकि उन्हें जांचा जा सके।
AADF

जवाबों:


38

आपके द्वारा चुना गया बीज संख्या यादृच्छिक संख्याओं के अनुक्रम की पीढ़ी में उपयोग किया जाने वाला प्रारंभिक बिंदु है, यही कारण है (बशर्ते आप एक ही छद्म यादृच्छिक संख्या जनरेटर का उपयोग करते हैं) आप एक ही बीज संख्या दिए गए समान परिणाम प्राप्त करेंगे। जहां तक ​​आपके दूसरे प्रश्न का संबंध है, स्टाटा में समतुल्य कार्यक्षमता के वर्णन से यह संक्षिप्त स्निपेट सहायक हो सकता है:

हम इस पर जोर नहीं दे सकते: बीज को अक्सर सेट न करें। यह देखने के लिए कि यह इतना बुरा विचार क्यों है, सीमित मामले पर विचार करें: आप बीज को सेट करें, एक छद्म संख्या खींचें, बीज को रीसेट करें, फिर से ड्रा करें, और इसी तरह जारी रखें। आपके द्वारा प्राप्त किए जाने वाले छद्म आयामी अंक एक गणितीय फ़ंक्शन के माध्यम से आपके द्वारा चलाए जाने वाले बीज से ज्यादा कुछ नहीं होंगे। आपके द्वारा प्राप्त किए गए परिणाम यादृच्छिक के लिए पास नहीं होंगे जब तक कि आप जो बीज चुनते हैं वह यादृच्छिक के लिए पास नहीं होता है। यदि आपके पास पहले से ही ऐसी संख्याएँ हैं, तो आप छद्म-आयामी संख्या जनरेटर का उपयोग करने के लिए भी क्यों परेशान हैं?

http://www.stata.com/manuals13/rsetseed.pdf


15
कौन जानता था कि स्टाटा के पास इस तरह के दिलचस्प दस्तावेज थे: "अन्य लोग एक यादृच्छिक संख्या बनाने की कोशिश करते हैं, यह अनुमान लगाते हैं कि यदि वे पर्याप्त अंक शामिल करते हैं, तो परिणाम केवल यादृच्छिक होना है। गिराए गए भोजन के लिए पांच-सेकंड के नियम पर यह भिन्नता है, और हम स्वीकार करते हैं। इन दोनों नियमों का उपयोग करने के लिए "
पतित पावनी

4

संक्षेप में, संख्याएँ वास्तव में कुछ भी नहीं कहती हैं! यदि आप किसी और के कोड को देख रहे हैं (जैसे ऊपर दिए गए दो उदाहरणों में), संख्याएँ फ़ंक्शन की कार्यक्षमता में परिवर्तन नहीं करती हैं; न तो विशिष्ट कार्यों के लिए "अच्छे" नंबर हैं। यह सिर्फ लेखकों की पसंद के नीचे है।

इसके अलावा, यदि आप कभी भी अपने कोड में केवल एक बार बीज सेट कर रहे हैं, तो आप अपनी पसंद का कोई भी नंबर चुन सकते हैं। केवल एक चीज जिसे आपको थोड़ा सावधान रहने की आवश्यकता है, वह यह है कि यदि आप किसी अन्य फ़ंक्शन के साथ इंटरफेस करते हैं जो यादृच्छिक संख्याओं का भी उपयोग करते हैं, तो गैर-स्पष्ट बीज चुनना अच्छा है (इसलिए आपके लिए समान बीज का उपयोग करना दोनों के लिए कम संभावना है )।

हालांकि, के रूप में Corcovado वास्तव में अच्छी तरह से बताते हैं, कुछ अनुप्रयोगों के लिए, आपको वास्तव में आपके द्वारा बनाई गई पसंद के बारे में सावधान रहने की आवश्यकता है। यदि गणितीय रूप से आपको छद्म-बेतरतीब ढंग से उत्पन्न संख्याओं की संख्या की आवश्यकता होती है, तो आपके द्वारा चुनी गई संख्याओं के लिए एक पैटर्न नहीं हो सकता है।


1

R में set.seed () फ़ंक्शन एक (मनमाना) पूर्णांक तर्क लेता है। तो हम कोई भी तर्क ले सकते हैं, कहते हैं, प्रजनन योग्य यादृच्छिक संख्या प्राप्त करने के लिए 1 या 123 या 300 या 12345।

इसके अलावा, theTeachingDemos पैकेज में, char2seed फ़ंक्शन उपयोगकर्ता को वर्ण स्ट्रिंग के आधार पर बीज सेट करने की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.