Anda di halaman 1dari 10

DATA MINING

METODE CLASIFIKATION

K-NEARST NEIGHBOR (KNN)

Oleh :

I.G.A Oka Widiarsana 0804505009


Wandana Narayana Putra 0804505010
I Gede Putra Budiyasa 0804505034
I Nyoman Agi Bismantara M 0804505035
Nyoman Sarasuartha Mahajaya 0804505036

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDY TEKNOLOGI INFORMASI
FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2011
Algoritma K-Nearst Neighbor
Algoritma k-nearest neighbor (KNN) adalah sebuah metode untuk
melakukan klasifikasi terhadap objek berdasarkan data pembelajaran yang
jaraknya paling dekat dengan objek tersebut. KNN termasuk algoritma supervised
learning dimana hasil dari query instance yang baru diklasifikan berdasarkan
mayoritas dari kategori pada KNN. Nanti kelas yang paling banyak muncullah
yang akan menjadi kelas hasil klasifikasi.
Tujuan dari algoritma ini adalah mengklasifikasikan obyek baru
bedasarkan atribut dan training sample. Classifier tidak menggunakan model
apapun untuk dicocokkan dan hanya berdasarkan pada memori. Diberikan titik
query, akan ditemukan sejumlah k obyek atau (titik training) yang paling dekat
dengan titik query. Klasifikasi menggunakan voting terbanyak diantara klasifikasi
dari k obyek.. algoritma k-nearest neighbor (KNN) menggunakan klasifikasi
ketetanggaan sebagai nilai prediksi dari query instance yang baru.
Algoritma metode k-nearest neighbor (KNN) sangatlah sederhana, bekerja
berdasarkan jarak terpendek dari query instance ke training sample untuk
menentukan KNN-nya. Training sample diproyeksikan ke ruang berdimensi
banyak, dimana masing-masing dimensi merepresentasikan fitur dari data. Ruang
ini dibagi menjadi bagian-bagian berdasarkan klasifikasi training sample. Sebuah
titik pada ruang ini ditandai kelas c jika kelas c merupakan klasifikasi yang paling
banyak ditemui pada k buah tetangga terdekat dari titik tersebut. Dekat atau
jauhnya tetangga biasanya dihitung berdasarkan Euclidean Distance.
Jarak Euclidean paling sering digunakan menghitung jarak. Jarak
euclidean berfungsi menguji ukuran yang bisa digunakan sebagai interpretasi
kedekatan jarak antara dua obyek. yang direpresentasikan sebagai berikut :

Da,b =k=1d(Xk-Yk)2

X1 =[X1, X2, .....Xp] dan Y1 =[Y1, Y2, .....Yp]


Adalah
D2(x,y) = (X1 – Y1)2 + (X2 – Y2)2 + ....... + (Xp – Yp)2
= (X – Y) (X – Y) = (Y – X) (Y – X)
dimana matriks D(a,b) adalah jarak skalar dari kedua vektor a dan b dari
matriks dengan ukuran d dimensi.
Semakin besar nilai D akan semakin jauh tingkat keserupaan antara kedua
individu dan sebaliknya jika nilai D semakin kecil maka akan semakin dekat
tingkat keserupaan antar individu tersebut.
Nilai k yang terbaik untuk algoritma ini tergantung pada data. Secara
umum, nilai k yang tinggi akan mengurangi efek noise pada klasifikasi, tetapi
membuat batasan antara setiap klasifikasi menjadi semakin kabur. Nilai k yang
bagus dapat dipilih dengan optimasi parameter, misalnya dengan menggunakan
cross-validation. Kasus khusus dimana klasifikasi diprediksikan berdasarkan
training data yang paling dekat (dengan kata lain, k = 1) disebut algoritma
nearest neighbor.
Ketepatan algoritma KNN sangat dipengaruhi oleh ada atau tidaknya
fitur-fitur yang tidak relevan atau jika bobot fitur tersebut tidak setara dengan
relevansinya terhadap klasifikasi. Riset terhadap algoritma ini sebagian besar
membahas bagaimana memilih dan memberi bobot terhadap fitur agar performa
klasifikasi menjadi lebih baik.

Langkah-langkah untuk menghitung metode K-Nearest Neighbor :


1. Menentukan parameter K (jumlah tetangga paling dekat).
2. Menghitung kuadrat jarak euclid (query instance) masing–masin obyek
terhadap data sampel yang diberikan.
3. Kemudian mengurutkan objek–bjck tersebut kedalam kelompok yang
mempunyai jarak euclid terkecil.
4. Mengumpulkan kategori Y (Klasifikasi nearest neighbor)
5. Dengan menggunakan kategori nearest neighbor yang paling mayoritas
maka dapat dipredisikan nilai query instance yang telah dihitung.

Contoh Data :
Terdapat beberapa data yang berasal dari survey questioner tentang
klasifikasi kualitas kertas tissue apakah baik atau jelek, dengan objek testing
menggunakan dua attribute yaitu daya tahan terhadap asam dan kekuatan.

Table 1.1 klasifikasi data


X1 = Daya tahan X2 = Kekuatan Y = Klasifikasi
asam (detik) (Kg/m2)
8 4 Baik
4 5 Jelek
4 6 Jelek
7 7 Baik
5 6 Jelek
6 5 Baik

Kemudian akan diproduksi kembali kertas tisu dengan attribute X1=7 dan
X2=4 tanpa harus mengeluarkan biaya untuk melakukan survey, maka dapat
diklasifikasikan kertas tise tersebut termasuk yang baik atau jelek.

Adapun prosedur k-nearest neighbor secara lengkap adalah sebagai berikut:

1. Menentukan parameter K (Jumlah tetangga paling dekat), misalkan kita

menggunakan K = 4.
2. Menghitung kuadrat jarak euclid (query-instance) masing-masing objek
terhadap sampel data yang diberikan.
Koordinat query-instance adalah (7,4) dimana nilai tersebut berasal dari
nilai attribut yang akan diproduksi.

Tabel 1.2 perhitungan jarak euclid


X1 = Daya tahan X2 = Kekuatan Square distance to query
asam (detik) (kg/m2) distance (7,4)
8 4 (8-7)2 + (4-4)2 = 1
4 5 (4-7)2 + (5-4)2 = 10
4 6 (4-7)2 + (6-4)2 = 13
7 7 (7-7)2 + (7-4)2 = 9
5 6 (5-7)2 + (6-4)2 = 8
6 5 (6-7)2 + (5-4)2 = 2

3. Kemudian mengurutkan objek-objek termasuk ke dalam kelompok yang


mempunyai jarak euclid terkecil.
Tabel 1.3 pengurutan jarak euclid terkecil
X1 = Daya X2 = Square distance to Apakah
tahan asam Kekuatan query distance Jarak termasuk
(detik) (kg/m2) (7,4) Terkecil nearest
neighbor (K)
8 4 (8-7)2 + (4-4)2 = 1 1 Ya
4 5 (4-7)2 + (5-4)2 = 10 5 Tidak
4 6 (4-7)2 + (6-4)2 = 13 6 Tidak
7 7 (7-7)2 + (7-4)2 = 9 4 Ya
5 6 (5-7)2 + (6-4)2 = 8 3 Ya
6 5 (6-7)2 + (5-4)2 = 2 2 Ya

4. Mengumpulkan kategori Y (klasifikasi nearest neighbor).

Tabel 1.4 klasifikasi nearest neighbor


X1= X2= Square distance to Apakah Y=
Daya Kekuatan query distance (7,4) Jarak termasuk kategori
tahan (Kg/m2) terkecil nearest nearest
asam neighbor (K) neighbor
(detik)
8 4 (8-7)2 + (4-4)2 = 1 1 Ya Baik
4 5 (4-7)2 + (5-4)2 = 10 5 Tidak -
4 6 2 2
(4-7) + (6-4) = 13 6 Tidak -
7 7 2 2
(7-7) + (7-4) = 9 4 Ya Baik
5 6 (5-7)2 + (6-4)2 = 8 3 Ya Jelek
6 5 (6-7)2 + (5-4)2 = 2 2 Ya Baik

5. Dengan menggunakan kategori nearest neighbor yang paling mayoritas,


maka dapat diprediksikan nilai query instance yang telah dihitung.
Kita mempunyai kualitas 3 baik dan 1 jelek, karena 3 > 1 maka kita
simpulkan bahwa bahan yang baru melewati tes kualitas dengan
menetapkan hasil produksi attribute x1=7 dan x2=4 termasuk ketegori
BAIK.

Contoh Ke-2 :
Terdapat beberapa data yang berasal dari survey questioner tentang
klasifikasi kualitas kertas tissue apakah baik atau jelek, dengan objek testing
menggunakan dua attribute yaitu daya tahan terhadap asam dan kekuatan.

Table 1.5 klasifikasi data


X1 = Daya tahan X2 = Kekuatan Y = Klasifikasi
asam (detik) (Kg/m2)
8 4 Baik
4 5 Jelek
4 6 Jelek
7 7 Baik
5 6 Jelek
6 5 Baik

Kemudian akan diproduksi kembali kertas tisu dengan attribute X1=4 dan
X2=7 tanpa harus mengeluarkan biaya untuk melakukan survey, maka dapat
diklasifikasikan kertas tisu tersebut termasuk yang baik atau jelek.
Adapun prosedur k-nearest neighbor secara lengkap adalah sebagai berikut:

1. Menentukan parameter K (Jumlah tetangga paling dekat), misalkan kita

menggunakan K = 4.
2. Menghitung kuadrat jarak euclid (query-instance) masing-masing objek
terhadap sampel data yang diberikan.
Koordinat query-instance adalah (4,7) dimana nilai tersebut berasal dari
nilai attribut yang akan diproduksi.

Tabel 1.6 perhitungan jarak euclid


X1 = Daya tahan X2 = Kekuatan Square distance to query
asam (detik) (kg/m2) distance (4,7)
8 4 (8-4)2 + (4-7)2 = 25
4 5 (4-4)2 + (5-7)2 = 4
4 6 (4-4)2 + (6-7)2 = 1
7 7 (7-4)2 + (7-7)2 = 9
5 6 (5-4)2 + (6-7)2 = 2
6 5 (6-4)2 + (5-7)2 = 8

3. Kemudian mengurutkan objek-objek termasuk ke dalam kelompok yang


mempunyai jarak euclid terkecil.
Tabel 1.7 pengurutan jarak euclid terkecil
X1 = Daya X2 = Apakah
tahan asam Kekuatan Square distance to Jarak termasuk
(detik) (kg/m2) query distance (4,7) Terkecil nearest
neighbor (K)
8 4 (8-4)2 + (4-7)2 = 25 6 Tidak
4 5 (4-4)2 + (5-7)2 = 4 3 Ya
4 6 (4-4)2 + (6-7)2 = 1 1 Ya
7 7 (7-4)2 + (7-7)2 = 9 5 Tidak
5 6 (5-4)2 + (6-7)2 = 2 2 Ya
6 5 (6-4)2 + (5-7)2 = 8 4 Ya

4. Mengumpulkan kategori Y (klasifikasi nearest neighbor).

Tabel 1.8 klasifikasi nearest neighbor


X1= X2= Apakah Y=
Daya Kekuatan Square distance to Jarak termasuk kategori
tahan (Kg/m2) query distance (4,7) terkecil nearest nearest
asam neighbor (K) neighbor
(detik)
8 4 (8-4)2 + (4-7)2 = 25 6 Tidak -
4 5 (4-4)2 + (5-7)2 = 4 3 Ya Jelek
2 2
4 6 (4-4) + (6-7) = 1 1 Ya Jelek
2 2
7 7 (7-4) + (7-7) = 9 5 Tidak -
5 6 (5-4)2 + (6-7)2 = 2 2 Ya Jelek
6 5 (6-4)2 + (5-7)2 = 8 4 Ya Baik

5. Dengan menggunakan kategori nearest neighbor yang paling mayoritas,


maka dapat diprediksikan nilai query instance yang telah dihitung.
Kita mempunyai kualitas 3 Jelek dan 1 baik, karena 3 > 1 maka kita
simpulkan bahwa bahan yang baru melewati tes kualitas dengan
menetapkan hasil produksi attribute x1=4 dan x2=7 termasuk ketegori
JELEK.

Contoh Data 3 :
Terdapat beberapa data yang berasal dari survey questioner tentang
klasifikasi kualitas makanan siap saji apakah bagus atau jelek, dengan objek
testing menggunakan tiga attribute yaitu Takaran saji, jumlah saji perkemasan dan
energy total.

Table 1.9 klasifikasi data


X1 = Takaran X2 = Jumlah Saji X3 = Energi Y = Klasifikasi
saji (gr) perkemasan Total
40 5 60 Jelek
50 8 40 Bagus
50 7 30 Jelek
70 4 60 Bagus
80 4 80 Bagus
60 6 60 Bagus

Kemudian akan mengetes kualitas makanan siap saji dengan attribute


X1=50, X2=3 dan X3=40, maka dapat diklasifikasikan makanan tersebut
termasuk yang bagus atau jelek.

1. Menentukan parameter K (Jumlah tetangga paling dekat), misalkan kita

menggunakan K = 4.
2. Menghitung kuadrat jarak euclid (query-instance) masing-masing objek
terhadap sampel data yang diberikan.
Koordinat query-instance adalah (50,3,40) dimana nilai tersebut berasal
dari nilai attribut yang akan diproduksi.

Tabel 1.10 perhitungan jarak euclid


X1 = Takaran X2 = Jumlah X3 = Square distance to query distance
saji (gr) Saji Energi (50,3,40)
perkemasan Total
40 5 60 (40-50)2 + (5-3)2 + (60-40)2= 504
50 8 40 (50-50)2 + (8-3)2 + (40-40)2= 25
50 7 30 (50-50)2 + (7-3)2 + (30-40)2= 116
70 4 60 (70-50)2 + (4-3)2 + (60-40)2= 801
80 4 80 (80-50)2 + (4-3)2 + (80-40)2= 2501
60 6 60 (60-50)2 + (6-3)2 + (60-40)2= 509
3. Kemudian mengurutkan objek-objek termasuk ke dalam kelompok yang
mempunyai jarak euclid terkecil.

Tabel 1.11Pengurutan jarak euclid terkecil


X1 = X2 = X3 = Square distance to Urutan Apakah
Takaran Jumlah Energi query distance jarak termasuk
saji (gr) Saji Total (50,3,40) Terkecil nearest
perkemas neighbor
an (K)
40 5 60 (40-50)2 + (5-3)2 + 3 Ya
(60-40)2= 504
50 8 40 (50-50)2 + (8-3)2 + 1 Ya
(40-40)2= 25
50 7 30 (50-50)2 + (7-3)2 + 2 Ya
(30-40)2= 116
70 4 60 (70-50)2 + (4-3)2 + 5 Tidak
(60-40)2= 801
80 4 80 (80-50)2 + (4-3)2 + 6 Tidak
(80-40)2= 2501
60 6 60 (60-50)2 + (6-3)2 + 4 Ya
(60-40)2= 509

4. Mengumpulkan kategori Y (klasifikasi nearest neighbor).

Tabel 1.12 klasifikasi nearest neighbor


X1 = X2 = Jumlah X3 = Square Apakah Y=
Takaran Saji Energi distance to Jarak termasuk kategori

saji (gr) perkemasan Total query distance Terkecil nearest nearest


neighbor
(50,3,40) neighbor (K)
40 5 60 (40-50)2 + (5-3)2 3 Ya Jelek
+ (60-40)2= 504
50 8 40 (50-50)2 + (8-3)2 1 Ya Bagus
+ (40-40)2= 25
50 7 30 (50-50)2 + (7-3)2 2 Ya Jelek
+ (30-40)2= 116
70 4 60 (70-50)2 + (4-3)2 5 Tidak -
+ (60-40)2= 801
80 4 80 (80-50)2 + (4-3)2 6 Tidak -
2
+ (80-40) =
2501
60 6 60 (60-50)2 + (6-3)2 4 Ya Bagus
+ (60-40)2= 509

5. Dengan menggunakan kategori nearest neighbor yang paling mayoritas,


maka dapat diprediksikan nilai query instance yang telah dihitung.
Kita mempunyai kualitas 2 Jelek dan 2 baik, karena nilai Y sama maka
yang dipilih adalah jelek.
Maka kita simpulkan bahwa kualitas makanan siap saji telah melewati tes
kualitas dengan menetapkan hasil produksi attribute X1=50, X2=3 dan
X3=40 termasuk ketegori JELEK.

Dari penjelasan diatas algoritma K-Nearest ini memiliki kelebihan yang


terdiri dari :
1. Dapat menghasilkan data yang kuat atau jelas (khususnya jika
menggunakan turunan perkalian kuadrat pada besaran jarak)
2. Efektif jika digunakan untuk data yang besar
Dari beberapa kelebihannya maka K-Nearest juga memiliki kekurangan yaitu :
1. Membutuhkan nilai K sebagai parameter.
2. Jarak dari data percobaan tidak dapat jelas dengan tipe jarak yang
digunakan dan dengan atribut yang digunakan untuk menghasilkan
hasil yang terbaik, maka harus menggunakan semua atribut atau hanya
1 aribut yang telah pasti.
3. Perhitungan harga sangat tinggi karena percobaan ini membutuhkan
perhitungan jarak dari beberapa query untuk semua data percobaan.