Support Vector Regression(SVR): R ile Uygulama

Merhaba. Bu yazımızda serinin 11’inci yazısında Python ile yaptığımız SVR uygulamasını R ile yapacağız. Çalışma diznini ayarlayıp veri setini indirelim. Veriyi buradan indirebilirsiniz:

setwd('Sizin_Calisma_Dizniniz')
dataset = read.csv('PozisyonSeviyeMaas.csv')

Burada e1071 paketini kullanacağız. Yüklü değil ise indirip yükleyelim:

install.packages('e1071')
library(e1071)

Veri setinden Pozisyon açıklamasını çıkaralım:

dataset = dataset[2:3]

Modelimizi oluşturalım:

regressor = svm(formula = Maas ~ ., data = dataset, type = 'eps-regression')

İlk parametremiz regresyon eşitliği, ikinci parametre kullanılacak veri seti, üçüncü parametre ise regresyon tipi. Support Vector Machine algoritması sınıflandırma için de kullanıldığından burada regresyon türünü eps-regression seçiyoruz. Bir nevi SVR.  Modelimizi oluşturduk ve veri seti (dataset) ile eğittik. Şimdi bir tahmin yapalım:

y_pred = predict(regressor, data.frame(Seviye = 6.5))
y_pred

Sonuç: 177861.1  gibi iyi bir tahmin. Grafiğini de çizelim. Bakalım sonuç tesadüfen mi böyle iyi olmuş? Grafik için yine meşhur ggplot2 paketini kullanıyoruz.

library(ggplot2)
ggplot() +
   geom_point(aes(x = dataset$Seviye, y = dataset$Maas),
   colour = 'red') +
   geom_line(aes(x = dataset$Seviye, y = predict(regressor, newdata = dataset)),
   colour = 'blue') +
   ggtitle('SVR Modeli') +
   xlab('Seviye') +
   ylab('Maas')

Evet grafikten de gördüğümüz gibi model veriyi iyi temsil ediyor görünüyor. Burada son değer yine aykırı kabul edilmiş ve ona uyum sağlama ihtiyacı hissedilmemiş. Ayrıca R ile SVR yaparken feature scaling yapmadığımıza dikkat edelim. Python bu konuda epey uğraştırmıştı bizi.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir