Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Klasifikasi (Season 2) Nearest Neighbor Pengenalan Pola Materi 3 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012.

Presentasi serupa


Presentasi berjudul: "Klasifikasi (Season 2) Nearest Neighbor Pengenalan Pola Materi 3 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012."— Transcript presentasi:

1 Klasifikasi (Season 2) Nearest Neighbor Pengenalan Pola Materi 3 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012

2 K-NEAREST NEIGHBOR (K-NN) 2

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. 3

4 K-Nearest Neighbor 4 1 tetangga terdekat (1-NN)2 tetangga terdekat (2-NN) 3 tetangga terdekat (3-NN) 7 tetangga terdekat (7-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 D z  D, yaitu K tetangga terdekat dari z 5

6 Contoh 6 DataXYKelas Data uji adalah data (3,4), fitur X=3, Y=4. Akan dilakukan prediksi, masuk dalam kelas yang manakah seharusnya ? Gunakan jarak Euclidean ! Data latih

7 7 Nomor data xy Kelas asli Jarak data uji ke data latih 1-NN3-NN7-NN NN NN NN NN NN NN Prediksi dengan K-NN Jarak data uji (3,4) ke 17 data latih

8 8 Nomor data xy Kelas asli Jarak data uji ke data latih 1-NN3-NN7-NN NN NN NN NN NN NN NN Prediksi dengan K-NN Jarak data uji (3,4) ke 17 data latih

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

10 K-NN di matlab Class = knnclassify(Sample, Training, Group, k, distance, rule) 10 ParameterKeterangan 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. GroupVektor (matrik 1 kolom) yang setiap barisnya menyatakan kelas dari baris yang sama dalam matrik Training. kJumlah 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) ruleString 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 11 %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 %Nama file: dataset_buatan.m data = [ %x %y %kelas ]; data = data';

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. 12

13 FUZZY K-NEAREST NEIGHBOR IN EVERY CLASS (FK-NNC) 13

14 Framework FK-NNC Diperkenalkan oleh Prasetyo (2012). FK-NNC menggunakan sejumlah K tetangga terdekat pada setiap kelas dari sebuah data uji, bukan K tetangga terdekat seperti pada K- NN dan FK-NN. FK-NNC menggunakan FK-NN sebagai basis kerangka kerja, dimana sebuah data uji mempunyai nilai keanggotaan pada setiap kelas dalam interval [0.1]. ◦ Jumlah nilai keanggotaan sebuah data pada semua kelas sama dengan 1 Tanda dot hitam (solid) adalah data uji Tiga tetangga dikelas + dan tiga tetangga dikelas x

15 Framework FK-NNC – Cont’d Jarak data uji x i ke semua K tetangga dari setiap kelas ke-j dijumlahkan, formula yang digunakan: Nilai m disini merupakan pangkat bobot (weight exponent) seperti pada FK- NN, nilai m > 1. akumulasi jarak data uji x i ke setiap kelas digabungkan, disimbolkan D, formula yang digunakan: Untuk mendapatkan nilai keanggotaan data uji x i pada setiap kelas ke-j (ada C kelas), menggunakan formula: Untuk menentukan kelas hasil prediksi data uji x i, dipilih kelas dengan nilai keanggotaan terbesar dari data x i. Formula yang digunakan: (4)(4) (5)(5) (6)(6) (7)(7)

16 Algoritma FK-NNC Cari K tetangga terdekat pada setiap kelas, menggunakan formula Hitung S sebagai akumulasi jarak K tetangga pada setiap kelas, menggunakan formula (4) Hitung J sebagai akumulasi semua jarak dari C  K tetangga, menggunakan formula (5) Hitung u sebagai nilai keanggotaan data pada setiap kelas, menggunakan formula (6) Pilih nilai keanggotaan terbesar menggunakan formula (7), kelas dengan nilai keanggotaan terbesar menjadi kelas hasil prediksi untuk data uji tersebut.

17 Contoh 17 DataXYKelas Data uji adalah data (3,4), fitur X=3, Y=4. Akan dilakukan prediksi, masuk dalam kelas yang manakah seharusnya ? Gunakan m=2, dan jarak Euclidean ! Data latih

18 18 Nomor data xy Kelas asli Jarak data uji ke data latih Prediksi dengan K-NN Jarak data uji (3,4) ke 17 data latih Nomor data xy Kelas asli Jarak data uji ke data latih Setelah diurutkan

19 19 No. dataxy Kelas asli dK=1d NN NN S0S S1S D K=3d -2 K=5d -2 K=7d -2 NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN Perhitungan jarak FK-NNC pada data latih

20 20 Hasil peritungan nilai keanggotaan pada kedua kelas sebagai berikut: Untuk K=1:, Karena u 1 > u 0, maka data uji diprediksi masuk ke kelas 1 Untuk K=3:, Karena u 1 > u 0, maka data uji diprediksi masuk ke kelas 1 Untuk K=5:, Karena u 1 > u 0, maka data uji diprediksi masuk ke kelas 1 Untuk K=7:, Karena u 1 > u 0, maka data uji diprediksi masuk ke kelas 1

21 FK-NNC di matlab [prediksi,keanggotaan] = fknnc(data, labels, test, K) 21 ParameterKeterangan data Matrik data latih yang digunakan, berukuran M  N, dimana M adalah jumlah data latih, N adalah dimensi data. Baris menyatakan data, kolom menyatakan fitur. labels Matrik berukuran M  1 yang menyatakan kelas data latih. Setiap barisnya menyatakan kelas pada baris matrik data. Nilai untuk label kelas adalah (1, 2, …, C) untuk setiap data. Tidak diperbolehkan kelas dengan label 0. test Matrik S  N yang menyatakan data uji. S adalah jumlah data uji. Jumlah kolom (fitur) yaitu N harus sama dengan jumlah fitur (kolom matrik data. KJumlah tetangga terdekat. prediksi Matrik S  1 yang menyatakan kelas hasil prediksi untuk setiap data uji dalam matrik test. keanggotaanMatrik S  C yang menyatakan nilai keanggotaan matrik data uji ke setiap kelas. C adalah jumlah kelas.

22 Contoh 22 %Nama file: contoh_fknnc.m dataset_buatan idx_latih = [1:8 10:18]; idx_uji = [9]; data_latih = data(idx_latih,1:3); data_uji = data(idx_uji,1:3); kelas_latih = data(idx_latih,4); kelas_uji_asli = data(idx_uji,4); K = 3; [y,memberships] = fknnc(data_latih, kelas_latih, data_uji, K); display('Kelas hasil prediksi');y display('Nilai keanggotaan'); display('Kelas 1 | Kelas 2');memberships >> contoh_fknnc Kelas hasil prediksi y = 2 Nilai keanggotaan Kelas 1 | Kelas 2 memberships =

23 ANY QUESTION ? To Be Continued … Klasifikasi (Season 3) 23


Download ppt "Klasifikasi (Season 2) Nearest Neighbor Pengenalan Pola Materi 3 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012."

Presentasi serupa


Iklan oleh Google