Git Product home page Git Product logo

evocluster's Introduction

EvoCluster-logo

An Open-Source Nature-Inspired Optimization Clustering Framework in Python

Description

EvoCluster is an open source and cross-platform framework implemented in Python which includes the most well-known and recent nature-inspired meta heuristic optimizers that are customized to perform partitional clustering tasks. The goal of this framework is to provide a user-friendly and customizable implementation of the metaheuristic based clustering algorithms which canbe utilized by experienced and non-experienced users for different applications.The framework can also be used by researchers who can benefit from the implementation of the metaheuristic optimizers for their research studies. EvoClustercan be extended by designing other optimizers, including more objective func-tions, adding other evaluation measures, and using more data sets. The current implementation of the framework includes ten metaheuristic optimizers, thirty datasets, five objective functions, twelve evaluation measures, more than twenty distance measures, and ten different ways for detecting the k value. The source code of EvoCluster is publicly available at (http://evo-ml.com/evocluster/).

Versions

Supporting links

Features

  • Ten nature-inspired metaheuristic optimizers are implemented (SSA, PSO, GA, BAT, FFA, GWO, WOA, MVO, MFO, and CS).
  • Five objective functions (SSE, TWCV, SC, DB, and DI).
  • Thirty datasets obtained from Scikit learn, UCI, School of Computing at University of Eastern Finland, ELKI, KEEL, and Naftali Harris Blog
  • Twelve evaluation measures (SSE, Purity, Entropy, HS, CS, VM, AMI, ARI, Fmeasure, TWCV, SC, Accuracy, DI, DB, and Standard Diviation)
  • More than twenty distance measures
  • Ten different ways for detecting the k value
  • The implimentation uses the fast array manipulation using [NumPy] (http://www.numpy.org/).
  • Matrix support using [SciPy's] (https://www.scipy.org/) package.
  • Simple and efficient tools for prediction using [sklearn] (https://scikit-learn.org/stable/)
  • File data analysis and manipulation tool using [pandas] (https://pandas.pydata.org/)
  • Plot interactive visualizations using [matplotlib] (https://matplotlib.org/)
  • More optimizers, objective functions, adatasets, and evaluation measures are comming soon.

Installation

EvoCluster supports Python 3.xx.

With pip

EvoCluster can be installed using pip as follows:

pip install EvoCluster

With conda

EvoCluster can be installed using conda as follows:

conda install EvoCluster

To install from master

pip install git+https://github.com/RaneemQaddoura/EvoCluster.git#egg=EvoCluster

Get the source

Clone the Git repository from GitHub

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

Quick tour

To immediately use a EvoCluster. Here is how to quickly use EvoCluster to predict clusters:

from EvoCluster import EvoCluster

optimizer = ["SSA", "PSO", "GA", "GWO"] #Select optimizers from the list of available ones: "SSA","PSO","GA","BAT","FFA","GWO","WOA","MVO","MFO","CS".
objective_func = ["SSE", "TWCV"] #Select objective function from the list of available ones:"SSE","TWCV","SC","DB","DI".
dataset_list = ["iris", "aggregation"] #Select data sets from the list of available ones
num_of_runs = 3 #Select number of repetitions for each experiment. 
params = {'PopulationSize': 30, 'Iterations': 50} #Select general parameters for all optimizers (population size, number of iterations)
export_flags = {'Export_avg': True, 'Export_details': True, 'Export_details_labels': True,
                'Export_convergence': True, 'Export_boxplot': True} #Choose your preferemces of exporting files

ec = EvoCluster(
    optimizer,
    objective_func,
    dataset_list,
    num_of_runs,
    params,
    export_flags,
    auto_cluster=True,
    n_clusters='supervised',
    labels_exist=True,
    metric='euclidean'
)

ec.run() #run the framework

Now your experiment is ready to go. Enjoy!

The results will be automaticly generated in a folder which is concatnated with the date and time of the experiment. this folder consists of three csv files and two types of plots:

  • experiment.csv
  • experiment_details.csv
  • experiment_details_Labels.csv
  • Convergence plot
  • Box plot

Datasets

The folder datasets in the repositoriy contains 30 datasets (All of them are obtained from Scikit learn, UCI, School of Computing at University of Eastern Finland, ELKI, KEEL, and Naftali Harris Blog).

To add new dataset:

  • Put your dataset in a csv format (No header is required, labels are at the last column)
  • Place the new datset files in the datasets folder.
  • Add the dataset to the datasets list in the optimizer.py (Line 19).

Citation Request:

Please include these citations if you plan to use this Framework:

  • Qaddoura, Raneem, Hossam Faris, Ibrahim Aljarah, and Pedro A. Castillo. "EvoCluster: An Open-Source Nature-Inspired Optimization Clustering Framework." SN Computer Science, 2(3), 1-12, 2021.

  • Qaddoura, Raneem, Hossam Faris, Ibrahim Aljarah, and Pedro A. Castillo. "EvoCluster: An Open-Source Nature-Inspired Optimization Clustering Framework in Python." In International Conference on the Applications of Evolutionary Computation (Part of EvoStar), pp. 20-36. Springer, Cham, 2020.

  • Hossam Faris, Ibrahim Aljarah, Sayedali Mirjalili, Pedro Castillo, and J.J Merelo. "EvoloPy: An Open-source Nature-inspired Optimization Framework in Python". In Proceedings of the 8th International Joint Conference on Computational Intelligence - Volume 3: ECTA,ISBN 978-989-758-201-1, pages 171-177.

evocluster's People

Contributors

raneemqaddoura avatar housecricket avatar aljarrahcs avatar

Stargazers

PhilippeRacicot avatar AbbynamesSheep avatar wangyh082 avatar  avatar Ade Fiqri avatar Koteesh avatar Harsh avatar  avatar Sašo Karakatič avatar 321YY avatar Hong Cai Chen avatar  avatar Zaid Alyasseri avatar  avatar Adolfo Reyna avatar Pankaj Kumar avatar Maria Habib avatar

Watchers

 avatar  avatar

evocluster's Issues

Naive Models

Thanks for vey nice job.
Can you add pure models to compare the performance of nature inspired algorithms like k means?

possibility to use own objective functions?

The EvoCluster itself might be a great idea, but how can it be applied for actual real optimization tasks? How can someone apply the optimization algorithms to non-benchmark/own cost functions?
Best thanks in advanced,
Fabian

Problem in installing

I was trying to install EvoCluster in Python 3.6 using command prompt in Windows 10. I am getting the following error
C:\Python36\Scripts>pip3 install -r requirements.txt
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

The link https://www.continuum.io/downloads is not opening. Please help me how can I install EvoCluster for Anaconda?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.