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.

Tentang rahmadya

I'm a simple man .. Lahir di Sleman Yogyakarta, 7 Juni 1976 PENDIDIKAN: TK : - (tidak ada TK di tj Priok waktu itu) SDN : Papanggo, Jakarta 83 - 89 SMPN : 129, Jakarta 89 - 92 SMAN : 8, Yogyakarta 92 - 95 Univ. : Fak. Teknik UGM, Yogyakarta 95 - 2001 Pasca. : Tek. Informatika STMIK Nusa Mandiri, Jakarta 2008 - 2010 Doctoral : Information Management Asian Institute of Technology, Thailand 2013 - 2018 PEKERJAAN: Tek. Komputer AMIK BSI Jakarta : 2002 - 2005 IT Danamon Jakarta : 2005 - 2008 Tek. Informatika STMIK Nusa Mandiri Jakarta : 2005 - 2008 Univ. Darma Persada Jakarta: 2008 - 2013 Fakultas Teknik Universitas Islam "45" Bekasi : 2008 - Skrg ( Homebase) Univ. Bhayangkara Jakarta Raya: 2018 - Skrg Univ. Nusa Putra Sukabumi: 2018 - Skrg
Pos ini dipublikasikan di Artificial Neural Network, Decision Support System, Python. Tandai permalink.

4 Balasan ke Adaptive Neuro-Fuzzy Inference System (ANFIS) dengan Python

  1. mobi berkata:

    Apakah ANFIS dapat menggunakan library deeplearning python seperti PyTorch?

      • mobi berkata:

        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.

      • rahmadya berkata:

        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.

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.