Forest_optimization_Fuzzy_C-Means
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
- klik menu 'Generate data', pilih sebaran data (Uniform atau Normal) dan masukan parameter kemudian klik 'Generate',atau
- klik menu 'File', pilih 'Open Data', pilih lokasi dan format data yang akan dipakai, pilih file yang akan dipakai, klik 'Open'
- Klik menu 'Analyze'
- Pilih algoritme yang akan digunakan (misal FOFCM atau 'Forest Optimization - FCM)
- pilih variabel data yang ada
- masukan variabel terpilih ke 'Selected Variables' untuk variabel yang akan dilakukan analisis Clustering
-
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
- Radar plot
- Data-data hasil output
Algortime FOFCM
Berikut adalah tahapan analisis clustering data menggunakan FOFCM:
- Menginput parameter Membangkitkan pohon sejumlah populasi (area limit) secara acak dari data.
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.