NumPy - Binomial Distribution

توزیع دو جمله‌ای

توزیع دو جمله‌ای یک توزیع گسسته است. این توزیع خروجی یک سناریوی باینری (دودویی) را توصیف می‌کند. مانند پرتاب سکه، که خروجی یا رو است یا پشت.

تابع شیء random.binomial() دارای 3 پارامتر است:

  • n - تعداد دفعات آزمایش
  • p - احتمال رخداد هر آزمایش (مثلا برای پرتاب یک سکه برای هر کدام 0.5 است.)
  • size - اندازه آرایه برگردانده شده.
توزیع گسسته: توزیعی که در رخدادهای جدا از هم تعریف می‌شود، مانند پرتاب سکه که نتیجه آن گسسته است، تنها می‌تواند رو یا پشت باشد. در مقابل قد افراد را داریم که پیوسته است، می‌تواند 170، 170/1، 170/11 و ... باشد.

10 بار پرتاب سکه 10 داده ایجاد می‌کند.


from numpy import random

x = random.binomial(n=10, p=0.5, size=10)

print(x)

خروجی:

رسم نمودار توزیع دو جمله‌ای


from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.displot(random.binomial(n=10, p=0.5, size=1000))

plt.show()

خروجی:

تفاوت بین توزیع‌های نرمال و دو جمله‌ای

تفاوت اصلی توزیع نرمال با توزیع دو جمله‌ای، در پیوسته بودن توزیع نرمال و گسسته بودن توزیع دو جمله‌ای است. البته اگر به اندازه کافی داده داشته باشیم، نمودار توزیع دو جمله‌ای بسیار شبیه به نمودار توزیع نرمال با یک میانگین و انحراف معیار خاص خواهد بود.


from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.kdeplot(random.normal(loc=50, scale=5, size=1000), label='normal')
sns.kdeplot(random.binomial(n=100, p=0.5, size=1000), label='binomial')

plt.legend()
plt.show()

خروجی: