Bahasa Python (Kernel = Gaussian)
# Mengimpor library
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Mengimpor dataset
dataset = pd.read_csv('Iklan_sosmed.csv')
X = dataset.iloc[:, [2, 3]].values
y = dataset.iloc[:, 4].values
# Menjadi dataset ke dalam Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
# Membuat model SVM terhadap Training set
from sklearn.svm import SVC
classifier = SVC(kernel = 'rbf', random_state = 0)
classifier.fit(X_train, y_train)
# Memprediksi hasil test set
y_pred = classifier.predict(X_test)
# Membuat confusion matrix
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
# Visualisasi hasil model SVM dari Training set
from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('SVM (Training set)')
plt.xlabel('Usia')
plt.ylabel('Estimasi Gaji')
plt.legend()
plt.show()
# Visualisasi model SVM terhadap Test set
from matplotlib.colors import ListedColormap
X_set, y_set = X_test, y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('SVM (Test set)')
plt.xlabel('Usia')
plt.ylabel('Estimasi Gaji')
plt.legend()
plt.show()
Penjelasan:
- Semua perintah sama dengan pembahasan pada bahasa Python sebelumnya, yang berbeda hanya pada line 23, di mana kita pilih kernelnya ‘rbf’, yang merupakan kernel gaussian.
Sekarang kita lihat confusion matriks terhadap test setnya:

Ternyata akurasinya sangat tinggi, sebesar 93% dan lebih tinggi dibanding sebelumnya tanpa kernel yaitu 90%!
Sekarang kita lihat visualisasi model untuk training set:

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

Model SVM (kernel=gaussian) terhadap Test set.
Terlihat hanya ada 7 yang salah deteksi. Selain itu, jika dibandingkan dengan algoritma yang lain, penggunaan SVM dengan kernel gaussian memberikan zona hijau yang jauh lebih besar.
Dengan demikian kita rekomendasikan agar pemilik showroom mobil mengiklankan mobil SUV nya di zona hijau ini agar efektif.
Untuk membaca halaman selanjutnya, silakan klik tombol di bawah ini:

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
misalnya di library sklearn, svm bisa menambahkan parameter C, dan juga parameter C ini (yang adalah selain kernel) jika digunakan dapat digunakan untuk mencari metode terbaik dengan grid search sebagai caranya yaitu kombinasi antara C dan juga kernel., di pembahasan ini, kenapa seperti tidak menambahkan pembahasan tentang parameter C maupun perhitungan manual seperti SVM dengan tulis tangan?
Di artikel ini yang dibahas adalah dasarnya SVM jadi belum sampai ke hyperparameter tuning seperti menggunakan grid search.