Anda di halaman 1dari 12

Machine learning

04
Modul ke:

Materi Minggu 4: Algoritma Nearest Neighbour


Buku Acuan: A. C. Muller dan S. Guido, Introduction to Machine Learning with Python.
California: O’ Reilly Media Inc, 2016.
Fakultas
FASILKOM I Putu Edy Suardiyana Putra, Ph.D.

Program Studi
Teknik
Informatika
Algoritma Nearest Neighbor
• Algoritma Nearest Neighbor (NN) merupakan salah satu
algoritma yang masuk kategori supervised learning.
• Algoritma NN merupakan algoritma yang sederhana dan
sangat mudah dipahami.
• Algoritma NN ini juga sering disebut dengan algoritma lazy
learner.
• Ide yang mendasari k-NN adalah menghitung “kedekatan”
antara objek yang akan diklasifikasi dengan objek-objek yang
ada di labelled training set.
Prinsip-prinsip dasar k-NN

• Menentukan “jarak” antara objek dengan


“tetangga” terdekat (nearest neighbor). Salah
satu cara dalam menghitung jarak adalah
dengan menggunakan Euclidean Distance.
• Class dari unlabelled data akan
dipertimbangkan dari mayoritas k tetangga
terdekat. Nilai k umumnya ditentukan oleh si
perancang algoritma dengan pendekatan
empiris.
Euclidean Distance

•Jika
  terdapat titik P dan Q, di mana P memiliki
koordinat di p1 dan p2 dan Q memiliki koordinat
di q1 dan q2, sehingga:
P = (p1, p2) dan Q = (q1, q2),
Maka Euclidean distance antara P dan Q adalah:
Algoritma k-NN
Flowchart k-NN
Calculate Euclidean
distance between
Read: k, training
Start training set and test set
set, test set
and put the result into
List[X]

sort List[X]
incrementally

Take top-k data List[X],


End and find the majority
class
Implementasi k-NN
• Pada slide ini, akan dipaparkan bagaimana
melakukan implementasi k-NN dengan
menggunakan Python dan Scikit learn.
• Bagi yang tertarik untuk mendalami formula
matematika dari k-NN, silahkan baca .pdf yang
terlampir di e-learning.
• Library yang diperlukan adalah Scikit-learn (
https://scikit-learn.org/), dan untuk k-NN
sendiri bisa dilihat pada tautan berikut:
https://scikit-
learn.org/stable/modules/generated/sklearn.n
eighbors.KNeighborsClassifier.html
Contoh
• Pada contoh kali ini, kita akan membuat
sebuah model yang mampu membedakan
antara manusia dan sapi menggunakan k-NN.
• Fitur yang digunakan adalah jumlah kaki,
jumlah tangan, dan berat badan
• Adapun training set yang diperlukan adalah:
No. Jumlah kaki Jumlah Berat Label
tangan badan
1 2 2 50 kg Manusia
2 2 2 45 kg Manusia
3 4 0 300 kg Sapi
4 4 0 255 kg Sapi
Contoh (2)

• Untuk menguji model ini, maka dipersiapkan


sebuah unlabelled data di bawah ini:
No. Jumlah kaki Jumlah Berat Label
tangan badan
1 2 2 30 kg ?

• Di contoh kali ini kita akan memprediksi label


data di atas. Apakah manusia atau sapi?
Contoh (3)
• Berikut contoh code-nya. Dari hasil code ini,
dapat dilihat bahwa unlabelled data tersebut
merupakan data manusia
Latihan

• Dengan menggunakan k-NN dari Scikit-learn,


silahkan prediksi unlabelled data berikut
(gunakan training set yang ada di slide 8):
• Apakah ada yang aneh dengan hasil
klasifikasinya?
No. Jumlah kaki Jumlah Berat Label
tangan badan
1 2 2 30 kg ?
2 4 0 332 kg ?
3 4 0 150 kg ?
Terima Kasih
I Putu Edy Suardiyana Putra, Ph.D.

Anda mungkin juga menyukai