توزیع لجستیک (Logistic Distribution)
در این صفحه با توزیع لجستیک در NumPy آشنا می شوی. این توزیع برای مدل کردن رشد و تغییرات سریع استفاده می شود. کم کم می بینی چطور روی نمودار شبیه یک تپه نرم می شود.
توزیع لجستیک در NumPy چیست؟
توزیع لجستیک (Logistic Distribution) یک توزیع احتمالی است. توزیع احتمالی (Probability Distribution) یعنی قانونی که می گوید هر عدد چقدر شانس دارد. این توزیع معمولاً برای رشد جمعیت یا رشد کاربرهای یک برنامه استفاده می شود.
شکل توزیع لجستیک شبیه تپه ای نرم در وسط محور است. بیشتر عددها نزدیک میانگین می افتند. عددهای خیلی دور از مرکز هم ممکن اند، اما کمتر پیش می آید.
تابع random.logistic() در NumPy سه پارامتر مهم دارد:
- loc: میانگین یا مرکز تپه است.
- scale: شبیه انحراف معیار (Standard Deviation) است؛ یعنی پهنی تپه.
- size: شکل و اندازه آرایه خروجی را مشخص می کند.
اگر درباره توزیع یکنواخت کنجکاوی، صفحه توزیع یکنواخت در NumPy را هم بعداً ببین.
ساخت آرایه تصادفی با توزیع لجستیک
در این مثال یک آرایه 2×3 از توزیع لجستیک می سازیم. میانگین را 1 و scale را 2 می گذاریم. یعنی عددها بیشتر دور و بر 1 پخش می شوند.
گام ها:
- کتابخانه
randomرا از NumPy ایمپورت کن. - با
random.logistic()آرایه تصادفی بساز. - آرایه را با
print()روی خروجی ببین.
from numpy import random
x = random.logistic(loc=1, scale=2, size=(2, 3))
print(x)
نکته: اگر loc را عوض کنی، کل تپه روی محور جابه جا می شود. اگر scale را بزرگ تر کنی، تپه پهن تر و تخت تر می شود.
نمایش توزیع لجستیک روی نمودار
دیدن عددها روی نمودار خیلی کمک می کند. اینجا با matplotlib و seaborn نمودار می کشیم. matplotlib یک کتابخانه رسم نمودار است. seaborn هم کتابخانه ای برای نمودارهای زیباتر در پایتون است.
گام ها:
- داده تصادفی با توزیع لجستیک بساز.
- با
sns.displotچگالی داده را رسم کن. - با
plt.show()نمودار را نمایش بده.
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
data = random.logistic(size=1000)
sns.displot(data, kind="kde")
plt.show()
نکته: نمودار kde شکل تقریبی توزیع داده را نشان می دهد. هرچه قله بلندتر باشد، احتمال آن ناحیه بیشتر است.
مقایسه توزیع لجستیک و توزیع نرمال
تو در مدرسه احتمالاً توزیع نرمال (Normal Distribution) را می بینی. این همان منحنی زنگوله ای معروف است. توزیع لجستیک خیلی شبیه نرمال است، اما دم هایش چاق تر است. یعنی احتمال عددهای خیلی دور کمی بیشتر است.
در کد زیر دو مجموعه داده می سازیم. یکی با توزیع نرمال و دیگری با توزیع لجستیک در NumPy. بعد هر دو را روی یک نمودار چگالی رسم می کنیم.
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
data = {
"normal": random.normal(scale=2, size=1000),
"logistic": random.logistic(size=1000)
}
sns.displot(data, kind="kde")
plt.show()
نکته: وقتی scale بزرگ باشد، دو نمودار خیلی شبیه می شوند. تنها فرق اصلی قله و دم هاست.
برای دیدن یک نوع توزیع دیگر که کاملاً متفاوت است، بعداً به توزیع چندجمله ای NumPy هم سر بزن.
جمع بندی سریع توزیع لجستیک
اگر خواستی بعداً مرور کنی، این صفحه توزیع لجستیک در NumPy بهترین خلاصه برای تو است.
- توزیع لجستیک در NumPy برای مدل کردن رشد و تغییرات سریع است.
- پارامتر
locمرکز تپه وscaleپهنی آن را تنظیم می کند. - با
sizeمی توانی شکل آرایه تصادفی را مشخص کنی. - این توزیع شبیه توزیع نرمال است، اما دم های چاق تر دارد.
- برای درک بهتر، حتماً نمودارهای توزیع لجستیک را رسم و نگاه کن.