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.