Anda di halaman 1dari 22

DATA MINING

Fuzzy C Means
OLEH :
Putu Virga Nanta Nugraha 110!0!0!"
Fa#ar Fir$ansyah 110!0!0%1
Day &is'y (ahyu )u*+n+ 110!0!0%,
I De*a Ma-e .u-a A-itya Putra 110!0!0%!
/0&01AN TE2NOLOGI INFO&MA1I
FA20LTA1 TE2NI2 0NIVE&1ITA1 0DA.ANA
301
14 Pen-ahu5uan
Fuzzy C-Means (FCM) merupakan salah satu algoritma fuzzy
clustering. Fuzzy C-Means (FCM) adalah suatu teknik pengclusteran data yang
keberadaan setiap titik data dalam suatu cluster ditentukan oleh derajat
keanggotaan. Teknik ini pertama kali diperkenalkan oleh im !ezdek.
"onsep dasar FCM yaitu menentukan pusat cluster# yang akan
menandai lokasi rata-rata untuk setiap cluster. $engan cara memperbaiki pusat
cluster dan derajat keanggotaan setiap titik data secara berulang# maka akan
dapat dilihat bah%a pusat cluster akan bergerak menuju lokasi yang tepat.
&erulangan ini didasarkan pada pada minimisasi fungsi obyektif yang
menggambarkan jarak dari titik data yang diberikan ke pusat cluster yang
terbobot oleh derajat keanggotaan titik data tersebut. 'utput dari FCM bukan
merupakan fuzzy inference system# namun merupakan deretan pusat cluster dan
beberapa derajat keanggotaan untuk tiap-tiap titik data. (nformasi ini dapat
digunakan untuk membangun suatu fuzzy inference system.
34 Tin#auan Pusta6a
341 A5g+rit$a Fuzzy C Means
FCM merupakan algoritma yang bersifat iteratif. Tujuan dari FCM adalah
untuk menemukan pusat cluster (centroid) yang menimalkan fungsi
pertidaksamaan. !erikut langkah-langkah dari FCM)
1. *usunlah matri+ , berukuran n + m sebagai tempat dari data yang akan di-
cluster. $i mana n merupakan banyaknya data dan m merupakan banyaknya
atribut dari data tersebut. ,ij - data pada sampel ke-i dan atribut ke-j
2. (nisiasikan nilai pada komponen-komponen berikut ini)
(.) !anyaknya cluster yang diinginkan c
(/) &angkat (pembobot) %
(0) Maksimum (terasi ma+(ter
(1) 2rror terkecil e
(3) Fungsi 'bjektif a%al &4 - 4
(5) (terasi a%al iter - .6
3. !angkitkan bilangan acak 7ik# dimana banyaknya i sejumlah data dan k
sejumlah cluster
4. 8itunglah pusat cluster dengan rumus

(.)
5. 8itung fungsi objektif pada iterasi ke-iter# rumusnya
(/)
6. &erbaharui matri+ partisi 7 dengan menggunakan rumus)
(0)
7. Cek kondisi berhenti# jika &iter 9 &iter-. : e atau iter ; ma+(ter maka proses
perhitungan berhenti. <amun jika keduanya tidak memenuhi# maka iter -
iter=. dan kembali ke langkah-1.
*ehingga bila langkah-langkah diatas digambarkan dalam suatu diagram alir
maka akan terlihat seperti pada gambar berikut ini.
Ga$7ar 14 $iagram >lir Fuzzy C Means
343 C+nt+h Perhitungan 1e-erhana
$iberikan data dengan banyak data sejumlah 3 buah dengan 0 atribut.
Tentukan cluster dengan algoritma FCM jika banyaknya cluster yang diinginkan
sejumlah / cluster
Langkah 1:
i = 5 ; j = 3
Matrix X
Data ke-
i
Atribut
A (1) B (2) C (3)
1 12 7 9
2 5 4 5
3 11 4
4 1! 3
5 9 1 3
Langkah 2:
(nisiasikan nilai pada komponen-komponen berikut ini)
(.) !anyaknya cluster yang diinginkan c - /
(/) &angkat (pembobot) % - /
(0) Maksimum (terasi ma+(ter - 3
(1) 2rror terkecil e - 4#4.
(3) Fungsi 'bjektif a%al &4 - 4
(5) (terasi a%al iter - .6
Lang6ah ,
!angkitkan matri+ 7ik dengan komponen i - banyaknya data6 k - banyak
cluster
i k. k/
. 4#0 4#?
/ 4#/ 4#@
0 4#1 4#5
1 4#@ 4#/
3 4#1 4#5
Lang6ah
8itung pusat cluster dengan menggunakan rumus (.)
i
"ik Xij
1 2 1 2 3 "i1
#
"i2
#
"i1
#
$ Xi1 "i1
#
$ Xi2
1 !%3 !%7 12 7 9 !%!9 !%49 1%! !%63
2 !%2 !% 5 4 5 !%!4 !%64 !%2 !%16
3 !%4 !%6 11 4 !%16 !%36 1%2 1%76
4 !% !%2 1! 3 !%64 !%!4 6%4 1%92
5 !%4 !%6 9 1 3 !%16 !%36 1%44 !%16
Jumlah 1%!9 1%9 1!%4 4%63
"i1
#
$ Xi3 "i2
#
$ Xi1 "i2
#
$ Xi2 "i2
#
$ Xi3
!%1 5% 3%43 4%41
!%2 3%2 2%56 3%2
!%64 2% 3%96 1%44
5%12 !%4 !%12 !%32
!%4 3%24 !%36 1%!
7%25 15%6 1!%43 1!%45
Lang6ah !
&kj 1 2 3
1
9%54124
4
4%2477!6
42
6%651376
15
2
%25396
25
5%5151
52
5%5291!!
53
*ehingga diperoleh pusat cluster)
8itung fungsi objektif dengan menggunakan rumus (/)
'(u)ter 1 '(u)ter 2
i
(Xi1 -
&i1)2
(Xi2 -
&i1)2
(Xi3 -
&i1)2 *+*A, 1
(Xi1 -
&i2)2
(Xi2 -
&i2)2
(Xi3 -
&i2)2 *+*A, 2
1
6%!4522
3
7%575119
94 5%516!34
19%13643
63
14%!3275
34
2%19477
3
12%!4714
314
2%2746
436
2
2!%62326
4
!%!6135
47
2%727!43
1
23%41166
57
1!%53!
94
2%3!59
491
!%279947
37
13%17415
526
3
2%375557
61
45%59346
6
7%!29795
47
54%992
16
!%!64499
74
3!%!4663
923
2%3314
42
32%4492
753
4 !%21!42
1%556771
32
1%176
3
3%55977
61
3%!4626
5
6%342935
52
6%1!5344
195
15%4969!
65
5
!%2929
1
1!%54759
7
13%33254
7
24%17313
36
!%556563
366
2!%417!!
96
6%396349
46
27%36992
245
i
k(u)ter 1 k(u)ter 2
- k(u)ter
(Xij - &kj)2
"ik
# - (Xij - &kj)2
"ik
# -
1
19%136436
3 !%!9
1%7222792
7
2%27464
4 !%49
13%545953
4
15%57674
61
2
23%411665
7 !%!4
!%9364666
3
13%174155
3 !%64
%43145936
6
9%3679259
93
3 54%9921 !%16 %799114 32%44927 !%36 11%617435 2!%41554
6 6 5 1 9
4
3%559776
1 !%64
2%295!256
7
15%4969!6
6 !%!4
!%6197626
3
2%9149!19
35
5
24%173133
6 !%16
3%677!13
7
27%369922
5 !%36
9%53172!
4
13%72!73
46
TOTAL P
62%!6213!
96
Lang6ah %
&erbaharui 7
i
(Xi1 -
&i1)2
(Xi2 -
&i1)2
(Xi3 -
&i1)2
(Xi1 -
&i2)2
(Xi2 -
&i2)2
(Xi3 -
&i2)2 ,* "i1 "i2
1
6%!4522
3
7%575119
94 5%516!34
14%!3275
3
2%19477
3
12%!4714
314
47%41112!
69
!%4!3627
59
!%5963724
11
2
2!%62326
4
!%!6135
47
2%727!43
1
1!%53!
94
2%3!59
491
!%279947
37
36%552!
94
!%63991!
9!2
!%36!!9!
9
3
2%375557
61
45%59346
6
7%!29795
47
!%!64499
7
3!%!4663
923
2%3314
42
7%441!9
1
!%6293!
942
!%371!69!
5
4 !%21!42
1%556771
32
1%176
3
3%!4626
6
6%342935
52
6%1!5344
195
19%!24
19
!%17915
913
!%12!4!
7
5
!%2929
1
1!%54759
7
13%33254
7
!%556563
37
2!%417!!
96
6%396349
46
51%543!56
!3
!%4699
141
!%531!1!
59
Maka didapatkan nilai 7 yang baru)
i k1 k2
1 !%4 !%6
2 !%64 !%36
3 !%63 !%37
4 !%19 !%1
5 !%47 !%53
Lang6ah "
Cek kondisi berhenti)
>pakah iter ; ma+(terA ::salah;;
>pakah B&.-&4B : eA ::salah;;
Ma6a u5angi 5ang6ah 6e8
*etelah mengalami 3 kali proses iterasi# maka didapatkan besarnya pusat cluster
sebagai berikut)
7 -
3? # 4 10 # 4
C3 # 4 43 # 4
/1 # 4 ?5 # 4
/C # 4 ?. # 4
?1 # 4 /5 # 4
!erdasarkan hasil pembaharuan matri+ 7 maka dapat disimpulkan kecenderungan
suatu data akan masuk ke dalam cluster yang mana dengan melihat derajat
keanggotaan yang tertinggi dari setiap cluster
i C5uster
1 3
1 ,
3 ,
, ,
,
! ,
,4 Pe$7ahasan
7ntuk membuat sebuah program ataupun aplikasi menghitung fuzzy c means
kali ini kami menggunakan aplikasi matlab untuk mempermudah penggunaan rumus
yang cukup rumit. "ami menggunakan dua buah pendekatan aplikasi yaitu aplikasi
yang dibuat dengan kode program dan toolbox ba%aan dari matlab untuk perhitungan
fcm.
,41 2+-e Pr+gra$
!erikut merupakan sintak program fuzzy c means.
function [U,V,O]=fcm2(x,c)
[n,m]=size(x);
%% initialization
%% matriks data: n aris x m kolom
!=2;
teta="e#$;
%&=&;
%t=&;
O'=[];
2+-e Pr+gra$ 14 *yntak Fungsi dan (nisialisasi Dariable
&ertama buat fungsi seperti diatas yang dinamai fcm/ dengan menginisialisasi nilai +
dan c dimana nilai + merupakan kumpulan data dalam matrik dan c banyak cluster
yang dibuat atau diinginkan. "emudian inisialisasi bobot# tentukan error terkecil#
iterasi a%al dan fungsi objektif a%al. "emudian proses selanjutnya yaitu inisialisasi
nilai bilangan acak seperti pada kode program berikut.
U=rand(n,c);
(=sum(U)));
for i=":n
U(i,:)=U(i,:)*((i);
end
U
+ause
,-./=";
O0="e$;
!1ile (O02teta)
(=sum(U34!));
V=(U)34!5x);
for i=":c
V(i,:)=V(i,:)*((i);
end;

dis+()6,78, V)), V
+ause
2+-e Pr+gra$ 34 *yntak &encarian <ilai 7 dan D
pada syntak diatas pertama yang dilakukan adalah inisialiasi nilai 7 dengan mengisi
data acak yang didapat dari nilai n pada syntak sebelumnya dan nilai c berdasarkan
cluster yang diinginkan. "emudian dilakukan peroses perlulang sampai kreteria
dipenuhi dan nilai 7 dan objek baru akan didapat pada iterasi ini. ika nilai objek
masih lebih besar dari teta maka akan dilanjutkan keproses selanjutnya yaitu
mengubah nilai D. kemudian dilanjutkan dengan mengubah nilai D dan 7 sampai
kreteria fuzzy c means terselesaikan. !erikut merupakan syntak untuk mengubah nilai
7 dan D.
for i=":n
9=&;
for k=":c
9"=&;
for 0=":m
9"=9":(x(i,0)#V(k,0))42;
end
9"=9"4(#"*(!#"));
U(i,k)=9";
9=9:9";
end
for k=":c
U(i,k)=U(i,k)*9;
end
end
dis+()6,78, U));U
+ause
2+-e Pr+gra$ ,4 *yntak 7ntuk 7pdate <ilai 7 dan D.
&ada syntak diatas dilakukan proses perulangan beberapa proses kemudian dari sini
akan didapat nilai 7 akhir untuk dilanjutkan keproses selanjutnya yaitu mencari nilai
cluster yang lebih kecil dari error dan iterasinya lebih besar dari maksimal iterasi.
*ehingga dalam matlab syntak yang dibuat akan <ampak seperti pada kode program
berikut ini.
%&=%t;
%t=&;
for i=":n
for k=":c
for 0=":m
%t=%t:( x(i,0)#V(k,0))425U(i,k)4!;
end
end
end
O0=as(%t#%&)

,-./=,-./:"
+ause
O'=[O' O0];
end

O=O';
,ter2c;
sto+
% end
2+-e Pr+gra$ 4 *yntak Mencari <ilai &t dan &enambahan umlah (terasi Eang *udah $ilakukan.
$ari syntak diatas akan didapat dilihat dilakukan beberapa perulangan agar nilai &t
yang didapat sesuai dengan kondisi. Fumus yang digunakan untuk mencari niali &t
adalah rumus mencari nilai FCM yang digunkan pada matlab. "emudian pengeceaan
iterasi akan dilakukan sestiap terjadi perulangan dimana nilai iterasi yang baru
ditambah . (satu) setiap perlungan terjadi dan akan berhenti bila kondisi iterasi lebih
besar dari maksimal iterasi yang di-inputkan sebelumnya. >pabila kode program
diatas dijalankan maka akan tampil seperti pada gambar berikut.
Ga$7ar 14 $eklarasi <ilai + dan &emanggilan Fungsi
&ertama-tama inisialisasi nilai + seperti gambar diatas. &ada contoh kali ini digunakan
matrik berukuran 3 + /. "emudian lakukan proses pemanggilan nama program yang
kami beri nama fcm/ dengan menginisialiasi nilai + dan maksimal iterasi yang kami
buat yaitu 1 kedalam fungsi yang disediakan sebelumnya. "emudian tekan enter
maka kan nampak seperti pada gambar diba%ah.
Ga$7ar 34 8asil <ilai 7
&ada gambar diatas didapat nilai 7 sesuai dengan syntak yang dibuat sebelumnya
kemudian tekan enter untuk melanjutkan ke proses selanjutnya yaitu penetapan nilai
D seperti terlihat pada gambar diba%ah.
Ga$7ar ,4 8asil <ilai D
"emudian akan dilanjutkan dengan proses selanjutnya yaitu update nilai 7 dan D dan
akan didapat nilai objek baru seperti ditunjukkan pada gambar diba%ah.
Ga$7ar 4 &erubahan <ilau D dan 7 serta 8asil $ari 'bjek !aru
&ada gambar diatas didapat nilai objek sesuai dengan syntak yang telah dibuat
sebelumnya dan iterasi bertambag satu sampai iterasi lebih besar dari maksimal
iterasi yang ditetapkan yaitu empat atau nilai objek baru (&t) lebih kecil dari error
yang ditetapkan dimana error yang ditetapkan. &roses akan terus berlanjut hingga
hasil akhir yang didapat adalah seperti berikut ini.
Ga$7ar !4 8asil (terasi Terakhir
&ada gambar diatas terlihat hasil objek baru yang didapat adalah 4./.?4 dan iterasi
lebih besar dari iterasi yang ditetapkan. &ada program diatas masih ada beberapa
kekurangan seperti proses tidak berhenti samapai iterasi lebih besar dari iterasi yang
ditetapkan dimana iterasi yang ditetapkan yaitu empat (1) akan tetapi pada program
ini iterasi samapai iterasi ke enam yang seharusnya sampai iterasi ke lima saja.
*ehingga dirasa aplikasi yang dibuat masih jauh dari sempurna dikarenakan
keterbatasan %aktu dan faktor lainnya.
,43 Toolbox FCM
Matlab menyediakan sebuah alat yang dapat digunakan menghitung fuzzy c
means tanpa perlu membuat sebuah kode program yang rumit. 7ntuk membuka
toolbox ini dapat dilakukan dengan mengetik perintah fcmdemo atau klik dua kali
pada paket toolbox ini sehingga akan muncul tampilan alat bantu seperti gambar 5.
&ada gambar 5 terlihat disana memilih dataset atau sample data yang akan
digunakan. ika memiliki dataset sendiri maka dapat memilih pilihan custom yang
akan membuka dataset yang kita miliki.
Ga$7ar %4 Tampilan 7tama Toolbox FCM
Ga$7ar "4 Tampilan &emilihan File $ataset
&ada gambar @ dapat dilihat pemilihan jumlah cluster yang akan kita gunakan.
Ga$7ar 94 Tampilan &emilihan Cluster
$apat dilihat tampilan dengan menggunakan / cluster pada gambar C.
Ga$7ar :4 Tampilan $engan / Cluster
7ntuk menampilkan grafik plot dari cluster# kita memilih cluster yang ingin dilihat
kemudian menekan tombol &lot MF untuk menampilkannya.
Ga$7ar 104 Tampilan 8asil dengan 5 Cluster
&ada gambar .. ditampilkan &lot pada cluster 0
Ga$7ar 114 Tampilan Grafik "eanggotaan
Ga$7ar 134 Tampilan Grafik "eanggotaan pada Cluster ke /

4 1i$;u5an
>dapun simpulan yang didapat dari pembuatan laporan dan aplikasi Fuzzi C
Means adalah sebagai berikut)
.. Fuzzy C Means merupakan suatu teknik pengclusteran data yang keberadaan
setiap titik data dalam suatu cluster ditentukan oleh derajat keanggotaan.
/. "onsep dasar FCM yaitu menentukan pusat cluster# yang akan menandai
lokasi rata-rata untuk setiap cluster.
0. &embuatan program FCM dengan menggunakan Matlab cukup mudah karena
dibantu tools yang sudah ada akan tetapi masih ada beberapa fungsi yang harus
dibuat sesuai logika dan rumus yang sudah ada.
1. &rogram FCM masih agak jauh dari sempurna dikarenakan kekurangan %aktu
dan sumber data yang cukup minim.
DAFTA& P01TA2A
http)HH%%%.math%orks.comHhelpHfuzzyHfcm.html tanggal akses /3 mei /4.1
http)HHsariberbagiilmu.blogspot.comH/4..H43Hfuzzy-c-means.html tanggal /0 mei
/4.1
http)HHinformatika.%eb.idHmetode-fuzzy-c-means-clustering.htm tanggal akses /3 mei
/4.1

Anda mungkin juga menyukai