http://www.softscients.web.id/2018/01/classification-with-support-vector.html#more
Bagaimana cara mudah memahami Support Vector Machine?
Yup, sebelum membahas mengenai SVM, ada baiknya kamu baca link berikuthttp://www.softscients.web.id/2019/05/matlab-simple-quadratic-programing.html
kita akan kembali ke pelajaran SMA mengenai persamaan garis lurus dengan model matematika seperti berikut
Dengan m disebut dengan gradient, persamaan berikut
Kamu harus paham mengenai teori aljabar linear yang merupakan dasar-dasar pelajaran matematika.
Bila digambarkan dalam koordinat kartesius
Model Umum SVM
Kembali ke SVM yang secara umum persamaan/model SVM sederhana yaituMerupakan bidang/hyperplane yang bersifat linear. Operator (w∙x) adalah dot product. Bila w=(w0,w1 ) dan x=(x,y), maka persamaan diatas, diubah menjadi
Maka
Jika a dan c di definisikan sebagai berikut
Maka y = ax+c
Misalkan sebuah data ditampilkan sebagai berikut

Jika suatu hyperplane mempunyai nilai w=(0.4,1.0) dan b= -9. Sehingga didapatkan w0=0.4 dan w1=1.0 yang akan kita masukan kedalam persamaan SVM berikut
Maka
Sehingga
Atau
Sehingga
Bila di overlay dengan gambar diatas, akan menghasilkan

Sehingga persamaan SVM umum yaitu untuk mencari nilai w dan b. Kita akan kembali membahas mengenai link berikut
http://www.softscients.web.id/2019/05/matlab-simple-quadratic-programing.html
merupakan Quadratic Programming untuk menyelesaikan persamaan dari model matematika
Mending anda pelajari link diatas, bagaimana mengubah persamaan berikut

Agar memenuhi QP (Quadratic Programming), saya akan berikan contoh menggunakan Matlab sesuai dengan contoh data sebelumnya, kamu belajar sendiri saja cara mengubah ke QP.
kode:
dataset = [ 1,3;2,5;2,7;4,4;4,6;7,5;8,3
4,8;4,10;,7,10;8,7;9,6;,9,7;10,10
];
target = [-1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1];
%mengubah persamaan menjadi QP
n = size(dataset,2); %jumlah fitur
ell = size(dataset,1); %jumlah data
H = diag([ones(1,n) 0]);
f = zeros(1,n+1);
A = -diag(y)*[ dataset ones(ell,1)];
c = -ones(ell,1);
z = quadprog(H,f,A,c);
w = z(1:n)
b = z(n+1)
hasil:
w =
0.4444
1.1111
b =
-9.6667
Hasilnya sama, hanya sedikit perbedaan saja, Sedangkan untuk prediksi, menggunakan rumus
Kode:
prediksi = sign(dataset*w+b*ones(ell,1))
hasil:
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
Perhatikan bahwa variabel target dan prediksi akan menghasilkan nilai yang sama. Baca link berikut tentang penerapan kernel, pada kasus non linear
http://www.softscients.web.id/2019/05/kernel-function-to-machine-learning.html
Jangan lupa kalau mau beli buku terbitan penulis ya, biar makin semangat menulis postingan di blog ini.
http://www.softscients.web.id/p/portofolio_2.html
Tidak ada komentar:
Posting Komentar