ماشین بردار پشتیبان (SVM) در پایتون — راهنمای کاربردی

«ماشین بردار پشتیبان» (Support Vector Machine | SVM)، یکی از روش‌های «یادگیری نظارت شده» (Supervised Learning) است که برای «دسته‌بندی» (Classification) مورد استفاده قرار می‌گیرد. SVM، یکی از مهم‌ترین الگوریتم‌های «یادگیری ماشین» (Machine Learning) محسوب می‌شود که کاربردهای بسیاری در مسائل «داده‌کاوی» (Data Mining) دارد. این الگوریتم را می‌توان با استفاده از «زبان برنامه‌نویسی پایتون» (Python Programming Language) پیاده‌سازی کرد.

ماشین بردار پشتیبان، خطی را ترسیم می‌کند که دسته‌های متفاوت داده‌ها را جدا می‌سازد. در این الگوریتم یادگیری ماشین، بردار برای بهینه‌سازی خط محاسبه می‌شود. این کار به منظور حصول اطمینان از این موضوع انجام می‌شود که نزدیک‌ترین نقطه‌ها درون هر گروه، نسبت به یکدیگر بیشترین فاصله را دارند. بر خلاف تصور بسیاری از افراد، الزامی ندارد که جداساز همیشه یک بردار خطی باشد. در مطلب پیش رو، نمودار نقاط داده در یک فضای n-بُعدی ترسیم می‌شود. در اینجا، n ویژگی وجود دارد و هر ویژگی دارای مقداری از مختصات مشخص است. 

ابتدا، مجموعه داده بارگذاری و نمودار مربوط به نقاط داده، ترسیم می‌شود:

قطعه کد ۱:

>> from sklearn.datasets.samples_generator import make_blobs

>> x,y=make_blobs(n_samples=500,centers=2,random_state=0,cluster_std=0.40)

>> import matplotlib.pyplot as plt

>> plt.scatter(x[:,0],x[:,1],c=y,s=50,cmap=’plasma’)

 

<matplotlib.collections.PathCollection object at 0x04E1BBF0>

قطعه کد ۲:

>>> plt.show()
قطعه کد ۳:
>>> import numpy as np
>>> xfit=np.linspace(-1,3.5)
>>> plt.scatter(X[:, 0], X[:, 1], c=Y, s=50, cmap=’plasma’)
 

<matplotlib.collections.PathCollection object at 0x07318C90>

قطعه کد ۴:

>>> for m, b, d in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:
       yfit = m * xfit + b
       plt.plot(xfit, yfit, ‘-k’)
       plt.fill_between(xfit, yfit – d, yfit + d, edgecolor=’none’,
       color=’#AFFEDC’, alpha=0.4)
 
[<matplotlib.lines.Line2D object at 0x07318FF0>]
<matplotlib.collections.PolyCollection object at 0x073242D0>
[<matplotlib.lines.Line2D object at 0x07318B70>]
<matplotlib.collections.PolyCollection object at 0x073246F0>
[<matplotlib.lines.Line2D object at 0x07324370>]
<matplotlib.collections.PolyCollection object at 0x07324B30>
قطعه کد ۵:
>>> plt.xlim(1,3.5)
 
خروجی:
(-۱, ۳٫۵)
 
 قطعه کد ۶:

>>> plt.show()

ماشین بردار پشتیبان

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *