280 likes | 772 Views
Klasifikasi ( Season 2 ) Nearest Neighbor. Pengenalan Pola Materi 3. Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012. K-Nearest Neighbor (K-NN). K-Nearest Neighbor.
E N D
Klasifikasi (Season 2)Nearest Neighbor PengenalanPola Materi 3 Eko Prasetyo TeknikInformatika UPN “Veteran” JawaTimur 2012
K-Nearest Neighbor • Algoritma yang melakukanklasifikasiberdasarkankedekatanlokasi (jarak) suatu data dengan data yang lain. • Prinsipsederhana yang diadopsiolehalgoritma K-NN adalah: “Jikasuatuhewanberjalansepertibebek, bersuarakwek-kweksepertibebek, danpenampilannyasepertibebek, makahewanitumungkinbebek”. • Padaalgoritma K-NN, data berdimensiq, dapatdihitungjarakdari data tersebutke data yang lain, • Nilaijarakini yang digunakansebagainilaikedekatan/kemiripanantara data ujidengan data latih.
K-Nearest Neighbor 1 tetanggaterdekat (1-NN) 2 tetanggaterdekat (2-NN) 3 tetanggaterdekat (3-NN) 7 tetanggaterdekat (7-NN)
Algoritma K-NN • z = (x’,y’), adalah data ujidenganvektor x’ dan label kelas y’ yang belumdiketahui • Hitungjarak d(x’,x), jarakdiantara data uji z kesetiapvektor data latih, simpandalam D • PilihDz D, yaitu K tetanggaterdekatdari z
Contoh Data latih Data ujiadalah data (3,4), fitur X=3, Y=4. Akandilakukanprediksi, masukdalamkelas yang manakah seharusnya ? Gunakanjarak Euclidean !
Prediksidengan K-NN Jarak data uji (3,4) ke 17 data latih
Prediksidengan K-NN Jarak data uji (3,4) ke 17 data latih
Prediksidengan K-NN Untuk K=1 Data latih yang terdekatadalah data nomor 9 (4,4) dengankelas 1, maka data uji (3,4) diprediksimasukkelas 1. Untuk K=3 Data latih yang terdekatadalah data nomor 9 (4,4) dengankelas 1, data nomor 7 (2,3) dan data nomor 4 (3,2) dengankelas 0, karenakelas 1 berjumlah 1 dankelas 0 berjumlah 2 (lebihbanyakkelas 0 daripadakelas 1) maka data uji (3,4) diprediksimasukkelas 0. Untuk K=7 Data latih yang terdekatadalah data nomor 8 (5,3), 9 (4,4), 14 (4,6) dengankelas 1, data nomor 4 (3,2), 6 (1,3), 7 (2,3), dan 11 (1,5) dengankelas 0, karenakelas 1 berjumlah 3 dankelas 0 berjumlah 4 (lebihbanyakkelas 0 daripadakelas 1) maka data uji (3,4) diprediksimasukkelas 0.
K-NNdimatlab • Class = knnclassify(Sample, Training, Group, k, distance, rule)
%Nama file: dataset_buatan.m data = [ %x 1 2 3 3 7 1 2 5 3 4 6 1 6 1 4 5 2 4 %y 1 1 1 2 2 3 3 3 4 4 4 5 5 6 6 6 7 7 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 1 1 1 1 2 1 1 2 1 2 2 1 2 1 2 2 2 2 ]; 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
Evaluasi K-NN • Algoritma yang menggunakanseluruh data latihuntukmelakukanprosesklasifikasi (complete storage). • Mengakibatkanuntuk data dalamjumlah yang sangatbesar, prosesprediksimenjadisangat lama. • Tidakmembedakansetiapfiturdengansuatubobot • Pada ANN (Artificial Neural Network) yang berusahamenekanfitur yang tidakpunyakontribusiterhadapklasifikasimenjadi 0 padabagianbobot, • NN tidakadabobotuntukmasing-masingfitur. • Menyimpansebagianatausemua data danhampirtidakadaprosespelatihan, • maka K-NN sangatcepatdalamproses training (karenamemangtidakada) tetapisangatlambatdalamprosesprediksi. • Hal yang rumitadalahmenentukannilai K yang paling sesuai • K-NN padaprinsipnyamemilihtetanggaterdekat, • Parameter jarakjugapentinguntukdipertimbangkansesuaidengankasusdatanya. Euclidean sangatcocokuntukmenggunakanjarakterdekat (lurus) antaradua data, tetapi Manhattan sangatrobustuntukmendeteksi outlier dalam data.
Framework FK-NNC • DiperkenalkanolehPrasetyo (2012). • FK-NNC menggunakansejumlah K tetanggaterdekatpadasetiapkelasdarisebuah data uji, bukan K tetanggaterdekatsepertipada K-NN dan FK-NN. • FK-NNC menggunakan FK-NN sebagai basis kerangkakerja, dimanasebuah data ujimempunyainilaikeanggotaanpadasetiapkelasdalam interval [0.1]. • Jumlahnilaikeanggotaansebuah data padasemuakelassamadengan 1 Tanda dot hitam (solid) adalah data uji Tigatetanggadikelas + dantigatetanggadikelas x
Framework FK-NNC – Cont’d • Jarakdata ujixikesemua K tetanggadarisetiapkelaske-jdijumlahkan, formula yang digunakan: • Nilaimdisinimerupakanpangkatbobot (weight exponent) sepertipada FK-NN, nilaim > 1. • akumulasijarak data ujixikesetiapkelasdigabungkan, disimbolkanD, formula yang digunakan: • Untukmendapatkannilaikeanggotaan data ujixipadasetiapkelaske-j (adaCkelas), menggunakan formula: • Untukmenentukankelashasilprediksi data ujixi, dipilihkelasdengannilaikeanggotaanterbesardari data xi. Formula yang digunakan: (4) (5) (6) (7)
Algoritma FK-NNC • Cari K tetanggaterdekatpadasetiapkelas, menggunakan formula • HitungS sebagaiakumulasijarak K tetanggapadasetiapkelas, menggunakan formula (4) • Hitung J sebagaiakumulasisemuajarakdari CK tetangga, menggunakan formula (5) • Hitung u sebagainilaikeanggotaan data padasetiapkelas, menggunakan formula (6) • Pilihnilaikeanggotaanterbesarmenggunakan formula (7), kelasdengannilaikeanggotaanterbesarmenjadikelashasilprediksiuntuk data ujitersebut.
Data latih Contoh Data ujiadalah data (3,4), fitur X=3, Y=4. Akandilakukanprediksi, masukdalamkelas yang manakahseharusnya ? Gunakan m=2, danjarak Euclidean !
Prediksidengan K-NN Jarak data uji (3,4) ke 17 data latih Setelahdiurutkan
Hasilperitungannilaikeanggotaanpadakeduakelassebagaiberikut: Untuk K=1: , Karenau1 > u0, maka data ujidiprediksimasukkekelas 1 Untuk K=3: , Karenau1 > u0, maka data ujidiprediksimasukkekelas 1 Untuk K=5: , Karenau1 > u0, maka data ujidiprediksimasukkekelas 1 Untuk K=7: , Karenau1 > u0, maka data ujidiprediksimasukkekelas 1
FK-NNCdimatlab • [prediksi,keanggotaan] = fknnc(data, labels, test, K)
Contoh %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('Kelashasilprediksi');y display('Nilaikeanggotaan'); display('Kelas 1 | Kelas 2');memberships >> contoh_fknnc Kelashasilprediksi y = 2 Nilaikeanggotaan Kelas 1 | Kelas 2 memberships = 0.4043 0.5957
To Be Continued … Klasifikasi (Season 3) ANY QUESTION ?