DATA MINING 2015 4 Klasifikasi KNN

Klasifikasi
Nearest Neighbor
Data Mining
Materi 3

Eko Prasetyo
Teknik Informatika
2012

K-NEAREST NEIGHBOR
(K-NN)

2

K-Nearest Neighbor
 Algoritma

yang melakukan klasifikasi berdasarkan
kedekatan lokasi (jarak) suatu data dengan data
yang lain.
 Prinsip sederhana yang diadopsi oleh algoritma KNN adalah: “Jika suatu hewan berjalan seperti

bebek, bersuara kwek-kwek seperti bebek, dan
penampilannya seperti bebek, maka hewan itu
mungkin bebek”.
 Pada algoritma K-NN, data berdimensi q, dapat
dihitung jarak dari data tersebut ke data yang lain,
◦ Nilai jarak ini yang digunakan sebagai nilai
kedekatan/kemiripan antara data uji dengan data latih.
3

K-Nearest Neighbor

1 tetangga terdekat (1-NN)

2 tetangga terdekat (2-NN)

3 tetangga terdekat (3-NN)

7 tetangga terdekat (7-NN)
4


Algoritma K-NN
z

= (x’,y’), adalah data uji dengan
vektor x’ dan label kelas y’ yang belum
diketahui
Hitung jarak d(x’,x), jarak diantara
data uji z ke setiap vektor data latih,
simpan dalam D
Pilih Dz  D, yaitu K tetangga terdekat
dari z y' arg max ( x , y )D I (v  yi )
v

i

i

z

5


Contoh
8
6
4
2
0

0

2

4

6

8

Data uji adalah data (3,4), fitur X=3, Y=4.
Akan dilakukan prediksi, masuk dalam

kelas yang manakah seharusnya ?

Data latih
Data X
1
1
2
2
3
3
4
3
5
7
6
1
7
2
8
5

9
4
10
6
11
1
12
6
13
1
14
4
15
5
16
2
17
4

Y

1
1
1
2
2
3
3
3
4
4
5
5
6
6
6
7
7

Kelas
1

1
1
1
2
1
1
2
2
2
1
2
1
2
2
2
2

Gunakan jarak Euclidean !

6


Prediksi dengan K-NN
Jarak data uji (3,4) ke 17 data latih
Nomor
data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16
17

x

y

1
2
3
3
7
1
2
5
4
6
1
6
1

4
5
2
4

1
1
1
2
2
3
3
3
4
4
5
5
6
6
6

7
7

Kelas
asli
1
1
1
1
2
1
1
2
2
2
1
2
1
2
2
2
2

Jarak data uji
1-NN 3-NN 7-NN
ke data latih
3.6055
------3.1622
------3
------2
--NN
NN
4.4721
------2.2360
----NN
1.4142
--NN
NN
2.2360
----NN
1
NN
NN
NN
3
------2.2360
----NN
3.1622
------2.8284
------2.2360
----NN
2.8284
------3.1622
------3.1622
-------

7

Prediksi dengan K-NN
Jarak data uji (3,4) ke 17 data latih
Nomor
data
9
7
4
6
8
11
14
13
15
3
10
2
12
16
17
1
5

x

y

4
2
3
1
5
1
4
1
5
3
6
2
6
2
4
1
7

4
3
2
3
3
5
6
6
6
1
4
1
5
7
7
1
2

Kelas Jarak data uji ke
1-NN 3-NN 7-NN
asli
data latih
2
1
NN
NN
NN
1
1.414
--NN
NN
1
2
--NN
NN
1
2.236
----NN
2
2.236
----NN
1
2.236
----NN
2
2.236
----NN
1
2.828
------2
2.828
------1
3
------2
3
------1
3.162
------2
3.162
------2
3.162
------2
3.162
------1
3.606
------2
4.472
-------

8

Prediksi dengan K-NN
Untuk K=1
Data latih yang terdekat adalah data nomor 9 (4,4) dengan kelas 2,
maka data uji (3,4) diprediksi masuk kelas 2.
Untuk K=3
Data latih yang terdekat adalah data nomor 9 (4,4) dengan kelas 2,
data nomor 7 (2,3) dan data nomor 4 (3,2) dengan kelas 1, karena
kelas 2 berjumlah 1 dan kelas 1 berjumlah 2 (lebih banyak kelas 1
daripada kelas 2) maka data uji (3,4) diprediksi masuk kelas 1.

Untuk K=7
Data latih yang terdekat adalah data nomor 8 (5,3), 9 (4,4), 14 (4,6)
dengan kelas 2, data nomor 4 (3,2), 6 (1,3), 7 (2,3), dan 11 (1,5)
dengan kelas 1, karena kelas 2 berjumlah 3 dan kelas 1 berjumlah 4
(lebih banyak kelas 1 daripada kelas 2) maka data uji (3,4) diprediksi
masuk kelas 1.
9

K-NN di matlab
Class
Parameter
Sample

= knnclassify(Sample, Training, Group, k, distance, rule)

Group

Keterangan
Matrik dimana baris merupakan data, kolom merupakan fitur. Sample merupakan data uji yang akan
diklasifikasikan kedalam kelas. Matrik Sample harus mempunyai jumlah kolom (fitur) yang sama dengan matrik
Training.
Matrik yang digunakan untuk mengelompokkan baris didalam matrik Sample. Matrik Traning harus mempunyai
jumlah kolom yang sama dengan Sample. Setiap baris dalam matrik Training mempunyai relasi kelas pada baris
yang sama pada matrik Group.
Vektor (matrik 1 kolom) yang setiap barisnya menyatakan kelas dari baris yang sama dalam matrik Training.

k
distance

Jumlah tetangga terdekat yang digunakan untuk klasifikasi. Nilai defaultnya adalah 1.
String yang menyatakan metrik jarak yang digunakan untuk mencari tetangga terdekat, pilihannya:

Training

‘euclidean’, jarak Euclidean (default)
‘cityblock’, jarak Manhattan atau jumlah absolut perbedaan nilai antar fitur
‘cosine’, jarak 1 – cos(sudut antara 2 titik)
‘correlation’, jarak 1 – korelasi diantara titik (nilai sekuen)
rule

‘hamming’, jarak prosentase bit yang berbeda (cocok untuk data biner)
String untuk menetapkan aturan dalam memutuskan bagaimana mengklasifikasikan Sample, pilihannya: ‘nearest’,
aturan mayoritas pada titik terdekat (default); ‘random’, aturan mayoritas pada titik secara acak; ‘consensus’,
aturan kesepakatan

10

%Nama file: dataset_buatan.m
data = [
%x
123371253461614524
%y
111223334445566677
0.1 0.2 0.1 0.4 0.1 0.2 0.1 0.4 0.1 0.2 0.1 0.4 0.1 0.2 0.1 0.4 0.9 0.8
%kelas
111121121221212222
];
data = data';
%Nama file: contoh_knn.m
dataset_buatan
idx_latih = [1:8 10:18];
idx_uji = [9];
data_latih = data(idx_latih,1:2);
data_uji = data(idx_uji,1:2);
kelas_latih = data(idx_latih,3);
K = 1;
kelas_uji = knnclassify(data_uji, data_latih, kelas_latih, K)

>> contoh_knn
kelas_uji =
2

11

Evaluasi K-NN
Algoritma

yang menggunakan seluruh data latih untuk melakukan proses
klasifikasi (complete storage).
◦ Mengakibatkan untuk data dalam jumlah yang sangat besar, proses prediksi
menjadi sangat lama.

Tidak

membedakan setiap fitur dengan suatu bobot

◦ Pada ANN (Artificial Neural Network) yang berusaha menekan fitur yang tidak
punya kontribusi terhadapklasifikasi menjadi 0 pada bagian bobot,
◦ NN tidak ada bobot untuk masing-masing fitur.
Menyimpan

sebagian atau semua data dan hampir tidak ada proses

pelatihan,
◦ maka K-NN sangat cepat dalam proses training (karena memang tidak ada) tetapi
sangat lambat dalam proses prediksi.
Hal

yang rumit adalah menentukan nilai K yang paling sesuai
K-NN pada prinsipnya memilih tetangga terdekat,
◦ Parameter jarak juga penting untuk dipertimbangkan sesuai dengan kasus
datanya. Euclidean sangat cocok untuk menggunakan jarak terdekat (lurus) antara
dua data, tetapi Manhattan sangat robust untuk mendeteksi outlier dalam data.

12

To Be Continued … Klasifikasi Decision Tree

ANY QUESTION ?

13