IMPLEMENTASI ALGORITMA k-NN Chastine Fatichah
Classification Algorithms Proses Klasifikasi Classification Algorithms No. Sepal width Sepal length Petal width Petal length Label Class 1 5,1 3,5 1,4 0,2 Iris-setosa 2 6 2,9 4,5 1,5 Iris-versicolor 3 4,7 3,2 1,3 4 5,7 2,6 5 4,9 5,5 2,4 3,8 1,1 7 4,6 3,1 8 3,7 1,2 9 6,3 3,3 2,5 Iris-virginica 10 5,8 2,7 1,9 Training Process Training Set Model No. Sepal width Sepal length Petal width Petal length Label Class 1 4,8 3,2 1,3 0,3 ? 2 5,6 2,9 4,2 1,2 3 5,7 2,5 5 4 7,1 5,9 2,1 Testing Process Test Set
Algortima k-NN Setiap data poin x Hitung jarak antara x dengan semua data poin pada training set Urutkan berdasarkan jarak terkecil Ambil sejumlah k data poin dengan jarak terkecil ke x (k tetangga terdekat) Tentukan label kelas dari x berdasarkan mayoritas kelas pada k data poin
Penentuan nilai k pada k-Nearest Neighbors Lecture 8 Penentuan nilai k pada k-Nearest Neighbors Sumber: Introduction to Data Mining © Tan,Steinbach, Kumar 2004 Jika nilai k terlalu kecil maka sensitif terhadap data noise Jika nilai k terlalu besar maka ada kemungkinan data poin dari kelas yang lain menjadi tetangga terdekat
Minkowski Distance n : jumlah atribut sedangkan pk dan qk adalah atribut ke k dari data poin p dan q r = 1 City block (Manhattan) distance, r = 2 Euclidean distance Perbedaan skala yang besar pada atribut menyebabkan atribut bernilai besar menjadi lebih dominan, hal ini dapat ditangani dengan proses Normalisasi terlebih dahulu
Contoh kasus pada algoritma k-Nearest Neighbors Training Set Euclidean distance: No. X1 X2 Kelas 1 5 4 + 2 6 3 - No. Jarak data 6 ke- Kelas 1 1,00 + 2 3 1,41 - 4 2,24 5 Testing Set k =3 No. X1 X2 Kelas 6 5 2 ? No. Jarak data 6 ke- Kelas 1 1,00 + 2 3 1,41 -
Deskripsi Dataset Iris Deskripsi dataset bunga Iris Atribut : Sepal length, Sepal width, Petal length, dan Petal width Jumlah data : 150 Kelas : Iris-setosa (50), Iris-versicolor (50), Iris-virginica (50) Sumber gambar : https://rpubs.com/wjholst/322258
Contoh implementasi python algoritma k-NN Buka file dataset Iris Visualisasi 2D data iris
Contoh implementasi python algoritma k-NN Visualisasi 3D dataset Iris
Contoh implementasi python algoritma k-NN Pembagian training set dan test set
Contoh implementasi python algoritma k-NN Fungsi perhitungan jarak
Contoh implementasi python algoritma k-NN Fungsi mencari ketetanggaan sejumlah k Sumber: https://www.python-course.eu/k_nearest_neighbor_classifier.php
Contoh implementasi python algoritma k-NN Fungsi menentukan mayoritas kelas (majority vote) Sumber: https://www.python-course.eu/k_nearest_neighbor_classifier.php
Contoh implementasi python algoritma k-NN Fungsi prediksi kelas dari testing set Sumber: https://www.python-course.eu/k_nearest_neighbor_classifier.php