Bahasa R (Kernel = Gaussian)
# Mengimpor dataset dataset = read.csv('Iklan_sosmed.csv') dataset = dataset[3:5] # Mengencode variabel dependen sebagai factor dataset$Beli = factor(dataset$Beli, levels = c(0, 1)) # Membagi dataset ke dalam Training set and Test set # install.packages('caTools') library(caTools) set.seed(123) split = sample.split(dataset$Beli, SplitRatio = 0.75) training_set = subset(dataset, split == TRUE) test_set = subset(dataset, split == FALSE) # Feature Scaling training_set[, 1:2] = scale(training_set[, 1:2]) test_set[, 1:2] = scale(test_set[, 1:2]) # Membuat model SVM terhadap Training set # install.packages('e1071') library(e1071) classifier = svm(formula = Beli ~ ., data = training_set, type = 'C-classification', kernel = 'radial') # Memprediksi hasil Test set y_pred = predict(classifier, newdata = test_set[1:2]) # Making the Confusion Matrix cm = table(test_set[, 3], y_pred) # Visualisasi model SVM terhadap Training set library(ElemStatLearn) set = training_set X1 = seq(min(set[, 1]) - 1, max(set[, 1]) + 1, by = 0.01) X2 = seq(min(set[, 2]) - 1, max(set[, 2]) + 1, by = 0.01) grid_set = expand.grid(X1, X2) colnames(grid_set) = c('Usia', 'EstimasiGaji') y_grid = predict(classifier, newdata = grid_set) plot(set[, 1:2], main = 'SVM (Training set)', xlab = 'Usia', ylab = 'Estimasi Gaji', xlim = range(X1), ylim = range(X2)) contour(X1, X2, matrix(as.numeric(y_grid), length(X1), length(X2)), add = TRUE) points(grid_set, pch = '19', col = ifelse(y_grid == 1, 'springgreen3', 'tomato')) points(set, pch = 21, bg = ifelse(set[, 3] == 1, 'green4', 'red3')) # Visualisasi model SVM terhadap Test set library(ElemStatLearn) set = test_set X1 = seq(min(set[, 1]) - 1, max(set[, 1]) + 1, by = 0.01) X2 = seq(min(set[, 2]) - 1, max(set[, 2]) + 1, by = 0.01) grid_set = expand.grid(X1, X2) colnames(grid_set) = c('Usia', 'EstimasiGaji') y_grid = predict(classifier, newdata = grid_set) plot(set[, 1:2], main = 'SVM (Test set)', xlab = 'Usia', ylab = 'Estimasi Gaji', xlim = range(X1), ylim = range(X2)) contour(X1, X2, matrix(as.numeric(y_grid), length(X1), length(X2)), add = TRUE) points(grid_set, pch = '19', col = ifelse(y_grid == 1, 'springgreen3', 'tomato')) points(set, pch = 21, bg = ifelse(set[, 3] == 1, 'green4', 'red3'))
Penjelasan:
- Semua perintah sama seperti di pembahasan bahasa R sebelumnya, yang berbeda hanya pada line 26, di mana kernel diganti dengan ‘radial’ yang artinya kita menggunakan kernel gaussian.
Sekarang kita akan melihat berapa akurasinya melalui confusion matrix:

Ternyata akurasinya cukup baik yaitu 90% dibandingkan dengan sebelumnya tanpa kernel yaitu 80%. Peningkatan yang sangat signifikan.
Sekarang mari kita lihat visualisasi model SVM dengan kernel gaussian terhadap training set:

Model SVM (kernel=gaussian) terhadap Training set.
Sekarang kita lihat visualisasi untuk Test set:

Model SVM (kernel=gaussian) terhadap Test set.
Akurasinya sangat baik, terlihat di gambar atas hanya ada 10 salah deteksi.
Dengan demikian, kita rekomendasikan kepada pemilik showroom mobil untuk mengiklankan produk SUV nya di internet pada zona hijau saja, sehingga peluang terjadinya pembelian semakin besar.
Demikian pembahasan SVM. Hal lain yang perlu diperhatikan adalah ada banyak kernel di dalam SVM. Pembaca bisa mencobanya satu demi satu hingga mendapatkan hasil yang diinginkan, karena tidak semua permasalahan hanya bisa diselesaikan dengan satu metode saja. Terkadang satu metode cocok untuk masalah A, namun tidak cocok untuk masalah B.
Semoga pembaca paham tentang SVM, kernel dan yang tidak kalah penting adalah mengerti aplikasi-aplikasi SVM.
Semoga bermanfaat.
Bisa dikasih contoh perhitungan manualnya sampai titi temu bahwa kelas tersebut masuk ke kelas -1 atau +1
terimakasih
Silakan baca referensinya (cari di bagian download) dan berlatih sendiri ya, sekalian belajar menerjemahkan rumus matematika.
Semoga menjawab
permisi pak, apakah boleh minta data setnya sebagai bahan latihan agar lebih mudah dipahami pak
Datasetnya ada di bagian download, dan dicantumkan link nya di artikel. Silakan dicek lagi.
Permisi, Pak.
Saya mau bertanya.
Apakah Support Vector Machine bisa digunakan untuk clustering?
Secara umum SVM dipakai untuk classification (klasifikasi) dan bukan clustering.
Tapi ada paper yang mencoba menggunakan SVM untuk clustering.
Saya belum pernah baca, tapi silakan dicoba metode di paper tersebut.
Semoga menjawab.
kak untuk mendowload data latih terdapat bagian mana ya?
Bisa dibaca di halaman 4, link ya ada di sana.
Permisi pak mau tanya,,,
apa metode SVM bisa mengklasifikasi objek yg bergerak atau objek dalam video??
Belum pernah coba, mungkin bisa dibaca penelitiannya di jurnal internasional.
Kenapa binary class nya digunakan bilangan +1 dan -1? Tidak menggunakan 0 dan 1 saja. Terima kasih?
Di SVM, penggunaan -1,1 lebih umum daripada 0,1