توزیع چندجمله ای (Multinomial Distribution)
اینجا با توزیع چندجمله ای در NumPy آشنا می شوی. توزیع چندجمله ای (Multinomial Distribution) حالتی است که نتیجه فقط دو حالت نیست. مثل وقتی که تاس می اندازی و شش حالت ممکن داریم.
توزیع چندجمله ای در NumPy چیست؟
توزیع چندجمله ای تعمیم توزیع دوجمله ای (Binomial Distribution) است. توزیع دوجمله ای فقط دو حالت دارد، مثل شیر یا خط. اما اینجا چند حالت مختلف داریم، مثل شش روی تاس یا گروه های مختلف گروه خونی.
در این توزیع می پرسیم اگر یک آزمایش چندبار تکرار شود، هر حالت چندبار رخ می دهد. مثلاً شش بار تاس می اندازیم، چندبار یک می آید، چندبار دو می آید و همین طور تا شش.
پارامترهای توزیع چندجمله ای در NumPy
تابع random.multinomial() سه پارامتر مهم دارد.
- n: تعداد دفعات انجام آزمایش است.
- pvals: لیست احتمال هر حالت است، مثل احتمال هر روی تاس.
- size: شکل آرایه خروجی را مشخص می کند.
نکته: مجموع عددهای داخل pvals باید 1 شود. در مثال تاس، هر روی تاس احتمال برابر دارد، برای همین شش تا 1/6 استفاده شده است.
مثال: شبیه سازی پرتاب تاس با توزیع چندجمله ای
در مثال منبع، یک تاس شش رو را مدل می کنیم. آزمایش را شش بار تکرار می کنیم و می خواهیم ببینیم هر رو چندبار آمده است.
گام ها:
- کتابخانه
randomرا از NumPy ایمپورت کن. - تابع
random.multinomial()را باnوpvalsمناسب صدا بزن. - خروجی را با
print()چاپ کن و معنی عددها را بخوان.
from numpy import random
x = random.multinomial(n=6, pvals=[1/6, 1/6, 1/6, 1/6, 1/6, 1/6])
print(x)
نکته: خروجی یک مقدار تکی نیست، بلکه یک لیست عدد است. هر عدد می گوید آن حالت چندبار در این آزمایش تکرار شده است؛ یعنی برای هر pval یک مقدار جدا داریم.
نکته: چون این توزیع تعمیم دوجمله ای است، نمودارهای آن شبیه چند توزیع دوجمله ای روی هم هستند و شباهت کلی آن با توزیع نرمال هم مانند همان حالت دوجمله ای است.
اگر دوست داری قبل از این توزیع، حالت ساده تر را ببینی، به صفحه توزیع لجستیک در NumPy هم می توانی بعداً سر بزنی.
جمع بندی سریع توزیع چندجمله ای
برای مرور، این چند نکته را به خاطر بسپار. اگر لازم شد، صفحه توزیع چندجمله ای در NumPy را دوباره نگاه کن.
- توزیع چندجمله ای وقتی است که بیش از دو حالت داریم.
- پارامتر
nتعداد تکرار آزمایش ها را مشخص می کند. pvalsلیست احتمال هر حالت است و مجموعش باید 1 شود.- خروجی برای هر حالت یک عدد می دهد، نه یک مقدار تکی.
- مدل کردن پرتاب تاس یک مثال ساده از این توزیع است.