Klasifikasi
Klasifikasi Klasifikasi merupakan suatu pekerjaan menilai objek data untuk memasukkannya ke dalam kelas tertentu dari sejumlah kelas yang tersedia (Eko Prassetyo,2012). Klasifikasi merupakan pekerjaan yang melakukan pelatihan terhadap fungsi target f yang memetakan setiap set attribut x ke satu dari sejumlah label kelas y yang tersedia.
Pekerjaan Klasifikasi Pembangunan model sebagai prototipe untuk disimpan sebagai memory. Penggunaan model untuk melakukan pengenalan/klasifikasi/prediksi pada suatu objek data lain agar diketahui di kelas mana objek data tersebut berada berdasarkan model yang ada.
Pekerjaan Klasifikasi Input Data training(x,y) Algoritma Pelatihan Pembangunan Model Penerapan Model Output Data testing (x,y) Input Data testing (x)
Algoritma Pelatihan Pembangunan model selama proses pelatihan memerlukan algoritma (algoritma pelatihan,K-Nearest Neighbor,Artificial Neural Network,Support Vector Machine) Berdasarkan cara pelatihan: Eager learner Melakukan pembacaan pd data training untuk menghasilkan model. Proses prediksi dilakukan dengan model tsb. (contoh ANN,SVM,Decision Tree,Bayesian) Lazy learner Sedikit melakukan pelatihan(tdk sama sekali) hanya menyimpan sebagian/seluruh data latih kemudian menggunakannya dlm proses prediksi (contoh K-Nearest Neighbour,Fuzzy K-NN,Regresi Linear)
Nearest Neighbor(K-NN) Merupakan algoritma yang melakukan klasifikasi berdasarkan kedekatan lokasi(jarak) suatu data dengan data lainnya. K menyatakan jumlah tetangga terdekat. Jarak Euclidean
kNN menentukan kelas suatu objek data baru(data testing) dengan cara mencari pada kelompok k objek dalam data training yang paling dekat (mirip) (Wu, 2009).
Algoritma K-NN Z=(x',y') data uji dengan vektor x' dan label kelas y' yang belum diketahui Hitung Jarak d(x',x) jarak antara data uji z ke setiap vektor data latih, simpan dalam D Ambil K tetangga terdekat pertama Hitung jumlah data yang mengikuti kelas yang ada dari K-tetangga tersebut Kelas dengan data terbanyak yang mengikutinya menjadi kelas yang terpilih yang diberikan sebagai label kelas pada data uji y'
Contoh Data latih Hitung Jarak setiap data ke data uji K=1 Data Uji No X Y Kelas 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 No X Y Kelas d 1 3.61 2 3.16 3 3.00 4 2.00 5 7 4.47 6 2.24 1.41 8 10 1.00 11 12 13 14 2.83 15 16 17 18 9 No X Y Kelas d 10 4 1 1.00 7 2 3 1.41 2.00 6 2.24 8 5 12 15 14 2.83 16 3.00 11 3.16 13 17 18 3.61 4.47 Data Uji
Contoh KNN K=3 Ambil 3 Tetangga terdekat pertama Hitung jumlah data yang mengikuti kelas yang ada dari K-tetangga tersebut Pilih kelas dengan data terbanyak Jadi pada dataset X Y 4 Maka prediksi kelasnya adalah 0 K=3 No X Y Kelas d 10 4 1 1.00 7 2 3 1.41 2.00 6 2.24 8 5 12 15 14 2.83 16 3.00 11 3.16 13 17 18 3.61 4.47
K-NN
Notasi Algoritmik KNN Program KNN Kamus: Tipe Matrix : array[1..17,1..3] Tipe Arr:array[1..3] A,B:Matrix C:Arr J0,j1,j,k : Integer Algoritma: A={{1,1,0},{2,1,0},{3,1,0},{3,2,0},{7,2,1},{1,3,0},{2,3,0},{5,3,1},{4,4,1}, {6,4,1},{1,5,0},{6,5,1},{1,6,0},{1,1,0},{4,6,1},{5,6,1},{2,7,1},{4,7,1} }; C={3,4,0} hitungJarak(A,B,C,17,3) urut(B,17) j1=0 j0=0 k=3 for j=0 to k-1 if Bj1=1 then j1=j1+1 endif if B j1=0 then j0=j0+1 endif endfor if j1>j0 then output (kelas=1) else output(kelas=0) endif Procedure hitungJarak(A:Matrix,B:Matrix,C:Arr,m,n) I,j: integer sum:real for i=0 to m-1 do sum=0 for(j=0;j<n;j++) sum=sum+abs(Cj - Aij)2 endfor B i0=sqrt(sum); B i1=A[i][2]; Procedure urut(A Matrix,m:integer ) I,j:integer For i=0 to m-1 do For j=m downto i-1 do If Aj0 < A(j-1)0 then Tukar(Aj0 , A(j-1)0 ) Tukar(Aj1 , A(j-1)1 ) endfor