رگرسیون لجستیک: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۲۷:
{{پایان وسطچین}}
با احتساب تابع لجستیک، رگرسیون لجستیک را میتوان به شکل پایین بازنویسی کرد:<ref name="Hosmer" />
<math>\Pr(y_i = 1|\vec{x_i};\vec{\beta}) = \frac{1}{1+e^{-\left(\beta_0 + \beta_1 x_{1,i} + \cdots + \beta_k x_{k,i}\right)}} = \sigma\left(\beta_0 + \beta_1 x_{1,i} + \cdots + \beta_k x_{k,i}\right)</math>
== برآورد پارامترهای بهینه ==
برای بدست آوردن پارامترهای بهینه یعنی <math>\vec{\beta} =[\beta_0, \beta_1, \cdots , \beta_k]</math> میتوان از روش [[برآورد درستنمایی بیشینه|برآورد درست نمایی بیشینه]] (Maximum Likelihood Estimation) استفاده کرد. اگر فرض کنیم که تعداد مثالهایی که قرار است برای تخمین پارامترها استفاده کنیم <math>n
</math> است و این مثالها را به این شکل نمایش دهیم <math>D = (\vec{x_{1}}, y_1), \cdots (\vec{x_{n}}, y_n)</math>. پارامتر بهینه پارامتری است که برآورد درست نمایی را بیشینه کند، البته برای سادگی کار برآورد لگاریتم درست نمایی را بیشینه میکنیم. لگاریتم درست نمایی داده <math>D</math> برای پارامتر <math>\vec{\beta}</math> را با <math>L(D, \vec{\beta})</math> نمایش میدهیم:
<math>L(D, \vec{\beta}) = \log \left(\prod_{i=1}^{n} Pr(y_i=1|\vec{x_{i}}; \vec{\beta})^{y_i} \times Pr(y_i=0|\vec{x_{i}}; \vec{\beta})^{1-y_i}\right) =
\sum_{i=1}^{n} y_i \times \log Pr(y_i=1|\vec{x_{i}}; \vec{\beta}) + (1-y_i) \log Pr(y_i=0|\vec{x_{i}}; \vec{\beta}) </math>
اگر برای داده <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>L_1</math> [[تابع هزینه]] را به این شکل تغییر میدهیم:<ref>{{یادکرد کتاب|نشانی=https://www.springer.com/us/book/9780387310732|عنوان=Pattern Recognition and Machine Learning|نام خانوادگی=Bishop|نام=Christopher|ناشر=Christopher|سال=2006|شابک=9780387310732|مکان=New York|صفحات=|زبان=en}}</ref>
<math> L_r(D, \vec{\beta}) = -L(D, \vec{\beta}) + \lambda ||\vec{\beta}||_1= - \sum_{i=1}^{n} y_i \times \log Pr(y_i=1|\vec{x_{i}}; \vec{\beta}) + (1-y_i) \log Pr(y_i=0|\vec{x_{i}}; \vec{\beta}) + \lambda\sum_{k=0}^m |\beta_k|</math>
این روش تنظیم مدل که به روش لاسو (Lasso) نیز شهرت دارد باعث میشود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصطلاح خلوت (Sparse) شود.<ref>{{Cite journal|last=Natarajan|first=B. K.|date=1995|title=Sparse Approximate Solutions to Linear Systems|url=https://epubs.siam.org/doi/10.1137/S0097539792240406|journal=SIAM Journal on Computing|language=en-US|volume=24|issue=2|pages=227–234|doi=10.1137/s0097539792240406|issn=0097-5397|via=}}</ref>
در تنظیم مدل به روش <math>L_2</math> [[تابع هزینه]] را به این شکل تغییر میدهیم:
<math> L_r(D, \vec{\beta}) = L(D, \vec{\beta}) + \lambda ||\vec{\beta}||^2_2= - \sum_{i=1}^{n} y_i \times \log Pr(y_i=1|\vec{x_{i}}; \vec{\beta}) + (1-y_i) \log Pr(y_i=0|\vec{x_{i}}; \vec{\beta}) + \lambda\sum_{k=0}^m \beta_k^2</math>
در روش تنظیم از طریق <math>L_2</math> سعی میشود طول اقلیدسی بردار <math> \vec{\beta}</math> کوتاه نگه داشته شود. <math>\lambda</math> در روش <math>L_1</math> و <math>L_2</math> یک عدد مثبت است که میزان تنظیم مدل را معین میکند. هرچقدر <math>\lambda</math> کوچکتر باشد جریمه کمتری برا بزرگی نرم بردار پارامترها یعنی <math>\vec{\beta}</math> پرداخت میکنیم. مقدار ایدئال <math>\lambda</math> از طریق آزمایش بر روی داده اعتبار (Validation Data) پیدا میشود.
=== تفسیر احتمالی تنظیم مدل ===
اگر بجای روش درست نمایی بیشینه از روش بیشینه سازی احتمال پسین استفاده کنیم به ساختار «تنظیم مدل» یا همان regularization خواهیم رسید.<ref>{{یادکرد کتاب|نشانی=https://books.google.com/books?id=kOXDtAEACAAJ&dq=pattern+recognition+and+machine+learning&hl=en&sa=X&ved=0ahUKEwiNrZ7O1tveAhWtmeAKHRTvAeAQ6AEIKjAA|عنوان=Pattern Recognition and Machine Learning|نام خانوادگی=Bishop|نام=Christopher M|تاریخ=2016-08-23|ناشر=Springer New York|سال=2016|شابک=9781493938438|مکان=New York|صفحات=30|زبان=English}}</ref> اگر مجموعه داده را با <math>D</math> نمایش بدهیم و پارامتری که به دنبال تخمین آن هستیم را با <math>\vec{\beta}</math>، احتمال پسین <math>Pr\left(\vec{\beta}\,|\,D\right)</math>، طبق قانون بیز متناسب خواهد بود با حاصلضرب درست نمایی یعنی <math>Pr\left(D\,|\,\vec{\beta}\right)</math> و احتمال پیشین یعنی <math>Pr\left(\vec{\beta}\right)</math>:<ref name=":1">{{Cite journal|last=Robert|first=Christian|date=2014-04-03|title=Machine Learning, a Probabilistic Perspective|url=https://www.tandfonline.com/doi/full/10.1080/09332480.2014.914768|journal=CHANCE|language=en|volume=27|issue=2|pages=62–63|doi=10.1080/09332480.2014.914768|issn=0933-2480}}</ref>
<math>Pr\left(\vec{\beta}\,|\,D\right) = \frac{Pr\left(D\,|\,\vec{\beta}\right)\times Pr\left(\vec{\beta}\right)}{Pr\left(D\right)}</math>
ازین رو
<math>argmax_{\vec{\beta}} Pr\left(\vec{\beta}\,|\,D\right) = argmax_{\vec{\beta}} \frac{Pr\left(D\,|\,\vec{\beta}\right)\times Pr\left(\vec{\beta}\right)}{Pr\left(D\right)} =
argmax_{\vec{\beta}} Pr\left(D\,|\,\vec{\beta}\right)\times Pr\left(\vec{\beta}\right)</math>
معادله خط پیشین نشان میدهد که برای یافتن پارامتر بهینه فقط کافیست که احتمال پیشین را نیز در معادله دخیل کنیم. اگر احتمال پیشین را یک توزیع احتمال با میانگین صفر و کوواریانس <math>\tau^2I</math> در نظر بگیریم به معادله پایین میرسیم:<ref name=":12">{{Cite journal|last=Robert|first=Christian|date=2014-04-03|title=Machine Learning, a Probabilistic Perspective|url=https://www.tandfonline.com/doi/full/10.1080/09332480.2014.914768|journal=CHANCE|language=en|volume=27|issue=2|pages=62–63|doi=10.1080/09332480.2014.914768|issn=0933-2480}}</ref>
<math>argmax_{\vec{\beta}} \,\, \log Pr\left(D\,|\,\vec{\beta}\right) =
argmax_{\vec{\beta}} \,\,
خط ۷۹:
\frac{1}{\sqrt{2\pi}\tau}exp\left(\frac{-||\vec{\beta}||^2}{2\tau}\right)\right)</math>
با ساده کردن این معادله به نتیجه پایین میرسیم:
<math> argmax_{\vec{\beta}} \,\, \log Pr\left(D\,|\,\vec{\beta}\right) = argmax_{\vec{\beta}} \sum_{i=1}^{n} y_i \times \log Pr(y_i=1|\vec{x_{i}}; \vec{\beta}) + (1-y_i) \log Pr(y_i=0|\vec{x_{i}}; \vec{\beta}) - \frac{1}{2\tau^2}||\vec{\beta}||^2 -\log \sqrt{2\pi}\tau</math>
با تغییر علامت معادله، بیشینهسازی را به کمینهسازی تغییر میدهیم، <math> \lambda</math> در این معادله همان <math> \frac{1}{2\tau^2}</math> است:
<math> argmax_{\vec{\beta}} \,\, \log Pr\left(D\,|\,\vec{\beta}\right) = argmin_{\vec{\beta}} -\left(\sum_{i=1}^{n} y_i \times \log Pr(y_i=1|\vec{x_{i}}; \vec{\beta}) + (1-y_i) \log Pr(y_i=0|\vec{x_{i}}; \vec{\beta})\right) + \lambda||\vec{\beta}||^2 </math>
همانطور که دیدیم جواب همان تنظیم مدل با نرم <math>L_2</math> است.
|