مهمترین الگوریتمهای یادگیری ماشین (به همراه کدهای پایتون و R) – بخش پنجم: SVM
این یک روش کلاسبندی است. در این الگوریتم آیتم دادهای به عنوان یک نقطه در فضای n-بعدی (که n تعداد ویژگیهای موجود است) تعیین میشود و مقدار هر ویژگی همان مقدار مختصات مربوطه است.
برای نمونه فرض کنید تنها دو ویژگی داشته باشیم مثلاً قد و طول موی فرد. نخست این دو متغیر را در فضای دوبعدی ترسیم میکنیم که هر نقطه دو مختصات دارد (این مختصات به نام بردارهای پشتیبان نامیده میشوند).
اینک خطوطی را که دادهها را بین دو گروه کلاسبندی شده مختلف از دادهها افراز میکنند مییابیم. این خطوط باید چنان باشند که از نزدیکترین نقطه در هر دو گروه در بیشترین فاصله باشند.
در نمونهای که در بالا میبینید، خطی که دادهها را به دو گروه مختلف کلاسبندی شده افراز میکند، خط سیاه است. این خط در دورترین نقطه از نزدیکترین نقاط دو کلاس قرار دارد. این خط راهنمای کلاسبندی کننده ماست. پس از مشخص شدن این خط، بسته به این که دادههای تست شونده در کدام سمت خط قرار بگیرند، ما دادههای جدید را بر اساس آن کلاسبندی میکنیم.
این الگوریتم همانند بازی Jezzball در محیطی n-بعدی است. ترفندهای این بازی موارد زیر هستند:
- میتوانید در هر زاویهای خط/صفحه ترسیم کنید (برخلاف بازی کلاسیک که تنها به صورت افقی یا عمودی میشد عمل کرد)
- هدف بازی جداسازی توپهای با رنگهای مختلف در اتاقهای متفاوت است.
- و توپها متحرک نیستند.
کد پایتون
#Import Library
from sklearn import svm
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object
model = svm.svc() # there is various option associated with it, this is simple for classification. # ؤء
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
کد R
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
در بخش بعدی این سلسله مطالب شما را با الگوریتم بیزی ساده آشنا میکنیم.