- What is LEAC library?
- Library description
- Getting the library
- Tutorials and documentation
- Methods included
- Library data format
- Citation
- License
- Reporting bugs
Library Evolutionary Algorithms for Clustering (LEAC) is a library of genetic algorithms to solve the problem of partition clustering. It includes 22 classification genetic algorithms for solving partitional clustering. These are considered the state-of-the-art of mono-objective genetic algorithms in the area.
LEAC is a modular library that facilitates the development of new proposals for evolutionary algorithms to solve partitional clustering. Besides including the most representative proposals of Evolutionary Algorithms for partitional clustering. LEAC allows you to implement easily new evolutionary algorithm proposals for clustering using the classes developed in the library. Thus, new algorithms can use the diversity of proposed strategies, procedures, and genetic operators included in the library to evolve the population according to the flowchart of these algorithms.
LEAC is built in C ++ with the current standards of C++11, C++14. Take advantage of the STL library, through the use of data structures and algorithms, for example, the Numerics library of Pseudo-random number generation which is fundamental in the genetic and evolutionary algorithms. An additional feature that LEAC has is a low-level software layer based on Streaming SIMD Extensions (SSE) and in the OpenBLAS library, in order to increase performance. For now, only for Linux x86_64, for future versions, it is intended to port to other architectures and increase the number of genetic operators implemented with these software layers.
LEAC library is based on a layered software architecture composed of four layers: algorithms, EA, Clustering, and Performance. Each layer consists of a set of related packets as shown in the image.
- Algorithm: It contains the final implementations of several evolutionary algorithms for clustering.
- EA: It contains several packets with operators and strategies to configure EAs, such as encoding criteria, initialization methods, selection methods, crossover, and mutation operators, and updating and replacement strategies.
- Clustering: It contains several packets with specific clustering operators, such as supervised and unsupervised performance measures and clustering operators based on centroids, crisp matrix or medoids.
- Performance: It consists of low-level programmed functions under the current CPU architectures.
The project can be download in this repository. Detailed information about getting and running the library can be consulted in user's manual where all dependencies and libraries necessaries are commented.
LEAC user's manual can be found in the main directory of this repository and includes:
- Detailed steps for getting and running the library.
- A description of LEAC library architecture.
- Examples for developing a new Evolutionary Algorithm in the library.
- Examples for running an Evolutionary Algorithm included in the library
- Examples for carrying out an experimental study with Evolutionary algorithms included in the library.
LEAC API can be found in the docs folder.
LEAC includes several implementations of evolutionary algorithms for partitional clustering which are based on state-of-art of evolutionary proposals in this area. Following the taxonomy given by Hruschka et al., a first classification of these algorithms is carried out according to the use of fixed or variable number initial of clusters. Concretely, the algorithms included are:
- Proposals that need to set the number of clusters: GA, GKA, IGKA, FGKA, GA_B, GCA, HKA, CBGA, GAGR, GAs and KGA.
- Proposals that discover the number of clusters: CGA, GGA_S, GGA_DB, EAC, FEAC_SS, FEAC_RI, GCUK, VGA, TGCA, GA_C, Clustering and GASGO.
The format of arff data based on the Weka's format
Robles-Berumen, H., Zafra, A., Fardoun, H. M., & Ventura, S. (2019). LEAC: An efficient library for clustering with evolutionary algorithms. Knowledge-Based Systems, 179, 117-119. https://doi.org/10.1016/j.knosys.2019.05.008
The tools is free and open source, under the GNU General Public GPLv3 license [License file], for Windows®, GNU/Linux® and Mac OS X®.
Feel free to open an issue at Github if anything is not working as expected. Merge request are also encouraged, it will be carefully reviewed and merged if everything is all right.