Skip to content
F

Forest_optimization_Fuzzy_C-Means

Project ID: 42

FOFCM (Forest Optimization Fuzzy C-Means)

FOFCM merupakan algoritma pengoptimasi FCM agar tidak terjebak pada local optima dan mendapatkan pusat cluster yang tidak random. FOFCM dibangun dengan script R yang kemudian dihubungkankan ke dalam aplikasi R-Cluzzy. Selain itu script FOFCM dapat digunakan pada aplikasi R maupun Rstudio.

Berikut adalah langkah-langkah dalam menggunakan FOFCM pada aplikasi R, Rstudio, serta R-cluzzy

R dan Rstudio

  • masukan file fofcm.r pada project r
  • run seluruh isi script fofcm.r
  • algoritma FOFCM siap dipakai

Cara penggunaan

untuk menggunakan script FOFCM pada aplikasi R dan Rstudio adalah dengan mengetikan atau melakukan copy-paste code berikut:

fofcm(data,number_cluster_center,life_time,area_limit,LSC,GSC,transfer_rate,distance,seed,loop.max,err,nochange,fuzzifier,gradient_loop)

Parameter

Variabel Penjelasan
data Data yang akan digunakan untuk dikelompokkan
number_cluster_center Jumlah Cluster atau kelompok yang ingin dibuat
life_time Maksimal umur dari pohon (default:6)
area_limit Maksimal batas populasi pohon (bebas, biasanya sejumlah data)
LSC local seeding change: jumlah banyaknya pohon baru yang tumbuh dari pohon berusia 0 (default:20% , dapat diinput tanpa persentase(misal:20))
transfer_rate persentase jumlah pohon pada populasi kandidat yang akan masuk kedalam Global seeding
GSC Global seeding change: jumlah banyaknya variabel pohon terpilih yang akan diubah nilainya (default:10% , dapat diinput tanpa persentase(misal:20))
distance ukuran jarak yang akan digunakan (Euclidean atau Mahalanobis)
seed Untuk menentukan persebaran random
loop.max jumlah maksimum iterasi FOFCM
err tingkat akurasi selisih nilai fungsi objektif
nochange jumlah iterasi dengan nilai fungsi objektif tidak berubah sebanyak nochange
fuzzifier Fuzzifier untuk menentukan tingkat kekaburan (nilai default : 2)
gradient_loop Iterasi maksimum dalam melakukan metode gradient (nilai default:3)

R-Cluzzy

Berikut adalah langkah-langkah penginstallan aplikasi R-cluzzy:

  • extract R-Cluzzy.zip
  • install package factoextra dan fmsb pada aplikasi R atau Rstudio
  • buka R-Cluzzy.exe
  • aplikasi siap dipakai
  • langkah penggunaan metode FOFCM terdapat pada help aplikasi R-cluzzy

Persyaratan sistem

Berikut adalah hal-hal yang diperlukan dalam menjalankan aplikasi R-Cluzzy:

  • terinstall aplikasi R minimal versi 3.3.2
  • Microsoft .NetFramework minimal versi 4.5

Langkah pemakaian FOFCM di R-Cluzzy

  • Masukan data
    • ketikan data dalam spreadsheet yang tersedia, atau

2017-08-16_11_37_41-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

  • klik menu 'Generate data', pilih sebaran data (Uniform atau Normal) dan masukan parameter kemudian klik 'Generate',atau

2017-08-16_11_38_30-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

2017-08-16_11_38_46-R-Cluzzy_Fuzzy_Clustering_Application

2017-08-16_11_38_57-R-Cluzzy_Fuzzy_Clustering_Application

  • klik menu 'File', pilih 'Open Data', pilih lokasi dan format data yang akan dipakai, pilih file yang akan dipakai, klik 'Open'

2017-08-16_11_44_41-R-Cluzzy_Fuzzy_Clustering_Application

  • Klik menu 'Analyze'

2017-08-16_11_55_28-Debug

  • Pilih algoritme yang akan digunakan (misal FOFCM atau 'Forest Optimization - FCM)

2017-08-16_11_40_38-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

  • pilih variabel data yang ada
  • masukan variabel terpilih ke 'Selected Variables' untuk variabel yang akan dilakukan analisis Clustering

2017-08-16_11_40_47-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

  • masukan variabel ke 'Observation Name' untuk variabel yang menjadi nama dari observasi/baris data

  • masukan parameter-parameter FOFCM

  • masukan termination condition

  • pilih indeks-indeks validitas yang ingin digunakan

  • pilih apakah menampilkan plot baik Radar maupun Biplot

  • klik 'Process'

  • Output

    • Biplot

2017-08-16_11_41_29-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

  • Radar plot

2017-08-16_11_41_04-Edit___Home___Wiki___edhi_prabowo___Forest_optimization_Fuzzy_C-Means___GitLab_-

  • Data-data hasil output

2017-08-16_11_41_16-R_Graphics__Device_2__ACTIVE_

Algortime FOFCM

Berikut adalah tahapan analisis clustering data menggunakan FOFCM:

  • Menginput parameter Membangkitkan pohon sejumlah populasi (area limit) secara acak dari data.

image

Gambar 1 Ilustrasi sebuah tree

Dengan C adalah jumlah cluster, D adalah jumlah dimensi atau variabel data. Age adalah variabel yang menyimpan nilai umur pohon, pada inisialisasi awal bernilai 0. Jm adalah variabel yang menyimpan nilai objektif dari pohon tersebut.

Jalankan alogritme FOFCM:

  • Lakukan local seeding Lakukan local seeding terhadap pohon-pohon yang berumur 0. Local seeding dilakukan dengan menciptakan pohon-pohon baru berdasarkan pohon yang berumur 0 dengan mengubah salah satu variabel. Variabel dipilih secara acak dan nilai variabel terpilih diubah menjadi x+r, x adalah nilai variabel sebelum diubah dan r adalah nilai acak yang berada dalam rentang [- x_min,x_min] ,- x_min adalah nilai minimum dari variabel terpilih. Parameter LSC digunakan untuk menentukan berapa banyak pohon baru yang dapat terbentuk dari 1 pohon lama. Pohon-pohon yang baru tercipta berumur 0, sedangkan umur pohon-pohon yang masuk ke tahap local seeding bertambah 1.
  • Hilangkan beberapa pohon dari popolasi utama
    • Hilangkan pohon yang memiliki umur sama dengan life time.
    • Hitung nilai Jm(dengan persamaan (1)) dari setiap pohon. Urutkan pohon berdasarkan nilai Jm, dimulai dari nilai Jm terkecil.
    • Apabila pohon-pohon di populasi utama melebihi area limit, hilangkan pohon-pohon yang memiliki nilai Jm terbesar hingga jumlah pohon di populasi utama sama dengan are limit.
    • Pohon-pohon yang dihilangkan di tahap ini akan disimpan ke dalam kandidat populasi.
  • Lakukan global seeding Pilih pohon sejumlah transfer rate dari kandidat populasi secara acak. Lakukan global seeding pada pohon-pohon terpilih. Global seeding dilakukan dengan mengubah nilai variabel pohon terpilih, variabel dipilih secara acak sebanyak GSC. Nilai variabel diubah menjadi r. Pohon-pohon tersebut kemudian dimasukan ke dalam populasi utama dengan umur 0.
  • Hilangkan beberapa pohon dari popolasi utama
    • Hilangkan pohon yang memiliki umur sama dengan life time.
    • Hitung nilai Jm dari setiap pohon. Urutkan pohon berdasarkan nilai Jm, dimulai dari nilai Jm terkecil.
    • Apabila pohon-pohon di populasi utama melebihi area limit, hilangkan pohon-pohon yang memiliki nilai Jm terbesar hingga jumlah pohon di populasi utama sama dengan are limit.
  • Pilih pohon terbaik
    • Pada iterasi pertama pohon terbaik dipilih dari pohon dengan nilai Jm terkecil.
    • Pada iterasi selanjutnya pohon terbaik dibandingkan dengan pohon terbaik pada iterasi sebelumnya, dipilih pohon dengan nilai Jm yang lebih kecil.
  • Jalankan metode Gradient.
    • Jalankan metode gradient pada pohon terbaik. Apabila output metode gradient lebih baik dibandingkan pohon terbaik berdasarkan nilai Jm, output metode gradient dijadikan pohon terbaik.
    • Pohon terbaik dimasukan kembali ke dalam populasi utama dengan umur 0.
  • Hentikan proses apabila
    • Pohon terbaik tidak berubah selama beberapa iterasi, atau
    • Nilai akurasi tercapai, atau
    • Iterasi maksimal tercapai
  • Pohon terbaik didapatkan. Pohon terbaik tanpa variabel age dan Jm dijadikan pusat cluster.
  • Jalankan algoritme FCM:
    • Masukan pusat cluster yang didapat.
    • Gunakan 1 iterasi.
  • Hasil cluster FOFCM didapatkan.