توزیع ریلی (Rayleigh Distribution)
توی این صفحه با توزیع ریلی در NumPy آشنا می شوی. این توزیع ریلی (Rayleigh Distribution) در پردازش سیگنال استفاده می شود؛ یعنی وقتی می خواهیم شدت یا بزرگی یک سیگنال را مدل کنیم.
توزیع ریلی در NumPy چیست؟
طبق متن منبع، توزیع ریلی در پردازش سیگنال کاربرد دارد. پردازش سیگنال یعنی کارهایی مثل فیلترکردن، اندازه گیری و تحلیل سیگنال های صوتی یا رادیویی.
در NumPy این توزیع با تابع random.rayleigh() ساخته می شود. این تابع عددهای تصادفی می سازد که از توزیع ریلی در NumPy پیروی می کنند.
شکل توزیع ریلی شبیه تپه ای است که از صفر شروع می شود، آرام بالا می رود و بعد دوباره کم می شود.
پارامترهای توزیع ریلی در NumPy
تابع random.rayleigh() دو پارامتر اصلی دارد:
- scale: شبیه انحراف معیار است و میزان پهن بودن تپه را تعیین می کند؛ پیش فرض آن
1.0است. - size: شکل آرایه خروجی را مشخص می کند.
نکته: هرچه scale بزرگ تر باشد، توزیع ریلی در NumPy پهن تر و تخت تر می شود.
اگر دوست داری توزیعی را ببینی که بیشتر برای آزمون های آماری است، صفحه توزیع کای دو در NumPy را هم بعداً نگاه کن.
نمونه گیری از توزیع ریلی در NumPy
در مثال منبع، یک نمونه از توزیع ریلی با scale=2 ساخته می شود. شکل آرایه خروجی 2x3 است؛ یعنی دو سطر و سه ستون.
گام ها:
- کتابخانه
randomرا از NumPy ایمپورت کن. - تابع
random.rayleigh()را باscaleوsizeمناسب صدا بزن. - خروجی را با
print()چاپ کن و عددها را ببین.
from numpy import random
x = random.rayleigh(scale=2, size=(2, 3))
print(x)
نکته: با تغییر scale می توانی ببینی عددهای خروجی چطور عوض می شوند و حس بهتری از شکل توزیع ریلی در NumPy بگیری.
نمایش توزیع ریلی روی نمودار
دیدن شکل توزیع ریلی روی نمودار درک آن را خیلی راحت می کند. در مثال دوم با matplotlib و seaborn یک نمودار چگالی می کشیم.
matplotlib یک کتابخانه رسم نمودار در پایتون است. seaborn هم کتابخانه ای برای کشیدن نمودارهای آماری خوش فرم روی داده ها است.
در کد زیر، هزار نمونه از توزیع ریلی در NumPy می سازیم و نمودار چگالی آن را رسم می کنیم.
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
data = random.rayleigh(size=1000)
sns.displot(data, kind="kde")
plt.show()
نکته: در نمودار ریلی، مقدارهای نزدیک صفر کم هستند، بعد نمودار اوج می گیرد و سپس آرام کم می شود.
شباهت توزیع ریلی و توزیع کای دو
طبق متن منبع، وقتی انحراف معیار برابر یک باشد و درجه آزادی توزیع کای دو برابر 2 باشد، توزیع ریلی و توزیع کای دو همان شکل را نشان می دهند.
یعنی در این تنظیم خاص، اگر از توزیع ریلی در NumPy نمونه بگیری یا از توزیع کای دو با df=2، شکل کلی توزیع ها یکی می شود.
برای دیدن خود کد مربوط به کای دو، می توانی صفحه توزیع کای دو در NumPy را باز کنی.
جمع بندی سریع توزیع ریلی
اگر خواستی مرور کنی، این صفحه توزیع ریلی در NumPy برای مرور خیلی خوب است.
- توزیع ریلی در پردازش سیگنال کاربرد زیادی دارد.
- در NumPy با
random.rayleigh()به این توزیع دسترسی داری. - پارامتر
scaleپهنی و تختی توزیع را کنترل می کند. sizeفقط شکل آرایه خروجی را تعیین می کند.- در شرایط خاص، توزیع ریلی و کای دو شکل یکسانی دارند.