Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id
Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link
Kalian bisa lanjut baca di http://softscients.com/2020/03/26/buku-belajar-machine-learning-dengan-matlab-support-vector-machine/
Kalian bisa lanjut baca di http://softscients.com/2020/03/26/buku-belajar-machine-learning-dengan-matlab-support-vector-machine/
Sinopsis
Kali ini kalian akan belajar mengenai Machine Learning dengan metode Support Vector Machine. Kalian akan pelajari secara mudah sekali mengenai vector machine secara langkah demi langkah. Pembahasan ini didasari atas pertanyaan masuk ke email mengenai link berikut
http://www.softscients.web.id/2018/01/classification-with-support-vector.html#moreBagaimana cara mudah memahami Support Vector Machine?
Yup, sebelum membahas mengenai SVM, ada baiknya kamu baca link berikut
http://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
$$y=mx+b$$
Dengan m disebut dengan gradient, persamaan berikut
$$y=2x+1$$
Kamu harus paham mengenai teori aljabar linear yang merupakan dasar-dasar pelajaran matematika.
Bila digambarkan dalam koordinat kartesius
ref: wikipedia/linear_programming
Model Umum SVM
Kembali ke SVM yang secara umum persamaan/model SVM sederhana yaitu$$w \bullet x+b=0$$
$$w_0x+w_1y+b=0$$
maka
$$w_1y=-w_0x-b$$
$$y=-\frac{w_0}{w_1}x-\frac{b}{w_1}$$
Jika a dan c di definisikan sebagai berikut
$$a=-\frac{w_0}{w_1}$$
dan
$$c=-\frac{b}{w_1}$$
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
$$w \bullet x+b=0$$
Maka
$$w_0x+w_1y+b=0$$
Sehingga
$$0.4x+1y-9=0$$
Atau
$$y=-\frac{w_0}{w_1} x - \frac{b}{w_1}$$
Sehingga
$$y=-\frac{0.4}{1}x-\frac{-9}{1}$$
$$y=-0.4x+9$$
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(target)*[ 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
$$h=sign(w \bullet x +b) $$
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.
Support Vector Machine dengan Matlab
Untuk SVM dengan Matlab, kalian bisa menggunakan function fitsvmclc;clear all;close all;
%SVM dengan Matlab
X = [ 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
];
y = [-1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1];
model = fitcsvm(X,y,'KernelFunction','linear','ClassNames',[-1,1]);
Untuk mendapatkan nilai \(w\) dan \(b\) yaitu
%bobot dan bias
w = model.Beta
b = model.Bias
Hasil
w =
0.4443
1.1108
b =
-9.6637
Nilainya hampir sama kan antara menggunakan Quadratic Programming dengan SVM bawaan Matlab untuk nilai \(w\) dan \(b\), untuk melakukan prediksi bisa dengan menggunakan persamaan SVM seperti \(y=wx+b\) ataupun menggunakan function \(predict\)
%menggunakan persamaan umum SVM
rumussvm = @(x) sign(dot(w,x)+b);
%contoh dataset yang akan digunakan
no_dataset = 10
data_sample = X(no_dataset,:)
prediksi_svm_umum = rumussvm(data_sample)
prediksi_svm_matlab = predict(model,data_sample)
Hasil
no_dataset =
10
data_sample =
7 10
prediksi_svm_umum =
1
prediksi_svm_matlab =
1
Support Vector Machine non Linear Dataset
Perhatikan dataset_xy berikut yang tercluster ditengah dan dibagian pinggir, X Y Kelas
__________ __________ _____
-0.29911 0.57233 -1
-0.83648 -0.1436 -1
0.0080639 -0.0070249 -1
-0.34317 0.42961 -1
0.32155 -0.20824 -1
-0.21707 -0.21265 -1
0.42945 0.042832 -1
0.53101 -0.25217 -1
-0.22858 -0.58696 -1
0.73394 -0.012347 -1
0.30354 0.57189 -1
0.53904 0.62822 -1
0.41222 -0.18582 -1
-0.30733 -0.88525 -1
0.15146 0.066678 -1
0.028101 -0.81834 -1
0.015731 -0.6458 -1
0.66172 -0.34758 -1
-0.089699 -0.36379 -1
0.31616 0.31328 -1
0.88787 0.11148 -1
0.97069 0.16132 -1
0.55101 0.099047 -1
0.019807 0.83182 -1
0.59686 -0.72122 -1
-0.91782 -0.22849 -1
-0.27571 -0.09502 -1
0.10801 -0.16549 -1
0.29291 0.28988 -1
-0.17087 0.92138 -1
-0.26917 -0.16092 -1
0.63712 -0.12322 -1
-0.90764 -0.36617 -1
0.72518 0.085356 -1
0.26018 -0.79005 -1
0.059975 0.5585 -1
0.29095 -0.77579 -1
-0.69603 0.59175 -1
0.088499 -0.10226 -1
-0.015663 -0.86597 -1
-0.93297 -0.34413 -1
0.56606 0.65402 -1
0.49248 0.19469 -1
0.64247 0.61361 -1
0.30878 0.088767 -1
0.52232 0.41842 -1
0.14492 0.94212 -1
-0.12488 -0.52728 -1
-0.49913 -0.19659 -1
0.35947 0.028418 -1
0.12518 0.060811 -1
0.80656 -0.16821 -1
-0.41856 -0.19089 -1
0.14907 0.49328 -1
-0.010245 0.70105 -1
-0.0089591 -0.23083 -1
0.25474 0.7136 -1
-0.33408 -0.1874 -1
0.75408 -0.14375 -1
0.47811 -0.68642 -1
0.020392 0.31925 -1
-0.64298 0.025183 -1
-0.60761 -0.57027 -1
0.30642 -0.56594 -1
0.12354 0.18626 -1
0.72707 0.085249 -1
0.73715 0.347 -1
-0.71492 0.061488 -1
-0.76295 -0.60208 -1
-0.69531 -0.32108 -1
-0.39038 0.8666 -1
0.36983 -0.026498 -1
-0.32732 -0.17927 -1
-0.65556 0.61452 -1
-0.59858 -0.19844 -1
-0.011919 -0.40646 -1
-0.46803 -0.8417 -1
-0.055201 0.58713 -1
0.79231 0.35078 -1
-0.5836 0.62081 -1
-0.64458 -0.68397 -1
0.19556 0.76513 -1
0.015003 -0.86644 -1
0.53981 0.23981 -1
-0.033649 0.51846 -1
0.31925 -0.89105 -1
0.22768 0.6134 -1
-0.62868 -0.75472 -1
-0.80475 -0.12575 -1
0.70211 -0.35881 -1
-0.028268 0.33756 -1
0.89192 0.39238 -1
-0.062847 -0.6678 -1
0.10563 -0.75315 -1
0.53466 -0.34969 -1
0.44305 -0.20182 -1
0.94681 0.083211 -1
0.074301 0.75376 -1
-0.039789 -0.035877 -1
0.74562 -0.24737 -1
0.74362 -1.8159 1
1.1551 -1.1557 1
-0.73048 -1.7925 1
-1.5497 -0.72324 1
0.78172 1.2486 1
-1.534 0.32391 1
-0.94421 1.3861 1
0.25419 1.6075 1
-1.6246 -1.0673 1
-0.73909 1.7916 1
1.2783 -0.74193 1
1.6628 -1.0606 1
-0.055157 1.2324 1
0.90061 0.75358 1
0.41579 1.1101 1
-1.5865 0.0041451 1
-0.13841 -1.0225 1
0.50909 1.8933 1
0.023053 1.8657 1
0.60954 -0.82068 1
-1.0675 0.62368 1
-1.0499 -0.94551 1
0.12091 1.174 1
1.4844 1.1068 1
-1.4192 -0.14187 1
-1.9344 0.27976 1
0.95139 1.3568 1
-1.3752 -1.3211 1
-1.8085 -0.51325 1
-1.0922 -1.5885 1
0.94895 1.2162 1
0.015594 -1.6244 1
0.32197 1.8144 1
-1.3527 -0.16529 1
0.34574 -1.5334 1
1.6561 0.2339 1
-0.46079 0.91338 1
1.1636 -1.1944 1
0.85034 -1.2562 1
-1.7962 -0.44247 1
0.93299 -1.037 1
1.8234 -0.59491 1
0.7636 -1.4665 1
0.75808 -0.98861 1
1.4923 1.0663 1
-0.97867 -1.3705 1
-0.31034 -1.0322 1
-1.157 -0.96013 1
0.53453 -1.6588 1
1.8924 0.41766 1
0.1269 -0.99252 1
-0.2271 -1.9694 1
-0.088874 1.4567 1
-0.087929 1.9783 1
-1.1305 -1.2394 1
-1.0524 1.5424 1
0.47627 -1.5803 1
-1.602 0.56376 1
0.27841 -1.3339 1
1.6585 -0.099409 1
-0.55977 1.7137 1
1.1775 1.4793 1
1.4706 -1.0501 1
-1.6994 -0.45412 1
1.8718 -0.2996 1
-0.91708 -1.0616 1
1.7343 -0.066364 1
-1.47 -0.43782 1
-1.4449 -0.24214 1
0.98507 1.1234 1
-0.91519 1.1691 1
1.3783 0.22913 1
0.90353 1.4316 1
-0.041484 -1.513 1
1.9442 0.37595 1
-1.1644 1.2952 1
0.81946 -0.96135 1
-0.53217 -1.4131 1
-0.51665 -1.3278 1
0.69272 1.7068 1
-1.7822 0.68106 1
-1.679 -0.9448 1
1.725 -0.11123 1
0.38428 1.2896 1
0.018881 1.3254 1
-0.14427 1.8825 1
0.0017411 -1.6072 1
-1.7786 0.49289 1
1.5441 0.57716 1
-1.7861 -0.095666 1
0.37857 1.5536 1
0.54723 -1.7359 1
-0.48208 1.573 1
1.525 0.26721 1
-1.1857 -0.78882 1
0.61029 -0.91224 1
-1.0712 0.99313 1
-0.0009909 -1.113 1
-1.9822 -0.13899 1
-1.202 -0.31629 1
Kalau kalian paksakan untuk dicari menggunakan Quadratic Programming, maka akan menghasilkan Non Feasible
%mengubah persamaan menjadi QP
n = size(dataset_xy,2); %jumlah fitur
ell = size(dataset_xy,1); %jumlah data
H = diag([ones(1,n) 0]);
f = zeros(1,n+1);
A = -diag(target)*[dataset_xy ones(ell,1)];
c = -ones(ell,1);
z = quadprog(H,f,A,c);
w = z(1:n)
b = z(n+1)
Hasil
No feasible solution found.
quadprog stopped because it was unable to find a point that satisfies
the constraints within the default value of the constraint tolerance.
<stopping criteria details>
w =
-0.1165
-0.0014
b =
5.2960e-04
Karena tidak akan mungkin dipisahkan dataset diatas hanya menggunakan persamaan garis lurus sumbu x dan y saja, oleh karena hal tersebut harus kalian tambahkan sumbu z dengan melibatkan radial basis function
%anonimous function rbf
kernel = @(a) exp(-1*sum(a.^2,2)); %cara kedua
Z = kernel(dataset_xy);
Sehingga datasetnya menjadi berikut terdapat sumbu Z (menjadi 3 sumbu)
X Y Z KELAS
__________ __________ ________ _____
-0.29911 0.57233 0.65901 -1
-0.83648 -0.1436 0.48659 -1
0.0080639 -0.0070249 0.99989 -1
-0.34317 0.42961 0.73909 -1
0.32155 -0.20824 0.8635 -1
-0.21707 -0.21265 0.9118 -1
0.42945 0.042832 0.83006 -1
0.53101 -0.25217 0.70782 -1
-0.22858 -0.58696 0.67249 -1
0.73394 -0.012347 0.58344 -1
0.30354 0.57189 0.65758 -1
0.53904 0.62822 0.50398 -1
0.41222 -0.18582 0.81509 -1
-0.30733 -0.88525 0.41556 -1
0.15146 0.066678 0.97298 -1
0.028101 -0.81834 0.51147 -1
0.015731 -0.6458 0.65882 -1
0.66172 -0.34758 0.57196 -1
-0.089699 -0.36379 0.86902 -1
0.31616 0.31328 0.82029 -1
0.88787 0.11148 0.44899 -1
0.97069 0.16132 0.37974 -1
0.55101 0.099047 0.73094 -1
0.019807 0.83182 0.50041 -1
0.59686 -0.72122 0.41628 -1
-0.91782 -0.22849 0.40877 -1
-0.27571 -0.09502 0.91847 -1
0.10801 -0.16549 0.9617 -1
0.29291 0.28988 0.84381 -1
-0.17087 0.92138 0.41555 -1
-0.26917 -0.16092 0.90633 -1
0.63712 -0.12322 0.65632 -1
-0.90764 -0.36617 0.3837 -1
0.72518 0.085356 0.58674 -1
0.26018 -0.79005 0.50064 -1
0.059975 0.5585 0.72941 -1
0.29095 -0.77579 0.50333 -1
-0.69603 0.59175 0.43404 -1
0.088499 -0.10226 0.98188 -1
-0.015663 -0.86597 0.4723 -1
-0.93297 -0.34413 0.372 -1
0.56606 0.65402 0.47323 -1
0.49248 0.19469 0.75545 -1
0.64247 0.61361 0.45417 -1
0.30878 0.088767 0.90192 -1
0.52232 0.41842 0.63897 -1
0.14492 0.94212 0.40309 -1
-0.12488 -0.52728 0.74556 -1
-0.49913 -0.19659 0.74993 -1
0.35947 0.028418 0.87807 -1
0.12518 0.060811 0.98082 -1
0.80656 -0.16821 0.50721 -1
-0.41856 -0.19089 0.80927 -1
0.14907 0.49328 0.76679 -1
-0.010245 0.70105 0.61166 -1
-0.0089591 -0.23083 0.94804 -1
0.25474 0.7136 0.5632 -1
-0.33408 -0.1874 0.86353 -1
0.75408 -0.14375 0.55471 -1
0.47811 -0.68642 0.49671 -1
0.020392 0.31925 0.90273 -1
-0.64298 0.025183 0.66096 -1
-0.60761 -0.57027 0.49937 -1
0.30642 -0.56594 0.66088 -1
0.12354 0.18626 0.95127 -1
0.72707 0.085249 0.58514 -1
0.73715 0.347 0.51489 -1
-0.71492 0.061488 0.59757 -1
-0.76295 -0.60208 0.38884 -1
-0.69531 -0.32108 0.55624 -1
-0.39038 0.8666 0.40519 -1
0.36983 -0.026498 0.87156 -1
-0.32732 -0.17927 0.86999 -1
-0.65556 0.61452 0.44602 -1
-0.59858 -0.19844 0.67188 -1
-0.011919 -0.40646 0.84759 -1
-0.46803 -0.8417 0.39554 -1
-0.055201 0.58713 0.70626 -1
0.79231 0.35078 0.47198 -1
-0.5836 0.62081 0.48384 -1
-0.64458 -0.68397 0.41341 -1
0.19556 0.76513 0.53597 -1
0.015003 -0.86644 0.47192 -1
0.53981 0.23981 0.70546 -1
-0.033649 0.51846 0.76343 -1
0.31925 -0.89105 0.40825 -1
0.22768 0.6134 0.65175 -1
-0.62868 -0.75472 0.38104 -1
-0.80475 -0.12575 0.51508 -1
0.70211 -0.35881 0.53703 -1
-0.028268 0.33756 0.89159 -1
0.89192 0.39238 0.38694 -1
-0.062847 -0.6678 0.63768 -1
0.10563 -0.75315 0.5608 -1
0.53466 -0.34969 0.66489 -1
0.44305 -0.20182 0.78897 -1
0.94681 0.083211 0.4052 -1
0.074301 0.75376 0.56345 -1
-0.039789 -0.035877 0.99713 -1
0.74562 -0.24737 0.53948 -1
0.74362 -1.8159 0.021268 1
1.1551 -1.1557 0.069255 1
-0.73048 -1.7925 0.023593 1
-1.5497 -0.72324 0.053681 1
0.78172 1.2486 0.11417 1
-1.534 0.32391 0.085608 1
-0.94421 1.3861 0.060029 1
0.25419 1.6075 0.070747 1
-1.6246 -1.0673 0.022856 1
-0.73909 1.7916 0.023372 1
1.2783 -0.74193 0.11252 1
1.6628 -1.0606 0.02045 1
-0.055157 1.2324 0.2183 1
0.90061 0.75358 0.25183 1
0.41579 1.1101 0.24531 1
-1.5865 0.0041451 0.080702 1
-0.13841 -1.0225 0.34487 1
0.50909 1.8933 0.02141 1
0.023053 1.8657 0.030766 1
0.60954 -0.82068 0.35167 1
-1.0675 0.62368 0.21684 1
-1.0499 -0.94551 0.13585 1
0.12091 1.174 0.24833 1
1.4844 1.1068 0.032436 1
-1.4192 -0.14187 0.13078 1
-1.9344 0.27976 0.021921 1
0.95139 1.3568 0.064181 1
-1.3752 -1.3211 0.026344 1
-1.8085 -0.51325 0.029182 1
-1.0922 -1.5885 0.024327 1
0.94895 1.2162 0.092584 1
0.015594 -1.6244 0.07143 1
0.32197 1.8144 0.033513 1
-1.3527 -0.16529 0.15612 1
0.34574 -1.5334 0.084521 1
1.6561 0.2339 0.060973 1
-0.46079 0.91338 0.35113 1
1.1636 -1.1944 0.062011 1
0.85034 -1.2562 0.10016 1
-1.7962 -0.44247 0.032644 1
0.93299 -1.037 0.14288 1
1.8234 -0.59491 0.025257 1
0.7636 -1.4665 0.064987 1
0.75808 -0.98861 0.21182 1
1.4923 1.0663 0.034604 1
-0.97867 -1.3705 0.058654 1
-0.31034 -1.0322 0.31295 1
-1.157 -0.96013 0.10429 1
0.53453 -1.6588 0.047969 1
1.8924 0.41766 0.023382 1
0.1269 -0.99252 0.36744 1
-0.2271 -1.9694 0.019638 1
-0.088874 1.4567 0.11887 1
-0.087929 1.9783 0.019814 1
-1.1305 -1.2394 0.059956 1
-1.0524 1.5424 0.030607 1
0.47627 -1.5803 0.065603 1
-1.602 0.56376 0.055898 1
0.27841 -1.3339 0.15618 1
1.6585 -0.099409 0.06326 1
-0.55977 1.7137 0.038772 1
1.1775 1.4793 0.028017 1
1.4706 -1.0501 0.038188 1
-1.6994 -0.45412 0.045313 1
1.8718 -0.2996 0.027504 1
-0.91708 -1.0616 0.13973 1
1.7343 -0.066364 0.049175 1
-1.47 -0.43782 0.095119 1
-1.4449 -0.24214 0.11691 1
0.98507 1.1234 0.10727 1
-0.91519 1.1691 0.11031 1
1.3783 0.22913 0.14197 1
0.90353 1.4316 0.05694 1
-0.041484 -1.513 0.10119 1
1.9442 0.37595 0.019813 1
-1.1644 1.2952 0.048152 1
0.81946 -0.96135 0.20276 1
-0.53217 -1.4131 0.10227 1
-0.51665 -1.3278 0.13133 1
0.69272 1.7068 0.033611 1
-1.7822 0.68106 0.026252 1
-1.679 -0.9448 0.02444 1
1.725 -0.11123 0.05038 1
0.38428 1.2896 0.16355 1
0.018881 1.3254 0.17254 1
-0.14427 1.8825 0.028306 1
0.0017411 -1.6072 0.075536 1
-1.7786 0.49289 0.033158 1
1.5441 0.57716 0.066042 1
-1.7861 -0.095666 0.040786 1
0.37857 1.5536 0.077534 1
0.54723 -1.7359 0.036419 1
-0.48208 1.573 0.066765 1
1.525 0.26721 0.090979 1
-1.1857 -0.78882 0.13159 1
0.61029 -0.91224 0.2998 1
-1.0712 0.99313 0.11839 1
-0.0009909 -1.113 0.28971 1
-1.9822 -0.13899 0.019285 1
-1.202 -0.31629 0.21335 1
Kalian bisa plotkan menggunakan scatter3
Biar saya putar agar lebih jelas
Kalian bisa melihat, dengan menarik garis lurus pada sumbu Z maka dataset tersebut akan terpisah dengan baik yang menghasilkan nilai sebagai berikut menggunakan Quadratic Programming
%mengubah persamaan menjadi QP
XYZ = [dataset_xy,Z];
n = size(XYZ,2); %jumlah fitur
ell = size(XYZ,1); %jumlah data
H = diag([ones(1,n) 0]);
f = zeros(1,n+1);
A = -diag(target)*[XYZ ones(ell,1)];
c = -ones(ell,1);
z = quadprog(H,f,A,c);
w = z(1:n)
b = z(n+1)
Hasilnya
w =
0.7735
-0.8910
-132.0126
>> b
b =
48.5237
Sehingga w mempunyai panjang 3 sesuai dengan jumlah parameter input yaitu (dataset_xyz) X, Y, dan Z. Kalian bisa coba dengan persamaan rumus SVM
X Y Z KELAS
__________ __________ ________ _____
-0.29911 0.57233 0.65901 -1
Dengan rumus
rumussvm=@(x,w,b) sign(dot(x,w)+b);
data_sample = dataset_xyz(1,:)
prediksi = rumussvm(data_sample,w,b)
Hasil
data_sample =
-0.2991 0.5723 0.6590
prediksi =
-1
Hasilnya telah sesuai, tapi untuk menggambarkan persamaan garis lurus diatas (hyperplane), akan sulit sekali dalam versi 3 dimensi.
Support Vector Machine dengan RBF di Matlab
Nah untuk versi di Matlab, kalian harus menyertakan jenis kernel menggunakan rbf yaituRef: https://www.mathworks.com/help/stats/support-vector-machines-for-binary-classification.html
Ref: https://www.mathworks.com/matlabcentral/answers/96276-how-does-svmtrain-determine-polynomial-and-rbf-kernel-parameters-gamma-c-in-the-bioinformatics-too
Kalian hanya perlu memasukan dataset_xy bukan dataset_xyz
model = fitcsvm(dataset_xy,target,'KernelFunction','rbf','ClassNames',[-1,1]);
Sedangkan untuk prediksi
%untuk memporediksi yaitu
no_dataset = 10
data_sample = dataset_xy(no_dataset,:)
prediksi_svm_matlab = predict(model,data_sample)
Sedangkan untuk bias dan bobotnya gimana? Ini yang agak susah, saya pun belum begitu paham, tapi yang pasti kalian akan mendapatkan dataset support vector dari sebuah model diatas yaitu
>> model
model =
ClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [-1 1]
ScoreTransform: 'none'
NumObservations: 200
Alpha: [46×1 double]
Bias: 0.7245
KernelParameters: [1×1 struct]
BoxConstraints: [200×1 double]
ConvergenceInfo: [1×1 struct]
IsSupportVector: [200×1 logical]
Solver: 'SMO'
Properties, Methods
Kalian bisa plot dataset support vector yaitu
model.SupportVectors
ans =
-0.3073 -0.8852
0.9707 0.1613
0.0198 0.8318
0.5969 -0.7212
-0.9178 -0.2285
-0.1709 0.9214
-0.9076 -0.3662
0.2602 -0.7901
0.2909 -0.7758
-0.6960 0.5917
-0.9330 -0.3441
0.6425 0.6136
0.1449 0.9421
0.4781 -0.6864
-0.7630 -0.6021
-0.3904 0.8666
-0.6556 0.6145
-0.4680 -0.8417
0.0150 -0.8664
0.3192 -0.8910
-0.6287 -0.7547
0.8919 0.3924
0.9468 0.0832
-0.0552 1.2324
0.9006 0.7536
0.4158 1.1101
-0.1384 -1.0225
0.6095 -0.8207
-1.0675 0.6237
-1.0499 -0.9455
0.1209 1.1740
-1.3527 -0.1653
-0.4608 0.9134
0.7581 -0.9886
-0.3103 -1.0322
0.1269 -0.9925
-0.9171 -1.0616
1.3783 0.2291
0.8195 -0.9613
-0.5167 -1.3278
0.0189 1.3254
1.5250 0.2672
-1.1857 -0.7888
0.6103 -0.9122
-1.0712 0.9931
-0.0010 -1.1130
-1.2020 -0.3163
Yang bila diplotkan bersama-sama menghasilkan berikut (bulatan hijau merupakan support vector-nya)
Belajar jaringan syaraf tiruan dengan matlab
No comments:
Post a Comment