SVM (ماشین بردار پشتیبان)

آموزش SVM: ابرصفحه جداکننده، حاشیه بیشینه، کرنل‌ها و داده‌های غیرخطی

SVM چیست؟

Support Vector Machine دنبال مرز تصمیمی می‌گردد که دو کلاس را با بیشترین حاشیه (Margin) جدا کند؛ نه فقط هر مرزی!

ابرصفحه و حاشیه

چرا حاشیه بزرگ؟ تعمیم بهتر! مرز با حاشیه بزرگ، خطای کمتری روی داده جدید می‌کند.

داده غیرخطی: ترفند کرنل

اگر داده با خط جدا نشود چه؟ کرنل داده را به فضای با ابعاد بالاتر می‌برد که آنجا جداپذیر خطی است:

پیاده‌سازی

from sklearn.svm import SVC

model = SVC(kernel="rbf", C=1.0, gamma="scale")
model.fit(X_train, y_train)

هایپرپارامترهای کلیدی

پارامترمعنیاثر
Cجریمه خطابزرگ: حاشیه کوچک، Overfitting / کوچک: حاشیه بزرگ، Underfitting
gammaپهنایی کرنل rbfبزرگ: مرز پیچیده، Overfitting / کوچک: مرز نرم

نکته: مقیاس‌بندی!

SVM شدیداً به مقیاس حساس است. همیشه قبل از SVM، داده را با StandardScaler استاندارد کنید.

مزایا و معایب

مزایامعایب
در فضای پربعدعالی استکند روی داده بزرگ
با کرنل، غیرخطی قدرتمندتنظیم C و gamma سخت
حافظه کم (فقط بردارهای پشتیبان)احتمال خروجی ندارد (خام)

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط