Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Klasifikasi Nearest Neighbor
Data Mining Materi 3 Eko Prasetyo Teknik Informatika 2012
2
K-Nearest Neighbor (K-NN)
3
K-Nearest Neighbor Algoritma yang melakukan klasifikasi berdasarkan kedekatan lokasi (jarak) suatu data dengan data yang lain. Prinsip sederhana yang diadopsi oleh algoritma K- NN 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.
4
K-Nearest Neighbor 1 tetangga terdekat (1-NN)
5
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
6
Contoh Data latih Data X Y Kelas 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15
16 17 Data uji adalah data (3,4), fitur X=3, Y=4. Akan dilakukan prediksi, masuk dalam kelas yang manakah seharusnya ? Gunakan jarak Euclidean !
7
Jarak data uji ke data latih
Prediksi dengan K-NN Jarak data uji (3,4) ke 17 data latih Nomor data x y Kelas asli Jarak data uji ke data latih 1-NN 3-NN 7-NN 1 3.6055 --- 2 3.1622 3 4 NN 5 7 4.4721 6 2.2360 1.4142 8 9 10 11 12 13 2.8284 14 15 16 17
8
Jarak data uji ke data latih
Prediksi dengan K-NN Jarak data uji (3,4) ke 17 data latih Nomor data x y Kelas asli Jarak data uji ke data latih 1-NN 3-NN 7-NN 9 4 2 1 NN 7 3 1.414 --- 6 2.236 8 5 11 14 13 2.828 15 10 3.162 12 16 17 3.606 4.472
9
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.
10
K-NN di matlab Class = knnclassify(Sample, Training, Group, k, distance, rule) Parameter Keterangan Sample 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. 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. Group Vektor (matrik 1 kolom) yang setiap barisnya menyatakan kelas dari baris yang sama dalam matrik Training. k Jumlah tetangga terdekat yang digunakan untuk klasifikasi. Nilai defaultnya adalah 1. distance String yang menyatakan metrik jarak yang digunakan untuk mencari tetangga terdekat, pilihannya: ‘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) ‘hamming’, jarak prosentase bit yang berbeda (cocok untuk data biner) rule 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
11
>> contoh_knn kelas_uji = 2 %Nama file: dataset_buatan.m
%x %y %kelas ]; 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
12
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.
13
To Be Continued … Klasifikasi Decision Tree
ANY QUESTION ?
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.