Skip to content

RaneemQaddoura/EvoNP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evolutionary Algorithm with Nearest Point (EvoNP)

An efficient evolutionary algorithm with Nearest Point is a clustering algorithm which aims at grouping similar data points to the same cluster and dissimilar data points to different clusters. It is based on the evolution behavior of genetic algorithm and the Nearest Neighbor Search (NNS) technique. The algorithm starts by reading the data set and generating the initial population. The initial population is then passed to the Nearest Point (NP) clustering technique where the Election, Selection, and Assignment operators generating an updated population which is then evaluated using a specific fitness function. The population is then passed to the evolutionary operators where the selection, crossover, mutation, and elitism operators are performed generating an evolved population. The evolved population is then considered as a new population for the next round of evolving using the NP clustering technique and evolutionary operators until a predefined number of generations is reached. The best chromosome from the last generation is considered as the final best solution.

Requirements

  • sklearn
  • NumPy
  • SciPy
  • Matplotlib
  • Pandas
  • treelib

Setup virtual enviroment

If you would like to work in an isolated environment which is strongly recommended so that you can work on different projects without having conflicting library versions, install virtualenv by running the following pip command.

python3 -m pip install --user -U virtualenv

Then create your isolated Python environment by typing this

virtualenv your_env

Now, everytime you want to active this enviroment, just type the following

source your_env/bin/active

Installation

  • Python 3.xx is required.

Run

pip3 install -r requirements.txt

(possibly with sudo)

That command above will install sklearn, NumPy, SciPy, Matplotlib, Pandas, and treelib for you.

  • If you are installing EvoNP algorithm onto Windows, please Install Anaconda from here https://www.continuum.io/downloads, which is the leading open data science platform powered by Python.

Get the source

Clone the Git repository from GitHub

git clone https://github.com/RaneemQaddoura/EvoNP

Quick User Guide

EvoNP contains the main file is the EvoNP.py, which represents the implementation of the algorithm. The test0.py is an example file for using the EvoNP algorithm as an interface to the algorithm. In the test0.py you can setup your experiment by selecting the datasets, number of chromosomes, number of generations, crossover probability, mutation probability, and number of runs.

The following is a sample example to use the EvoNP algorithm.

Change dataset names, number of chromosomes, number of generations, crossover probability, mutation probability, and number of runs variables as you want:

dataset_List = ["VaryDensity.csv","flame.csv"]
nChromosomes = 20
nGenerations = 50
crossoverProbability = 0.8
mutationProbability = 0.001
runs = 30

Now your experiment is ready to run. Enjoy!

EvoNP description page

http://evo-ml.com/evonp/

Published Article

https://link.springer.com/article/10.1007/s12652-020-02570-2

Demo video

Citing EvoNP

Qaddoura, R., Faris, H. & Aljarah, I. An efficient evolutionary algorithm with a nearest neighbor search technique for clustering analysis. J Ambient Intell Human Comput (2020). https://doi.org/10.1007/s12652-020-02570-2

About

EvoNP: An efficient evolutionary algorithm with a nearest neighbor search technique for clustering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages