Anda di halaman 1dari 8

Institut Teknologi Telkom

Laporan Tugas Besar Data Mining


K-means Clustering
IF 31 11
Wahyudin Lang Negara (113081024) Haris Orizadi (113080177) M. Shahrizal Prabowo (113081060) Nur Ika Trisnawati (113081068)

2011

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

DESAIN
K-Means clustering adalah salah satu algoritma klasterisasi data dimana jumlah klaster yang ingin dibangun telah ditentukan sebelumnya. Dari data training yang didapatkan telah ditemukan bahwa terdapat 7 klaster untuk data tersebut. Desain yang kami lakukan dalam membangun sistem klasterisasi ini adalah pertama dengan menentukan centriod awal untuk tiap klaster. Karena sudah diketahui ada 7 klaster maka centriod awal juga ada 7, dimana centriod awal ini adalah berupa data yang dirandom dari data training. Berikutnya untu ksetiap tupel data training dihitung jaraknya terhadap centroid awal menggunakan rumus euclidean. Setelah menghitung semua jaraknya menggunakan rumus di atas, lakukan perhitungan untuk menentukan centroid baru. Penentuan centroid baru didapat dari jarak terdekat masing-masing data terhadap centroid awal. Data yang memiliki jarak terdekat dengan centroid maka akan menjadi anggota centroid itu. Tahap selanjutnya adalah menghitung ulang centriod, yang diperoleh dengan menghitung rata-rata jarak pada kelompok centriod yang didapatkan pada tahap sebelumnya. Centroid baru ini adalah bukan berupa data lagi tetapi merupakan suatu titik. Lakukan penghitungan jarak untuk setiap tupel data training terhadap centroid baru ini. Ulangi langkah pencarian centroid baru dan penghitungan jarak setiap tupel hingga centroid tidak berubah lagi atau telah memenuhi threshold yang ditentukan. Dalam kasus ini ditentukan threshold sebanyak 3 kali iterasi.

IMPLEMENTASI
clear; clc; data=xlsread('Training.xlsx'); datap=xlsread('Prediksi.xlsx'); [baris kolom]=size(data); [barisp kolomp]=size(datap); rnd=fix(rand(1,7)*baris)+1; % inisialisasi centroid awal (random) for i=1:7 for j=1:kolom centroid(i,j)=data(rnd(i),j); newcentroid(i,j)=0; clstr(i,j)=0; end jumlah(i)=0; end m=0; temp=1; % Clustering untuk data training while (temp) % hitung distance for i=1:baris for j=1:7 b=0; a=0; for k=1:kolom b=((data(i,k)-centroid(j,k))^2); a=b+a; end jarak(i,j)=sqrt(a);

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

end % Data ke-i diasumsikan terdekat terhadap centroid ke-1 minjarak(i,2)=jarak(i,1); minjarak(i,1)=1; % cari jarak data(i) ke centroid terdekat(1..7) for l=1:6 if (jarak(i,l+1)<minjarak(i,2)) minjarak(i,2)=jarak(i,l+1); minjarak(i,1)=l+1; end end end % new centroid (Jumlah total per atribut) for i=1:baris if (minjarak(i,1)==1) jumlah(1)=jumlah(1)+1; for j=1:kolom clstr(1,j)=data(i,j)+clstr(1,j); end elseif (minjarak(i,1)==2) jumlah(2)=jumlah(2)+1; for j=1:kolom clstr(2,j)=data(i,j)+clstr(2,j); end elseif (minjarak(i,1)==3) jumlah(3)=jumlah(3)+1; for j=1:kolom clstr(3,j)=data(i,j)+clstr(3,j); end elseif (minjarak(i,1)==4) jumlah(4)=jumlah(4)+1; for j=1:kolom clstr(4,j)=data(i,j)+clstr(4,j); end elseif (minjarak(i,1)==5) jumlah(5)=jumlah(5)+1; for j=1:kolom clstr(5,j)=data(i,j)+clstr(5,j); end elseif (minjarak(i,1)==6) jumlah(6)=jumlah(6)+1; for j=1:kolom clstr(6,j)=data(i,j)+clstr(6,j); end else (minjarak(i,1)==7) jumlah(7)=jumlah(7)+1; for j=1:kolom clstr(7,j)=data(i,j)+clstr(7,j); end end end % new centroid final(Rata-rata per atribu) & pengecekan loop berhenti temp=false; for i=1:7 for j=1:kolom newcentroid(i,j)=clstr(i,j)/jumlah(i); if (newcentroid(i,j) ~= centroid(i,j)) temp=true; end

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

clstr(i,j)=0; end jumlah(i)=0; end centroid=newcentroid; %Update newcentroid m=m+1; disp(sprintf('loop ke %d',m)); end % Clustering untuk data prediksi for i=1:barisp for j=1:7 b=0; a=0; for k=1:kolomp b=((datap(i,k)-centroid(j,k))^2); a=b+a; end jarakp(i,j)=sqrt(a); end % Data prediksi ke-i diasumsikan terdekat terhadap centroid ke-1 minjarakp(i,2)=jarakp(i,1); minjarakp(i,1)=1; % cari jarak data prdiksi ke-i ke centroid terdekat(1..7) for l=1:6 if (jarakp(i,l+1)<minjarakp(i,2)) minjarakp(i,2)=jarak(i,l+1); minjarakp(i,1)=l+1; end end end xlswrite('centroid.xls',centroid); % Data Centroid(1..7) xlswrite('kelastraining.xls',minjarak); % Class data training xlswrite('kelasprediksi',minjarakp); % Class data prediksi

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

ANALISIS
Berikut merupakan penjelasan cara kerja dari sistem yang kami bangun dengan menggunakan 10 data pertama yang berasal dari data training. Yang dilakukan oleh sistem kami yaitu 1. Merandom 7 Centroid awal yang merupakan anggota dari 10 data yang akan dicluster. 2. Hitung jarak setiap data. 3. Cari centroid yang memiliki jarak minimal ke data yang bersangkutan lalu tetapkan data tersebut ke dalam cluster yang memiliki centorid terdekat dari data tersebut. 4. Hitung jumlah tiap attribut dari masing masing yang berada di tiap cluster. 5. Hitung jumlah data tiap cluster. 6. Cari rata rata tiap attribut dari tiap cluster untuk dijadikan centroid baru. 7. Kembali ke proses 2 hingga centroid baru memiliki nilai yang sama dengan centroid sebelumnya. 8. Lakukan penghitungan jumlas class dari setiap cluster dengan menggunakan fungsi countif(range,criteria) yang terdapat di dalam microsoft excel. Setelah jumlah tiap data di tiap cluster ditemukan, maka dicarilah class yang memiliki jumlah yang terbanyak di cluster tersebut untuk dijadikan sebagai nama dari cluster tersebut. 9. Setelah centroid didapatkan, maka program dijalankan dengan input berupa data prediksi, serta menggunakan centroid yang didapatkan dari data training sehingga didapatkan class dari data prediksi.

Berikut merupakan pergerakan dari 10 data per iterasi.

A. Iterasi pertama
1. Sistem akan melakukan pengecekan jarak tiap data ke tiap centroid untuk mencari centroid terdekat dari data tersebut. Kami mencari jarak data dengan menggunakan euclidean distance dengan rumus

Dimana p adalah data, dan q adalah centroid.

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

2. Berikut merupakan jarak tiap data ke tiap centroid

Data Ke Centroid 1 1 77,3382 2 52,12502 3 87,37027 4 0 5 133,2061 6 219,0003 7 336,3705 8 187,4521 9 156,7567 10 126,8863

centroid 2 278,2589 308,5367 313,89 336,3705 323,4069 336,4082 0 247,036 379,0123 237,3333

centroid 3 92,76344 78,33573 0 87,37027 112,1585 193,3038 313,89 205,6209 201,1708 125,1728

Centroid 4 0 55,08643 92,76344 77,3382 153,6453 232,0068 278,2589 171,1831 199,089 64,82011

Centroid 5 64,82011 88,57983 125,1728 126,8863 191,5854 262,4889 237,3333 182,0186 243,0989 0

Centroid 6 171,1831 198,9407 205,6209 187,4521 151,9648 171,4894 247,036 0 149,3716 182,0186

Centroid 7 55,08643 0 78,33573 52,12502 156,4296 240,7985 308,5367 198,9407 198,5553 88,57983

3. Sehingga didapat hasil Data ke 1 2 3 4 5 6 7 8 9 10 Cluster ke 4 7 3 1 3 6 2 6 6 5 Jarak Minimum 0 0 56,07927 0 56,07927 99,23149 0 92,72581 86,49456 0

Terlihat bahwa centroid yang didapat pada iterasi pertama (hasil random) adalah data ke 1,2,3,4,7,8,10. Sementara data ke 5 masuk ke cluster no. 3 karena jarak data tersebut dekat dengan centroid ke 3.Sementara data ke 6 dan 9 masuk ke dalam cluster 6 karena data tersebut dekat dengan centroid no 6. 4. Setelah itu, sistem akan mencari centroid tiap cluster dengan menggunakan rata rata tiap atribut dari tiap cluster,

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

sehingga didapat cluster baru dengan koordinat

B. Iterasi kedua.
1. Sistem akan melakukan pengecekan jarak tiap data ke tiap centroid untuk mencari centroid terdekat dari data tersebut. Adapun centroid yang digunakan pada iterasi kedua merupakan centroid yang didapatkan dari iterasi pertama, berikut merupakan jarak tiap data ke tiap centroid Data Ke Centroid 1 1 77,3382 2 52,12502 3 87,37027 4 0 5 133,2061 6 219,0003 7 336,3705 8 187,4521 9 156,7567 10 126,8863 centroid 2 278,2589 308,5367 313,89 336,3705 323,4069 336,4082 0 247,036 379,0123 237,3333 centroid 3 113,8467 110,2655 56,07927 97,69253 56,07927 139,3832 313,711 171,8771 158,8789 151,795 Centroid 4 0 55,08643 92,76344 77,3382 153,6453 232,0068 278,2589 171,1831 199,089 64,82011 Centroid 5 64,82011 88,57983 125,1728 126,8863 191,5854 262,4889 237,3333 182,0186 243,0989 0 Centroid 6 179,6673 192,4052 177,1908 165,0715 84,16426 99,23149 311,9408 92,72581 86,49456 212,2907 Centroid 7 55,08643 0 78,33573 52,12502 156,4296 240,7985 308,5367 198,9407 198,5553 88,57983

2. Sehingga didapat jarak minimum Data ke 1 2 3 4 5 6 7 8 9 10 Cluster ke 4 7 3 1 3 6 2 6 6 5 Jarak Minimum 0 0 56,07927087 0 56,07927087 99,23148617 0 92,72581018 86,49456253 0

April 28, 2011

[LAPORAN TUGAS BESAR DATA MINING]

3. Setelah itu, sistem akan mencari centroid tiap cluster dengan menggunakan rata rata tiap atribut dari tiap cluster. Adapun cluster baru yang didapat adalah :

C. Iterasi Ketiga
Dikarenakan isi centroid yang diperoleh pada iterasi pertama (digunakan pada iterasi kedua) sama dengan centroid yang diperoleh pada iterasi kedua (akan digunakan pada iterasi ketiga), maka proses clustering pun selesai.

KESIMPULAN
Algoritma K means clustering merupakan salah satu algoritma clustering yang sederhana. Inti dari Algoritma K Means adalah menghitung jarak lalu memilih centroid terdekat dari data untuk menetapkan cluster dari data tersebut. Selain itu, ini dari K Means juga penentuan centroid baru dengan menggunakan rata rata atribut setiap data di dalam cluster yang sama. Algoritma K Means kurang cocok untuk data percobaan ini karena data ini memiliki dimensi yang besar, sehingga K Means kurang dapat menghasilkan keluaran yang optimal.

Anda mungkin juga menyukai