راه
۵ کیو· متوسط رو به بالامتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

Naive Bayes گاوسی از صفر

تابع gnb_proba(X_train, y_train, X_test) احتمال پسین هر کلاس را برای هر سطر X_test با Naive Bayes گاوسی برمی‌گرداند. کلاس‌ها مرتب‌شده‌اند (np.unique).

برای هر کلاس kk و هر ویژگی jj، از داده‌ی آموزش:

  • پیشین π^k=nk/n\hat\pi_k = n_k / n
  • میانگین μ^kj\hat\mu_{kj} و واریانس σ^kj2\hat\sigma^2_{kj} ویژگی jj در نمونه‌های کلاس kk — واریانس با تقسیم بر nkn_k

و فرض استقلال ویژگی‌ها درون هر کلاس:

Pr⁡(Y=k∣x)∝π^k∏j=1p12πσ^kj2exp⁡(−(xj−μ^kj)22σ^kj2)\Pr(Y = k \mid x) \propto \hat\pi_k \prod_{j=1}^{p} \frac{1}{\sqrt{2\pi\hat\sigma^2_{kj}}} \exp\Big(-\frac{(x_j - \hat\mu_{kj})^2}{2\hat\sigma^2_{kj}}\Big)

حاصل را برای هر سطر طوری نرمال کنید که جمع احتمال‌ها یک شود. خروجی ماتریسی ntest×Kn_{\text{test}} \times K است.

:::info برای پایداری عددی، با لگاریتم کار کنید و پیش از توان، بیشینه‌ی هر سطر را کم کنید — همان ترفند softmax. :::

نمونه‌ها

ورودی نمونه ۱
[[[1], [2], [3], [6], [7], [8]], [0, 0, 0, 1, 1, 1], [[2], [4.5], [7]]]
خروجی نمونه ۱
[[1.0, 0.0], [0.5, 0.5], [0.0, 1.0]]
ورودی نمونه ۲
[[[1, 1], [2, 2], [1, 3], [5, 5], [6, 4], [7, 6]], [0, 0, 0, 1, 1, 1], [[2, 2], [4, 4]]]
خروجی نمونه ۲
[[1.0, 0.0], [0.0, 1.0]]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود