/EvoFuzzy

A Python implementation of the Differential Evolution algorithm for the optimization of Fuzzy Inference Systems.

Primary LanguagePythonMIT LicenseMIT

EvoFuzzy

This is a very simple Python implementation of the Differential Evolution Algorithm for tuning Fuzzy Inference Systems.

Requirements

Known dependencies:

  • Python (3.5.5)
  • Numpy (1.14.2)
  • Matplotlib (2.2.2)

To install dependencies, cd to the directory of the repository and run pip install -r requirements.txt

Code Structure

  • anfis.py: contains a python ANFIS implementation.
  • diffevo.py: contains a python implementation of the Differential Evolution algorithm (based on this tutorial).
  • fobj.py: contains several objective functions.
  • mackey.py: contains an example that uses Differential Evolution for tuning an ANFIS for the prediction of the Mackey Glass series. This example trains the system on 1500 points of the series and plots the real vs. predicted series.

To run the example, cd to the directory of the repository and run python mackey.py

TODO:

  • Implement membership functions other than Gaussians.
  • Implement other evolutionary algorithms for tuning Fuzzy Systems (I would like to implement the Covariance Matrix Adaptation Evolution Strategy).