رگرسیون لجستیک (Logistic Regression) با پایتون — راهنمای کاربردی
«رگرسیون لجستیک» (Logistic Regression) یک روش «دستهبندی» (Classification) «نظارت شده» (Supervised Learning) در پایتون است که در تخمین مقادیر گسسته مانند ۰/۱، بله/خیر و درست/غلط کاربرد دارد. این کار بر مبنای مجموعهای از متغیرهای مستقل انجام میشود. از تابع لجستیک برای پیشبینی احتمال یک رویداد استفاده میشود و به کاربر یک خروجی بین ۰ و ۱ میدهد.
با وجود آنکه به این الگوریتم «رگرسیون» (Regression) گفته میشود، اما در حقیقت یک الگوریتم دستهبندی است. رگرسیون لجستیک، دادهها را در یک تابع «لوجیت» (Logit) برازش میکند و بنابرین به آن رگرسیون لوجیت نیز گفته میشود. با استفاده از کد زیر، الگوریتم رگرسیون لجستیک پیادهسازی میشود.
قطعه کد ۱:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from sklearn import linear_model
>>> xmin,xmax=-7,7 #Test set; straight line with Gaussian noise
>>> n_samples=77
>>> np.random.seed(0)
>>> x=np.random.normal(size=n_samples)
>>> y=(x>0).astype(np.float)
>>> x[x>0]*=3
>>> x+=.4*np.random.normal(size=n_samples)
>>> x=x[:,np.newaxis]
>>> clf=linear_model.LogisticRegression(C=1e4) #Classifier
>>> clf.fit(x,y)
>>> plt.figure(1,figsize=(3,4))
<Figure size 300×400 with 0 Axes>
>>> plt.clf()
>>> plt.scatter(x.ravel(),y,color=’lavender’,zorder=17)
<matplotlib.collections.PathCollection object at 0x057B0E10>
قطعه کد ۲:
>>> x_test=np.linspace(-7,7,277)
>>> def model(x):
return 1/(1+np.exp(-x))
>>> loss=model(x_test*clf.coef_+clf.intercept_).ravel()
>>> plt.plot(x_test,loss,color=’pink’,linewidth=2.5)
[<matplotlib.lines.Line2D object at 0x057BA090>]
قطعه کد ۳:
>>> ols=linear_model.LinearRegression()
>>> ols.fit(x,y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
قطعه کد ۴:
>>> plt.plot(x_test,ols.coef_*x_test+ols.intercept_,linewidth=1)
[<matplotlib.lines.Line2D object at 0x057BA0B0>]
قطعه کد ۵:
>>> plt.axhline(.4,color=’.4′)
<matplotlib.lines.Line2D object at 0x05860E70>
قطعه کد ۶:
>>> plt.ylabel(‘y’)
Text(0,0.5,’y’)
>>> plt.yticks([0,0.4,1])
>>> plt.ylim(-.25,1.25)
(-۰٫۲۵, ۱٫۲۵)
قطعه کد ۹:
>>> plt.xlim(-4,10)
(-۴, ۱۰)
قطعه کد ۱۰:
>>> plt.legend((‘Logistic Regression’,’Linear Regression’),loc=’lower right’,fontsize=’small’)
<matplotlib.legend.Legend object at 0x057C89F0>
قطعه کد ۱۱:
>>> plt.show()
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- آموزش همبستگی و رگرسیون خطی در SPSS
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- دادهکاوی (Data Mining) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
مجموعه: آمار, داده کاوی, یادگیری ماشینی برچسب ها: logistic regression, python, Python Programming Language, Regression, برنامه نویسی پایتون, پایتون, رگرسیون, رگرسیون لجستیک, رگرسیون لجستیک با پایتون