Artificial Intelligence For Learning The Basics

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy
Apa Itu Support Vector Machine?
Support Vector Machine merupakan teknik dalam Machine Learning yang digunakan untuk memisahkan data kategorikal menjadi beberapa kelas dengan cara membuat dan menentukan dimana letak hyperplane yang maksimal.
Support Vector Machine merupakan salah satu model Machine Learning yang kuat karena kemampuan model Support Vector Machine yang bisa membedakan data observasi yang sangat mirip dengan data observasi lain yang akan di kategorikan atau dipisah menjadi kelas yang berbeda.
Hal ini bisa dilakukan oleh Support Vector Machine karena model Support Vector Machine membuat hyperplane yang maksimal dari jarak antara dua vector atau data observasi yang sangat berdekatan, jarak antara dua vector yang berdekatan ini dimakan sebagai margin.
Margin yang maksimal dari kedua vector yang jika disatukan akan menciptakan dan menentukan dimana letak hyperplane yang optimal dalam memisahkan data pada model Support Vector Machine.
Rumus Support Vector Machine
- Rumus Persamaan Hyperplane
w.x + b = 0
Keterangan:
w = vector yang berbobot
x = feature (independen variabel)
b = bias
Note:
Rumus diatas adalah rumus untuk membuat hyperplane berdasarkan vector w, independen variabel dan bias yang merupakan konstanta skalar dan membantu menentukan posisi dari hyperplane tersebut.
- Dot Product
A.B = |A|cosθ * |B|
Keterangan:
|A|cosθ = projeksi vector A terhadap vector B
|B| = jarak vector B
Note:
Dot product berguna untuk mendapatkan nilai skalar dari proyeksi antara 2 vektor. Anda bisa menentukan apakah nilai skalar dari suatu data observasi adalah positif (sebelah kanan) atau negatif (sebelah kiri) dengan cara menentukan jarak dari titik awal vektor B ke hyperplane yang telah dibuat.
Jarak dari titik awal vektor B ke hyperplane yang telah dibuat bisa kita umpamakan sebagai simbol ‘s’ untuk mempermudah perhitungan dan perbandingan nilai.
- Aturan Klasifikasi
- apabila data observasi positif (+1) = w.x + b ≥ 1
- apabila data observasi negatif (-1) = w.x + b ≤ -1
Note:
Ketika nilai skalar yang didapat dari dot product lebih besar dari ‘s’, maka bisa kita katakan bahwa data observasi tersebut berada di sisi kanan hyperplane yang dimana data tersebut masuk kedalam data positif.
Sebaliknya, ketika nilai skalar yang didapat dari dot product lebih kecil dari ‘s’, maka bisa kita katakan bahwa data observasi tersebut berada di sisi kiri hyperplane yang dimana data tersebut masuk kedalam data negatif.
- Persamaan Soft Margin

Formula generated by ChatGPT
Keterangan:
||w|| = Panjang vector w
ξ = Variabel Slack
C = Hyperparameter C yang mengontrol besarnya margin dan besarnya pelanggaran margin
Note:
rumus soft margin ini berguna untuk mencari posisi atau titik optimal dari hyperplane dengan cara mengizinkan data observasi untuk melanggar margin atau berada di posisi yang salah. Misalnya data observasi positif berada di area data negatif atau data observasi negatif berada di area data positif.
Anda juga bisa mengatur besar kecilnya hyperparameter C yang bisa menentukan besar atau kecilnya margin dari hyperplane sesuai dengan kebutuhan data yang didapat.
Nilai dari hyperparameter C yang tinggi membuat margin dari hyperplane semakin kecil atau minimal, hal ini dilakukan untuk meminimalkan pelanggaran margin tetapi kekurangannya adalah model bisa menjadi overfit.
Sebaliknya dari hyperparameter C yang rendah membuat margin dari hyperplane semakin besar atau maksimal, hal ini dilakukan untuk melakukan generalisasi terhadap data observasi supaya model bisa memprediksi data baru dengan lebih baik tetapi kekurangannya adalah pelanggaran margin menjadi semakin banyak.
Kode Python Untuk Membuat Model Support Vector Machine
- Impor Librari
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
- Impor dataset
dataset = pd.read_csv(‘Social_Network_Ads.csv’)
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
- Membagi dataset menjadi training set dan 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)
- Melatih model Support Vector Regression kedalam training set
from sklearn.svm import SVC
classifier = SVC(kernel = ‘linear’, random_state = 0)
classifier.fit(X_train, y_train)
- Memprediksi hasil test set
y_pred = classifier.predict(X_test)
print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))
- Memprediksi data observasi baru
print(classifier.predict(sc.transform([[30,87000]])))
- Membuat Confusion Matrix
from sklearn.metrics import confusion_matrix, accuracy_score
cm = confusion_matrix(y_test, y_pred)
print(cm)
accuracy_score(y_test, y_pred)
- Visualisasi hasil training set
from matplotlib.colors import ListedColormap
X_set, y_set = sc.inverse_transform(X_train), y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() – 10, stop = X_set[:, 0].max() + 10, step = 0.25),
np.arange(start = X_set[:, 1].min() – 1000, stop = X_set[:, 1].max() + 1000, step = 0.25))
plt.contourf(X1, X2, classifier.predict(sc.transform(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(‘Age’)
plt.ylabel(‘Estimated Salary’)
plt.legend()
plt.show()

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy
- Visualisasi hasil test set
from matplotlib.colors import ListedColormap
X_set, y_set = sc.inverse_transform(X_test), y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() – 10, stop = X_set[:, 0].max() + 10, step = 0.25),
np.arange(start = X_set[:, 1].min() – 1000, stop = X_set[:, 1].max() + 1000, step = 0.25))
plt.contourf(X1, X2, classifier.predict(sc.transform(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(‘Age’)
plt.ylabel(‘Estimated Salary’)
plt.legend()
plt.show()

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy
Setelah membaca materi yang telah disampaikan diatas, Anda bisa mengetahui apa itu Support Vector Machine, bagaimana cara kerjanya, apa rumus yang harus diperhatikan dalam model Support Vector Regression dan bagaimana cara membuat modelnya dengan kode pyhton sehingga Anda bisa memprediksi suatu data linear maupun non-linear.
Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai K-Nearest Neighbor dan blog kami selanjutnya mengenai kernel Support Vector Machine.
[…] Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai Logistic Regression dan blog kami selanjutnya mengenai Support Vector Machine. […]
[…] Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai Support Vector Machine. Nantikan konten blog kami selanjutnya yang ga kalah […]
Just wish to say your article is as surprising The clearness in your post is just cool and i could assume youre an expert on this subject Fine with your permission allow me to grab your RSS feed to keep updated with forthcoming post Thanks a million and please keep up the enjoyable work
Thank you for the auspicious writeup It in fact was a amusement account it Look advanced to far added agreeable from you However how can we communicate
Great article! I really appreciate the way you explained everything so clearly – it feels like you put a lot of effort into making it useful for readers. I’ve been exploring different tools and resources myself, and recently started using https://webdesignfreelancermunchen.de/ by Abdul, professional webdesigner in bamberg. It’s been a game changer for me, and reading your post actually gave me even more ideas on how to apply it. Thanks for sharing such valuable insights!
ffwin3, you say? Had a quick peek. Not bad, not bad at all. Worth a look if you’re hunting for something new. Check out ffwin3 and tell me what you think.
Goal11casino caught my eye with their promotions. Gave it a spin, and the platform is smoother than I expected. Worth a shot if you’re looking for something new to play. Check it out here: goal11casino
Been having some fun with jjwinbet lately. It seems like a really trust worthy site, I can’t complain! jjwinbet
W88is… hmmm, sounds familiar. I think I saw some ads for them. Is it just me, or does anyone else find their website kinda confusing? Anyway, take a peek yourself! w88is.
Yo fam, f888daga is lit The site is smooth, the games are diverse, and the bonuses keep coming I’m having a blast there Seriously, give it a whirl f888daga
Hey everyone, gamewin55club is seriously impressive Great selection of games, smooth interface, and overall a solid experience If you’re looking for a new place to game, this is it gamewin55club
What’s up gamers bj388dev has got some serious heat The graphics are awesome, the gameplay is smooth, and the chances to win are real Check it out, you wont be disappointed bj388dev
gperya https://www.zgperya.org
your article is amazing, i enjoy reading it, i want you to add me as your followers, how often do you post ? my blog is the top growing directory platform in germany, lokando24.de you can check it out. Thank you
wow your article is simply a masterpiece, i like that, keep it up and will be checking for new update. do you post often? you can check the biggest webdesign freelancer in platform in germany called https://webdesignfreelancerfrankfurt.de/ Thank you for your wonderful post
222wincasino, eh? They got a good selection of games. I played some roulette and actually won some! Pretty cool site. 222wincasino
Galera da vbetbr, uma dúvida! Qual o jogo que tá pagando mais por lá ultimamente? Tô precisando de uma grana extra urgente! vbetbr
Had a little trouble with the f12betlogin at first, but once I got in, it was smooth sailing. Just make sure you remember your password, haha! Check it: f12betlogin