در درس 45ام از آموزش رایگان یادگیری ماشین با پایتون می خواهیم در مورد توابع کرنل اصلی در SVM صحبت کنیم.
تابع کرنل یک روش استفاده شده برای دریافت داده به عنوان ورودی و تبدیل آن به فرم مورد نیاز برای پردازش داده است. عبارت “کرنل” به دلیل مجموعهای از توابع ریاضی استفاده شده در ماشین بردار پشتیبان به کار میرود که امکان تعامل با داده را فراهم میکنند. به عبارت دیگر، تابع کرنل به طور کلی مجموعه دادههای آموزشی را به گونهای تغییر میدهد که یک سطح تصمیم غیرخطی به یک معادله خطی در یک فضای ابعاد بالاتر تبدیل شود. به صورت سادهتر، این تابع نتیجه ضرب داخلی بین دو نقطه در یک فضای ویژگی استاندارد را باز میگرداند.
معادله تابع کرنل استاندارد
توابع کرنل اصلی در SVM
برای پیادهسازی توابع کرنل (Kernel Functions)، ابتدا باید کتابخانه “scikit-learn” را با استفاده از ترمینال یا دستورات خط فرمان نصب کنیم.
pip install scikit-learn
تابع کرنل گوسی
این تابع برای انجام تبدیل مورد استفاده قرار میگیرد زمانی که اطلاعات اولیهای درباره داده وجود ندارد.
تابع کرنل پایه شعاعی گوسی (RBF)
مانند تابع کرنل فوق، این تابع از روش پایه شعاعی برای بهبود تبدیل استفاده میکند.
from sklearn.svm import SVC classifier = SVC(kernel ='rbf', random_state = 0) # training set in x, y axis classifier.fit(x_train, y_train)
تابع کرنل سیگموئید
این تابع معادل یک مدل دولایه پرسپترون در شبکه عصبی است و به عنوان تابع فعال سازی برای نورونهای مصنوعی استفاده میشود.
from sklearn.svm import SVC classifier = SVC(kernel ='sigmoid') classifier.fit(x_train, y_train) # training set in x, y axis
تابع کرنل چندجملهای
این تابع شباهت بین بردارهای مجموعه آموزش در یک فضای ویژگی را نسبت به چندجملهایهای متغیرهای اصلی که در تابع کرنل استفاده شدهاند نشان میدهد.
from sklearn.svm import SVC classifier = SVC(kernel ='poly', degree = 4) classifier.fit(x_train, y_train) # training set in x, y axis
تابع کرنل خطی
زمانی استفاده میشود که داده به طور خطی جداپذیر باشد.
from sklearn.svm import SVC classifier = SVC(kernel ='linear') classifier.fit(x_train, y_train) # training set in x, y axis