Tampilkan postingan dengan label Logika Fuzzy. Tampilkan semua postingan
Tampilkan postingan dengan label Logika Fuzzy. Tampilkan semua postingan

Jumat, 29 Juni 2012

Fuzzy Subtractive Clustering


            Pengklasteran Subtraktif didasarkan atas ukuran kerapatan  (potensi)  titik-titik  data  dalam  suatu  ruang (variabel). Konsep dasar dari Pengklasteran Subtraktif adalah  menentukan  daerah-daerah  dalam  suatu variabel  yang memiliki  potensi  tinggi  terhadap  titik-titik di  sekitarnya. Titik-titik dengan  jumlah  tetangga terbanyak  akan  dipilih  sebagai  pusat  klaster.  Titik yang sudah terpilih sebagai pusat klaster ini kemudian akan dikurangi potensinya. Kemudian algoritma akan memilih  titik  lain  yang memiliki  tetangga  terbanyak untuk  dijadikan pusat klaster  yang  lain. Hal  ini  akan dilakukan berulang-ulang hingga semua titik diuji.
Algoritma Fuzzy Subtractive clustering adalah sebagai berikut (Kusumadewi, 2010) :
  1. Menentukan:
Matriks X yang merupakan data yang akan dicluster, berukuran i x j, dengan i = jumlah data yang akan di-cluster dan j = jumlah variabel/atribut (kriteria).
 
  1. Menentukan :
a.  rj (jari-jari setiap atribut data); j=1,2,..,m.
b.  q (squash factor).
c.  accept ratio .
d.  reject ratio.
e.  Xminj (min data yang diperbolehkan dalam setiap atribut data) ; j=1,2,..,m.
f.  Xmaxj (max data yang diperbolehkan dalam setiap atribut data) ; j=1,2,..,m.
  1. Normalisasi :
 
i = 1,2,…,n ; j=1,2,..,m
Dimana :
Xij = data ke-i atribut ke-j.
Xminj = minimum data pada atribut ke-j.
Xmaxj = maximum data pada atribut ke-j.
  1. Tentukan potensi awal tiap-tiap titik data
    1. i = 1; i adalah data ke.
    2. Kerjakan hingga i=n,
                                                              i.      Tj = Xij(Tj merupakan data ke-i atribut ke-j); j=1,2,…,m
                                                            ii.      Hitung :
                                                          iii.      Hitung potensi awal :
Dimana :
Di merupakan potensi data ke-i
  1. Cari titik dengan potensi tertinggi 
           
           
            Dimana :
M adalah titik dengan potensi tertinggi
h adalah posisi titik yang memiliki potensi tertinggi
  1. Tentukan pusat cluster dan kurangi potensinya terhadap titik-titik di sekitarnya :
    1. Center = []
Center merupakan pusat cluster
    1. Vj = Xhj; j=1,2,..,m.
            Vj merupakan nilai normalisasi pada data dengan potensi tertinggi.
    1. C = 0
            C merupakan jumlah cluster.
    1. Kondisi = 1
    2. Z = M
            Z merupakan potensi titik yang diacu sebagai pusat cluster.
    1. Kerjakan selama (Kondisi ≠ 0)&(Z ≠ 0)
                                                              i.      Kondisi = 0
                                                            ii.      Rasio = Z/M
                                                          iii.      Jika Rasio > accept ratio, maka kondisi = 1
         Hal ini menandakan ada calon pusat baru.
                                                          iv.      Jika tidak
o   Jika rasio > reject ratio, maka kerjakan :
o   Hal ini menandakan calon baru akan diterima sebagai pusat jika keberadaanya akan memberikan keseimbangan terhadap data-data yang letaknya cukup jauh dengan pusat cluster yang telah ada.
·         Md = -1
·         Kerjakan untuk i=1 sampai i=C:
§ , j=1,2,…,m
§
§ Jika (Md < 0) atau (Sd < Md), maka Md = Sd
·         Smd = √Md
·         Jika (Rasio + Smd) >= 1, maka kondisi = 1
Hal ini berarti data diterima sebagai pusat cluster.
·         Jika (Rasio + Smd) < 1, maka kondisi = 2
Hal ini berarti data tidak akan dipertimbangkan kembali sebagai pusat cluster
o   Jika kondisi = 1, maka kerjakan :
·         C = C + 1
·         Centerc = V
·         Kurangi potensi dari titik-titik di dekat pusat cluster :
§ , i=1,2,…,n; j = 1,2,…,m
§ , i=1,2,…,n
§ Di = Di - Dci
§ Jika Di <= 0, maka Di = 0; i=1,2,…,n
§ Z =
§ h = i, sedemikian hingga Di = Z
o   Jika kondisi = 2, maka :
·         Dh = 0
·         Z =
·         h = i, sedemikian hingga Di = Z
  1. Kembalikan pusat cluster dari bentuk ternormalisasi ke bentuk semula
           
  1. Hitung nilai sigma cluster :
σj = rj * (Xmaxj - Xminj)/√8
  1. Hitung derajat keanggotaan setiap titik data Xi pada cluster ke-k
           

Fuzzy C-Means (FCM)

           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 Jim Bezdek pada tahun 1981.
            Konsep  dasar  FCM  yaitu  menentukan  pusat cluster,  yang  akan  menandai  lokasi  rata-rata  untuk  setiap  cluster. Dengan  cara memperbaiki pusat cluster dan derajat keanggotaan setiap titik data  secara  berulang,  maka  akan  dapat  dilihat bahwa  pusat  cluster  akan  bergerak  menuju lokasi  yang  tepat.  Perulangan  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.
            Output dari FCM bukan merupakan fuzzy inference system, namun merupakan deretan pusat cluster dan beberapa derajat keanggotaan untuk tiap-tiap titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy inference system.
Algoritma Fuzzy C-means clustering adalah sebagai berikut :
  1. Menentukan:
Matriks X yang merupakan data yang akan dicluster, berukuran k x j, dengan k = jumlah data yang akan di-cluster dan j = jumlah variabel/atribut (kriteria).
 
  1. Menentukan :
a.  Jumlah cluster yang akan dibentuk (n >c ≥ 2).
b.  pembobot (w > 1).
c.  Maksimum iterasi (max n).
d.  Kriteria penghentian/treshold (ɛ = nilai positif yang sangat kecil).
e.  Menentukan fungsi obyektif awal (P0).
  1. Membentuk matriks partisi awal U (derajat keanggotaan dalam cluster) dengan ukuran k x i; matriks partisi biasanya dibuat acak, , dengan k = jumlah data yang akan di-cluster dan i = jumlah cluster
  1. Hitung pusat cluster (V) untuk setiap cluster, menggunakan rumus :
Keterangan :
Vij = pusat cluster pada cluster ke-i dan atribut ke-j.
μik = data partisi (pada matriks U) pada cluster ke-i dan data ke-k.
Xkj = data (pada matriks U) pada atribut ke-j dan data ke-k.
w = pembobot.
  1. Hitung nilai obyektif (Pn) dengan rumus :
Keterangan :
μik = data partisi (pada matriks U) pada cluster ke-i dan data ke-k.
dik = fungsi ukuran  jarak untuk  jarak Euclidean pada pusat cluster ke-i dan data ke-k.
w = pembobot.
Pn = nilai obyektif pada iterasi ke-n.
  1. Perbaiki derajat keanggotaan setiap data pada setiap cluster (perbaiki matriks partisi)
dengan :
Keterangan :
μik = data partisi (pada matriks U) pada pusat cluster ke-i dan data ke-k.
dik = fungsi ukuran  jarak untuk  jarak Euclidean pada pusat cluster ke-i dan data ke-k.
djk = fungsi ukuran  jarak untuk  jarak Euclidean pada pusat cluster ke-j dan data ke-k.
w = pembobot.
Xkj = data (pada matriks U) pada atribut ke-j dan data ke-k.
  1. Menghentikan  iterasi  jika  pusat  cluster  V tidak  berubah.  Alternatif  kriteria penghentian  adalah  jika  perubahan  nilai error kurang dari treshold |Pn - Pn-1| < ɛ. Alternatif adalah ketika perulangan melebihi maksimum iterasi ( n > max n). Jika iterasi belum berhenti, kembali ke langkah 4.
  2. Jika iterasi berhenti, ditentukan cluster dari tiap-tiap data. Cluster dipilih berdasarkan nilai matriks partisi terbesar.