K - Nearest Neighbor Dan Support Vector Machine
K - Nearest Neighbor Dan Support Vector Machine
Konstrain : 𝑦𝑖(𝑤𝑥𝑖 + 𝑏) ≥ 1, 𝑖 = 1, …
Pada SVM ini akan menggunakan fungsi kernel pada metode SVM. Bentuk dari pembatas 2
dimensi adalah garis sedangkan untuk 3 dimensi adalah hyperplane. Hyperplane disini adalah
berupa bidang. Pengerjaan dari klasifikasi ini akan dilakukan dengan 4 jenis kernel yakni :
1. Polynomial 2 Parameter
2. Polynomial 3 Parameter
3. Radial Basis Function 1 Parameter
4. Radial Basis Function 2 Parameter
Berikut ini merupakan langkah-langkah dalam menggunakan VSM:
1. INPUT DATA
Data yang digunakan pada tugas ini adalah data fisheriris pada matlab dengan data.
Data yang digunakan merupakan data versicolor dan virginica. Berikut merupakan cara
untuk mendapatkan data fisheriris pada Matlab.
>> load fisheriris
Data yang digunakan adalah 100 data, dengan rincian 50 data versicolor dan 50 data
virginica. Berikut ini contoh data versicolor
1
Nisrina Nabella Putri_2514100107
Data yang digunakan sebagai data training adalah 40 data awal pada masing-masing
data. Data yang digunakan sebagai data testing adalah 10 data akhir pada masing-
masing data.
2. Membuat matrik K
Berikut ini rumus yang harus dimasukakan kedalam command prompt
n=length(X);
>> for i=1:n
for j=1:n
K(i,j)=((X(i,:)*X(j,:)')+1)^2;
end
end
Matriks ini akan bernilai 80x80
3. Membuat matrik Hessian
Matriks Hessian adalah perkalian matriks Kernel dengan perkalian antar label.
>> for i=1:n
for j=1:n
H(i,j)=Y(i)*Y(j)*K(i,j);
end
end
Matriks ini akan bernilai 80x80
4. Input Quadprog
Q = quadprog(H,f,A,b,Aeq,beq,LB,UB)
K : Matriks Kernel
H : Matriks Hessian
F : Fungsi tujuan
2
Nisrina Nabella Putri_2514100107
3
Nisrina Nabella Putri_2514100107
1. Polynomial 2 Parameter
[alpha, b0,nsv] = svc(X,Y,'poly',2)
[alpha, b0,nsv] =
1.0e+03 *
b0 =
-184.7409
nsv =
11
[yt,ya] = svcoutput(X,Y,P,'poly',2,alpha,b0)
yt =
1 1
1 1
1 1
4
Nisrina Nabella Putri_2514100107
1 -1
1 -1
1 -1
1 -1
-1 -1
-1 -1
-1 1
ans =
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 1
>> beda1=find(Yt'~=yt)
beda1 =
20
>> length(beda1)
ans =
5
Nisrina Nabella Putri_2514100107
2. Polynomial 3 Parameter
6
Nisrina Nabella Putri_2514100107
1 -1
1 -1
1 -1
1 -1
1 -1
1 -1
-1 -1
-1 1
>> [Yt' yt]
ans =
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 1
>> beda1=find(Yt'~=yt)
beda1 =
20
>> length(beda1)
ans =
7
Nisrina Nabella Putri_2514100107
b0 =
4.4137
nsv =
13
[yt,ya] = svcoutput(X,Y,P,'RBF',2,alpha,b0)
yt =
1 -1
1 1
1 -1
1 -1
1 -1
1 -1
1 -1
1 -1
1 -1
1 1
[Yt' yt]
ans =
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1 -1
9
Nisrina Nabella Putri_2514100107
-1 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 1
Beda2=find(Yt'~=yt)
Beda2 =
20
>> length(beda2)
ans =
1.0e+04 *
10
Nisrina Nabella Putri_2514100107
b0 =
19.2514
[yt,ya] = svcoutput(X,Y,P,'RBF',3,alpha,b0)
yt =
1
1 1
1 1
1 -1
1 1
1 -1
1 -1
1 -1
11
Nisrina Nabella Putri_2514100107
-1 -1
-1 1
-1
[Yt' yt]
ans =
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1 -1
-1 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 1
Beda3=find(Yt'~=yt)
Beda3=
20
>> length(beda3)
ans =
12
Nisrina Nabella Putri_2514100107
K-Nearest Neighbor
K-Nearest Neigbor merupakan salah satu teknik klasifikasi menggunakan data training
dan data testing. Perhitungan jarak digunakan untuk menghitung antara jarak data
testing ke data training. Perhitungan jarak yang digunakan pada tugas ini adalah jarak
Euclidean sebagai berikut :
Matlab
>> X=[meas(51:90,:);meas(101:140,:)]
>>Y=[ones(40,1);2*(ones(40,1))]
>>P=[meas(91:100,:);meas(141:150,:)]
>> kelasknn= knnclassify(P,X,Y,3)
kelasknn =
1
1
1
1
1
1
1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
Perbandingan Metode
No Poly, 1 Poly, 2 RBF, 2 RBF, 3 KNN
1 1 1 1 1 1
2 1 1 1 1 1
3 1 1 1 1 1
4 1 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1
7 1 1 1 1 1
13
Nisrina Nabella Putri_2514100107
Dari perbandingan ini, data yang mengalami missklasifikasi adalah virginica. Dari
perbandingan juga dapat dilihat metode yang baik akan menghasilkan misklasifikasi
terkecil yakni KNN(3) dengan misklasifikasi 0.
14