رگرسیون لجستیک: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
فرمول گرادیان افزایشی بروز شد.
برچسب‌ها: متن دارای ویکی‌متن نامتناظر ویرایشگر دیداری
بدون خلاصۀ ویرایش
برچسب‌ها: متن دارای ویکی‌متن نامتناظر ویرایشگر دیداری
خط ۲۷:
اگر برای داده <math>i</math> ام <math>y_i = 1</math> باشد، هدف افزایش<math>\Pr\left(y_i = 1|\vec{x^i};\vec{\beta}\right)</math> است و اگر <math>y_i</math> صفر باشد هدف افرایش مقدار <math>\Pr\left(y_i = 0|\vec{x^i};\vec{\beta}\right)</math> است. ازینرو از فرمول <math>Pr(y_i=1|\vec{x^{i}}; \vec{\beta})^{y_i} \times Pr(y_i=0|\vec{x^{i}}; \vec{\beta})^{1-y_i} </math> استفاده می کنیم که اگر <math>y_i = 1</math>باشد، فرمول به ما <math>\Pr\left(y_i = 1|\vec{x^i};\vec{\beta}\right)</math> را بدهد و اگر <math>y_i = 0</math> بود به ما <math>\Pr\left(y_i = 0|\vec{x^i};\vec{\beta}\right)</math> را بدهد.
 
حال برای بدست آوردن پارامتر بهینه باید <math>\vec{\beta}</math> یی پیدا کنیم که مقدار <math>L(D, \vec{\beta})</math> را بیشینه کند. از آنجا که این تابع نسبت به <math>\vec{\beta}</math> مقعر است حتما یک بیشینه مطلق دارد. برای پیدا کردن جواب می توان از روش گرادیان افزایشی از نوع تصادفی اش استفاده کرد (Stochastic Gradient Ascent). در این روش هر بار یک مثال را بصورت اتفاقی از نمونه‌های داده انتخاب کرده، گرادیان درست نمایی را حساب می‌کنیم و کمی در جهت گرادیان پارامتر را حرکت می‌دهیم تا به یک پارامتر جدید برسیم. گرادیان جهت موضعی بیشترین افزایش را در تابع به ما نشان میدهد، برای همین در آن جهت کمی حدکتحرکت میکنیم تا به بیشترین افزایش موضعی تابع برسیم. اینکار را آنقدر ادامه می‌دهیم که گرادیان به اندازه کافی به صفر نزدیک شود. بجای اینکه داده‌ها را بصورت تصادفی انتخاب کنیم می‌توانیم به ترتیب داده شماره <math>1</math>تا داده شماره <math>n</math> را انتخاب کنیم و بعد دوباره به داده اولی برگردیم و این کار را بصورت متناوب چندین بار انجام دهیم تا به اندازه کافی گرادیان به صفر نزدیک شود. از لحاظ ریاضی این کار را می‌توان به شکل پایین انجام داد، پارامتر <math>\vec{\beta}</math> را در ابتدا بصورت تصادفی مقدار دهی می‌کنیم و بعد برای داده <math>i</math>ام و تمامی <math>j</math> ها، یعنی از <math>j=1</math> تا <math>j=m+1</math> تغییر پایین را اعمال می‌کنیم، دراینجا <math>\alpha</math> همان مقداریست که در جهت گرادیان هربار حرکت می‌کنیم و <math>
\left(y_i - \frac{1}{1+e^{-\left(\beta_0 + \beta_1 x_{1,i} + \cdots + \beta_k x_{k,i}\right)}}\right)\vec{x^{i}}_j</math> مشتق جزئی داده <math>i</math>ام در بُعد <math>j</math>ام است: