Adaptive Neuro-Fuzzy Inference System (ANFIS) merupakan metode yang menggabungkan Jaringan Syaraf Tiruan (JST) dengan Fuzzy. Konsepnya adalah menjadikan “rule” sebagai “neuron”. Jumlah layer tersembunyi (hidden) hanya satu layer. Salah satu situs yang OK untuk mempraktikan ANFIS dengan bahasa pemrograman Python adalah salah satu TIM dari MIT di link berikut ini. Source code bisa diunduh dan penjelasannya lewat situs Github.
Instal Library ANFIS
Anaconda tidak memiliki pustaka ANFIS, oleh karena itu perlu mengunduh menggunakan PIP. Selain itu pustaka yang dibuat sendiri juga disertakan, misalnya anfis.py dan folder membership yang berisi dua file penting lainnya. Untuk mengetahui bagaimana fungsi eksternal bekerja silahkan lihat postingan saya yang lalu.
Menggunakan Google Colab
Memang lebih mudah menggunakan Google Colab karena sebagian besar pustaka sudah tersedia. Hanya saja untuk ANFIS terpaksa harus menginstal terlebih dahulu. Caranya adalah seperti instalasi PIP lewat terminal, hanya saja disini menggunakan tanda seru di awalnya.
Ketik !pip install anfis. Tunggu beberapa saat hingga Google Colab berhasil mengunduh dan menginstal pustaka ANFIS tersebut. Jangan lupa, file-file pendukung unggah di bagian File di sisi kiri Google Colab. Pastikan ketika impor pustaka di sel berikutnya berhasil. Buat folder baru dengan nama membership lalu isi dengan file pendukungnya. Jangan diletakan di luar semua.
Berikutnya adalah mengambil data latih dari file “beasiswa.txt”. Pastikan X dan Y sesuai dengan yang diinginkan sebagai data latih dan targetnya. Silahkan cari sumber referensi mengenai membership function. Di sini mf berfungsi mem-fuzzy-kan inputan. Jalankan dan pastikan grafik performa pelatihan muncul.
Perhatikan hasil latih yang berwarna merah sudah mendekati target yang berwarna biru. Satu untuk memperoleh beasiswa dan nol untuk yang tidak memperoleh beasiswa. Gunakan satu data sampel untuk menguji apakah menerima beasiswa atau tidak.
Perhatikan untuk input1 3.2 dan input2 3.4 hasilnya adalah 1. Silahkan menggunakan fungsi “round” untuk membulatkan apakah nol atau satu. Untuk jelasnya lihat video berikut ini. Sekian semoga bermanfaat.
Apakah ANFIS dapat menggunakan library deeplearning python seperti PyTorch?
sepertinya menggunakan library lain (custom). Lihat: https://rahmadya.com/2020/06/04/adaptive-neuro-fuzzy-inference-system-anfis-dengan-python/
Terima kasih atas balasan Bapak. Saya mau tanya lagi, agak dalam lagi ndak apa2 ya Pak, karena saya interest dengan ini:
1. Di contoh Pak Rahmadya, tadi untuk parameter penentuan beasiswa ada 2 ya Pak : IPK dan Tingkat Miskin. Apakah memungkinkan menggunakan ANFIS untuk parameter yang lebih banyak misalnya 5 parameter. Karena setau saya kalau pakai Fuzzy saja rule nya akan menjadi sangat banyak.
2. Sepengetahuan saya ANFIS bisa digunakan untuk membuat membership function atau membuat rule-base Fuzzynya. Kalau ANFIS yang dicontoh Pak Rahmadya ini digunakan untuk apa di sistem Fuzzy nya ya Pak.?
3. Apakah ANN yang digunakan itu model supervised..? bagaimana jika akan mengembangkan ke model unsupervised.?
Terima kasih banyak.
1. Di contoh Pak Rahmadya, tadi untuk parameter penentuan beasiswa ada 2 ya Pak : IPK dan Tingkat Miskin. Apakah memungkinkan menggunakan ANFIS untuk parameter yang lebih banyak misalnya 5 parameter? Bisa.
2. Sepengetahuan saya ANFIS bisa digunakan untuk membuat membership function atau membuat rule-base Fuzzynya. Kalau ANFIS yang dicontoh Pak Rahmadya ini digunakan untuk apa di sistem Fuzzy nya ya Pak.? ANFIS MF dibuat lewat mekanisme learning. Keunggulan ANFIS, hasil learning bisa dilihat logika-nya (rule), berbeda dgn NNs/Deep Learning yg black box.
3. Apakah ANN yang digunakan itu model supervised..? bagaimana jika akan mengembangkan ke model unsupervised.? ANN kebanyakan supervised, gunakan model ANN yang unsupervised, misalnya SOM.
maaf pak izin bertanya untuk menambahkan paramaternya misalkan 7 paramater, apakah ada kodingan yang harus ditambahkan?
dalam machine learning ada 2 jenis parameter atau hyperparameter? kalau variabel input bisanya disebut fitur.
oh iya sepertinya fiture untuk inputan tersebut sepertinya? apakah ada yang harus diganti kah di kodinganya?
data berarti ada 7 + 1 kolom (di luar nomor). mf=… diset sesuai dengan 7 inputan. coba 3 dulu utk latihan, kalo bisa running baru ditambah jadi 7.
Baik pak terima kasih , saya akan coba
Untuk lebih dari 2 paramater apakah harus ada yang mesti diganti pak dibagian kodingannya?
Selamat siang.
Ketika saya menggunakan data yang sama sekali berbeda, apakah perlu menggunakan membership function yang baru pak? Kalo iya, bagaimana cara mencari nilai2nya ya?
Jika ada artikel yang membahas ini mohon dishare pak,
Terima kasih banyak.
sama sekali berbeda ini maksudnya range-nya? biasanya supaya aman data dinormalisasi (0 – 1). membership function biasanya fix di awal pemodelan.
iya pak maksudnya seperti itu, data yang saya pakai adalah profit penjualan.
Baik kalau begitu, terima kasih banyak
Selamat malam pak, mau tanya, kalau prediction apa memakai script yg sama
ya, anfis.predict( dst .. kalo hanya prediksi saja, simpan saja hasil trainingnya (cari info bgmn menyimpan hasil latih)
Maksud saya untuk anfis prediction apa memakai script yg sama
Assalamualaikum Pak, Saya mau tanya, apakah ANFIS termasuk data driven atau rule base? apa metode ini sudah ketinggalan zaman?
apakah ANFIS termasuk data driven atau rule base? dua-duanya. data driven di-training menjadi rule base. Dibilang ketinggalan iya, tapi memiliki keunggulan rule-based yang bisa kita mengerti, berbeda dengan JST yg seperti black-box
selamat siang pak, bagaimana cara mengakses pydoc.netnya? setelah saya akses url not found
ternyata link nya sudah ditutup
apakah ada cara/link lain pak?
paling gampang sih dengan Matlab