। हमें बाध्य के साथ यादृच्छिक w.r.t सामान्य वितरण का एक समूह प्राप्त करना चाहिए। हम np.random.normal()
के साथ एक सामान्य वितरण संख्या प्राप्त कर सकते हैं लेकिन यह किसी भी बाध्य पैरामीटर की पेशकश नहीं करता है। मैं जानना चाहता हूं कि ऐसा कैसे करें?numpy में एक सीमा के भीतर एक सामान्य वितरण कैसे प्राप्त करें? मशीन सीखने के कार्य में
उत्तर
आप Truncated normal distribution लिए देख रहे हैं, वह SciPy एक समारोह के लिए यह truncnorm
कहा जाता है इस वितरण का मानक रूप रेंज [क, ख] करने के लिए एक मानक सामान्य छोटा कर दिया है - सूचना है कि ए और बी मानक सामान्य के डोमेन पर परिभाषित किया गया है। एक विशिष्ट मतलब और मानक विचलन, उपयोग के लिए क्लिप मूल्यों बदलने के लिए:
ए, बी = (myclip_a - my_mean)/my_std, (myclip_b - my_mean)/my_std
truncnorm आकार पैरामीटर के रूप में ए और बी लेता है ।
>>> from scipy.stats import truncnorm
>>> truncnorm(a=-2/3., b=2/3., scale=3).rvs(size=10)
array([-1.83136675, 0.77599978, -0.01276925, 1.87043384, 1.25024188,
0.59336279, -0.39343176, 1.9449987 , -1.97674358, -0.31944247])
ऊपर के उदाहरण -2 से घिरा है और 2 और रिटर्न 10 यादृच्छिक variates (.rvs()
पद्धति का उपयोग करके)
>>> min(truncnorm(a=-2/3., b=2/3., scale=3).rvs(size=10000))
-1.9996074381484044
>>> max(truncnorm(a=-2/3., b=2/3., scale=3).rvs(size=10000))
1.9998486576228549
यहाँ -6 के लिए एक हिस्टोग्राम साजिश है, 6:
@bakkal सुझाव (+1) के अलावा आपमें भी देखना चाहते हैंइसे प्राप्त करने के लिए नुस्खा, py-rtnorm मॉड्यूल के रूप में Christoph Lassner द्वारा पुनः लिखा गया।
truncnorm
की parametrization जटिल है, इसलिए यहां एक समारोह है कि कुछ अधिक सहज ज्ञान युक्त करने के लिए parametrization तब्दील है:
from scipy.stats import truncnorm
def get_truncated_normal(mean=0, sd=1, low=0, upp=10):
return truncnorm(
(low - mean)/sd, (upp - mean)/sd, loc=mean, scale=sd)
इसका उपयोग कैसे करें?
उदाहरण मानकों के साथ जनरेटर: मतलब, मानक विचलन, और काट-छांट रेंज:
>>> X = get_truncated_normal(mean=8, sd=2, low=1, upp=10)
उसके बाद, आप उपयोग कर सकते हैं एक्स एक मूल्य उत्पन्न करने के लिए:
>>> X.rvs() 6.0491227353928894
या, एक numpy एन के साथ rray मूल्यों उत्पन्न:
>>> X.rvs(10) array([ 7.70231607, 6.7005871 , 7.15203887, 6.06768994, 7.25153472, 5.41384242, 7.75200702, 5.5725888 , 7.38512757, 7.47567455])
एक दृश्य उदाहरण
यहाँतीन अलग अलग छोटा सामान्य वितरण की साजिश है:
X1 = get_truncated_normal(mean=2, sd=1, low=1, upp=10)
X2 = get_truncated_normal(mean=5.5, sd=1, low=1, upp=10)
X3 = get_truncated_normal(mean=8, sd=1, low=1, upp=10)
import matplotlib.pyplot as plt
fig, ax = plt.subplots(3, sharex=True)
ax[0].hist(X1.rvs(10000), normed=True)
ax[1].hist(X2.rvs(10000), normed=True)
ax[2].hist(X3.rvs(10000), normed=True)
plt.show()
शानदार उत्तर, धन्यवाद! – Gabriel
+1। हालांकि, यह ध्यान देने योग्य है कि फ़ंक्शन के अंदर 'get_truncated_normal.rvs() 'का उपयोग तुरंत बाहर करने के बजाय, फ़ंक्शन के अंदर तुरंत उपयोग किया जाता है। बेशक, यह केवल तभी मदद करता है जब आप यादृच्छिक ड्रॉ चाहते हैं –
- 1. PHP: एक सामान्य वितरण
- 2. मशीन सीखने में टीडीडी के लाभ
- 3. एक स्कू सामान्य वितरण में यादृच्छिक संख्या (NORMINV() के समतुल्य)
- 4. सामान्य लिस्प में एक प्रकार का वितरण
- 5. एक सूची के भीतर एक आइटम की स्थिति प्राप्त करें?
- 6. Numpy: सीमा
- 7. सी # में मशीन सीखने पुस्तकालयों
- 8. मशीन सीखने के लिए एक अच्छा पहला कार्यान्वयन क्या है?
- 9. छवि के भीतर प्रतीक का पता लगाने के लिए एज़ूर मशीन सीखने का उपयोग करें
- 10. एक गैर सामान्य जेनेट प्रकार पर एक सामान्य विधि के MethodInfo कैसे प्राप्त करें?
- 11. एक निश्चित सीमा के भीतर एक नाट को बनाए रखना
- 12. numpy/matplotlib के साथ संभाव्य वितरण कैसे आकर्षित करें?
- 13. एक ग्रंट कार्य के भीतर से मोंगोडीबी शुरू करें
- 14. मैं एक बदमाश कार्य के भीतर से एक कड़वाहट कार्य कैसे चला सकता हूं?
- 15. रूबी में एक सीमा के साथ थ्रेडिंग
- 16. एक समय सीमा के लिए हर घंटे प्राप्त करें
- 17. scikits मशीन सीखने में गुम मूल्य
- 18. किसी भी वितरण के निर्माण से पहले एक ग्रेडल कार्य निष्पादित करने के लिए कैसे करें
- 19. एक क्रमबद्ध Numpy सरणी के मूल सूचकांक प्राप्त करें
- 20. क्या अजगर में कुछ सीमा में एक संख्या रखने के लिए एक अंतर्निहित कार्य है?
- 21. sailsjs में एक निर्धारित कार्य कैसे करें
- 22. मुझे लगता है कि एक मशीन सीखने की समस्या
- 23. मैं एक यादृच्छिक संख्या कैसे चुन सकता हूं लेकिन PHP में सामान्य संभावना वितरण के साथ?
- 24. मशीन सीखने में प्रतिक्रिया या मजबूती का उपयोग करें?
- 25. मैं म्यू और सिग्मा के साथ पाइथन में एक असामान्य वितरण कैसे प्राप्त करूं?
- 26. मशीन सीखने के लिए बाहरी जीपीयू
- 27. बूस्ट सामान्य वितरण कक्षाओं का उपयोग कैसे करें?
- 28. एक गर्म एन्कोडिंग मशीन सीखने के प्रदर्शन में सुधार क्यों करता है?
- 29. जावा में एक सीमा के भीतर चाबी के लिए मान जाओ
- 30. एक numpy सरणी के विपरीत विकर्ण
नहीं करना चाहिए ' सामान्य रूप से यादृच्छिक नमूने नहीं परिभाषा द्वारा वितरित डेटा unbounded हो? – Tom