Anda di halaman 1dari 10

PROJECT

PCD

Ekstrasi Ciri Wajah

Muhammad Iqbal Nahariqi


(181080200225)

PROGRAM STUDI INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2020
Clustering Dengan Algoritma K-Means

1. Pendahuluan
Clustering adalah pengelompokan sejumlah besar obyek berdasarkan ciri atau atribut tertentu
kedalam sejumlah kelompok atau cluster. Dengan clustering, dan dengan menggunakan
algoritma clustering tertentu, sejumlah obyek yang memiliki nilai parameter atau atribut yang
mendekati sama akan dapat dikelompokkan dengan mudah.
Tujuan dari pengelompokan bisa untuk berbagai keperluan, salah satunya adalah untuk keperluan
pengenalan pola (pattern recognition) dimana setelah data dikelompokkan, akan lebih mudah
melakukan analisa selanjutnya untuk mengenali secara lebih rinci pola-pola yang dimiliki oleh
suatu kumpulan obyek.
Untuk pengelompokan obyek, terdapat sejumlah algoritma yang banyak digunakan dalam
melakukan clustering, antara lain C-Means, Isodata, dan K-Means. Dalam tulisan ini,
pembahasan dibatasi hanya pada algoritma clustering K-Means

2. Algoritma K-Means
Algoritma K-Means merupakan algoritma yang relatif sederhana untuk mengklasifikasikan
atau mengelompokkan sejumlah besar obyek dengan atribut tertentu kedalam kelompok
-kelompok (cluster) sebanyak K. Pada algoritma K-Means, jumlah cluster K sudah ditentukan
lebih dahulu.
Setiap cluster memiliki titik pusat dan anggota-anggota dari satu cluster dipilih berdasarkan
jarak dari titik pusat cluster terdekat. Penentuan keanggotaan dan titik pusat cluster kemudian
menjadi tidak mudah, karena penambahan satu anggota pada lokasi yang signifikan akan
merubah lokasi titik pusat cluster, dan status keanggotaan harus ditinjau kembali, perubahan
keanggotaan kemudian akan kembali merubah lokasi titik pusat dan seterusnya keanggotaan
mungkin akan berubah lagi. Karena itu, proses penentuan titik pusat dan keanggotaan cluster
harus dilakukan dalam iterasi (perulangan) hingga posisi titik pusat dan angota-anggota cluster
benar-benar stabil
Algoritma K-Means, melakukan tiga langkah utama dalam melakukan pengelompokan:
1. Menentukan koordinat titik pusat untuk masing-masing cluster. Jumlah cluster K sudah
ditentukan sebelumnya, sehingga terdapat K koordinat titik pusat. Inisialisasi koordinat titik
pusat dapat dilakukan secara sekuensial dengan mengambil sejumlah data pertama sebagai titk
pusat, atau secara acak (random) pada sembarang nomor urut data
2. Menghitung jarak setiap obyek terhadap semua titik pusat cluster
3. Mengelompokkan obyek berdasarkan jarak minimum atau jarak ke titik pusat terdekat
Langkah 1-3 di atas dilakukan dalam perulangan (iterasi) sampai tidak ditemukan lagi obyek
yang berpindah cluster akibat perhitungan kembali titik-titik pusat cluster pada iterasi terakhir.
Secara sederhana algoritma K-Means dapat digambarkan daam flowchart seperti berikut:
Contoh Program
% CLUSTER - Simple k means clustering algorithm

% Author:
% see
%
% Modified by: Nahar
%
% Date modified: 21/01/2021
%
load data.dat; % baca file data
k=3; % tentukan jumlah cluster
isRand=0; % 0 -> inisialisasi center secara sekuensial
% 1 -> inisialisasi center secara random
[maxRow, maxCol]=size(data) if maxRow<=k,
y=[m, 1:maxRow]

else

% initial value of centroid if isRand,


p = randperm(size(data,1)); % random initialization for i=1:k
c(i,:)=data(p(i),:)

end
else
for i=1:k
c(i,:)=data(i,:) % sequential initialization
end
end

temp=zeros(maxRow,1); % siapkan dan kosongkan variabel temporer


u=0;
while 1,
d=DistMatrix(data,c); % hitung jarak node -centroid [z,g]=min(d,[],2); % tentukan
group matrix g

if g==temp, % jika tidak ada perub ahan lagi break; % hentikan iterasi

else
end

temp=g; % copy group matrix ke temporary variable


for i=1:k
f=find(g==i);
if f % hitung centroid ha nya jika berisi
c(i,:)=mean(data(find(g==i),:),1)
end
end
end
y=[data,g];
hold off; % siapkan untuk grafik persisten graphdata(y); % plot titik
data (node)
% plot titik pusat cluster x = c(:,1);
y = c(:,2);
plot(x,y,'k*');
end
Program yang digunakan untuk melakukan percobaan clustering dengan algoritma K-Means
menggunakan MatLab.

3. Hasil Eksekusi
Deskripsi Data
Data sample dibangkitkan secara acak sebanyak 400 record data dua -dimensi (x,y)
dengan ketelitian sampai tiga angka desimal, dengan demikian didapatkan 400 obyek dengan
jarak terk ecil antar obyek yang bisa relatif sangat kecil dan memberikan tingkat kesulitan yang
tinggi untuk pengelompokannya
Jumlah cluster dapat ditentukan secara bebas, tapi dalam percobaan diasumsikan jumlah cluster
(k) = 3 dan titik tengah menggunakan inisialisasi secara sekuensial (diasumsikan dimulai dari
data pertama).

4. Hasil Iterasi
Eksekusi program menghasilkan matrix Y, merupakan matrik 3 kolom yang berisi
koordinat data pada kolom ke-1 dan ke-2, serta nomor cluster dimana data tersebut menjadi
anggotanya pada kolom ke-3.
314.0570 252.8270 1.0000
291.5250 345.6970 2.0000
253.7050 260.2710 3.0000
258.9740 303.5720 3.0000
333.2220 295.0110 1.0000
355.3950 275.6110 1.0000
272.7780 298.1130 3.0000
261.7830 299.5340 3.0000
278.4410 264.7320 3.0000
302.7470 291.2530 1.0000

263.5720 338.3440 3.0000


…..
…..
241.8470 347.7770 3.0000
272.6090 335.6680 3.0000
315.0710 303.4620 2.0000
281.5990 242.8870 1.0000
347.5770 272.3290 1.0000
278.7160 270.3510 3.0000

Terbentuk pula matrix C yang berisi koordinat titik pusat dari setiap cluster
c=
324.5261 268.3291
321.8325 325.9831
263.9666 296.0499

5. Hasil Plotting
Berdasarkan data keanggotaan cluster (matrix Y) dan data koordinat titik pusat cluster
(centroid hasil iterasi terakhir) pada matrix C di atas, maka dapat ditampilkan plotting setiap titik
obyek dalam kelompoknya (dengan warna berbeda) dan titik pusat cluster-nya, dalam grafik
berikut:

Program Lengkap
Cluster.m

DistMatrix.M
Graphdata.M

Anda mungkin juga menyukai