Adaptive Neuro-Fuzzy Inference System (ANFIS) dengan Python

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.

22 respons untuk ‘Adaptive Neuro-Fuzzy Inference System (ANFIS) dengan Python

      1. 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.

      2. 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.

  1. maaf pak izin bertanya untuk menambahkan paramaternya misalkan 7 paramater, apakah ada kodingan yang harus ditambahkan?

      1. 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.

  2. 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.

      1. iya pak maksudnya seperti itu, data yang saya pakai adalah profit penjualan.
        Baik kalau begitu, terima kasih banyak

  3. Assalamualaikum Pak, Saya mau tanya, apakah ANFIS termasuk data driven atau rule base? apa metode ini sudah ketinggalan zaman?

    1. 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

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.