Skip to main content

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

  • Conference paper
  • First Online:
Applications of Evolutionary Computation (EvoApplications 2020)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12104))

Abstract

EvoCluster is an open source and cross-platform framework implemented in Python which includes the most well-known and recent nature-inspired metaheuristic 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 can be 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. EvoCluster can be extended by designing other optimizers, including more objective functions, adding other evaluation measures, and using more data sets. The current implementation of the framework includes ten metaheristic optimizers, thirty datasets, five objective functions, and twelve evaluation measures. The source code of EvoCluster is publicly available at (http://evo-ml.com/2019/10/25/evocluster/).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://scikit-learn.org/stable/datasets/index.html.

  2. 2.

    https://archive.ics.uci.edu/ml/.

  3. 3.

    http://cs.uef.fi/sipu/datasets/.

  4. 4.

    https://elki-project.github.io/datasets/.

  5. 5.

    https://sci2s.ugr.es/keel/datasets.php.

  6. 6.

    https://www.naftaliharris.com/blog/visualizing-K-means-clustering/.

References

  1. Achtert, E., Kriegel, H.-P., Zimek, A.: ELKI: a software system for evaluation of subspace clustering algorithms. In: Ludäscher, B., Mamoulis, N. (eds.) SSDBM 2008. LNCS, vol. 5069, pp. 580–585. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69497-7_41

    Chapter  Google Scholar 

  2. Al-Madi, N., Aljarah, I., Ludwig, S.A.: Parallel glowworm swarm optimization clustering algorithm based on MapReduce. In: 2014 IEEE Symposium on Swarm Intelligence (SIS), pp. 1–8. IEEE (2014)

    Google Scholar 

  3. Aljarah, I., Ala’M, A.-Z., Faris, H., Hassonah, M.A., Mirjalili, S., Saadeh, H.: Simultaneous feature selection and support vector machine optimization using the grasshopper optimization algorithm. Cogn. Comput. 10, 478–495 (2018). https://doi.org/10.1007/s12559-017-9542-9

    Article  Google Scholar 

  4. Aljarah, I., Ludwig, S.A.: Parallel particle swarm optimization clustering algorithm based on MapReduce methodology. In: 2012 Fourth World Congress on Nature and Biologically Inspired Computing (NaBIC), pp. 104–111. IEEE (2012)

    Google Scholar 

  5. Aljarah, I., Ludwig, S.A.: MapReduce intrusion detection system based on a particle swarm optimization clustering algorithm. In: 2013 IEEE Congress on Evolutionary Computation (CEC), pp. 955–962. IEEE (2013)

    Google Scholar 

  6. Aljarah, I., Ludwig, S.A.: A new clustering approach based on Glowworm Swarm Optimization. In: 2013 IEEE Congress on Evolutionary Computation (CEC), pp. 2642–2649. IEEE (2013)

    Google Scholar 

  7. Aljarah, I., Mafarja, M., Heidari, A.A., Faris, H., Mirjalili, S.: Clustering analysis using a novel locality-informed grey wolf-inspired clustering approach. Knowl. Inf. Syst. 62, 507–539 (2019). https://doi.org/10.1007/s10115-019-01358-x

    Article  Google Scholar 

  8. Aljarah, I., Mafarja, M., Heidari, A.A., Faris, H., Mirjalili, S.: Multi-verse optimizer: theory, literature review, and application in data clustering. In: Mirjalili, S., Song Dong, J., Lewis, A. (eds.) Nature-Inspired Optimizers. SCI, vol. 811, pp. 123–141. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-12127-3_8

    Chapter  Google Scholar 

  9. Beyer, H.-G., Schwefel, H.-P.: Evolution strategies - a comprehensive introduction. Nat. Comput. 1(1), 3–52 (2002). https://doi.org/10.1023/A:1015059928466

    Article  MathSciNet  MATH  Google Scholar 

  10. Cahon, S., Melab, N., Talbi, E.-G.: ParadisEO: a framework for the reusable design of parallel and distributed metaheuristics. J. Heuristics 10(3), 357–380 (2004). https://doi.org/10.1023/B:HEUR.0000026900.92269.ec

    Article  MATH  Google Scholar 

  11. Chang, D.-X., Zhang, X.-D., Zheng, C.-W.: A genetic algorithm with gene rearrangement for K-means clustering. Pattern Recogn. 42(7), 1210–1222 (2009)

    Article  Google Scholar 

  12. Chowdhury, K., Chaudhuri, D., Pal, A.K.: A novel objective function based clustering with optimal number of clusters. In: Mandal, J.K., Mukhopadhyay, S., Dutta, P., Dasgupta, K. (eds.) Methodologies and Application Issues of Contemporary Computing Framework, pp. 23–32. Springer, Singapore (2018). https://doi.org/10.1007/978-981-13-2345-4_3

    Chapter  Google Scholar 

  13. Davies, D.L., Bouldin, D.W.: A cluster separation measure. IEEE Trans. Pattern Anal. Mach. Intell. PAMI–1(2), 224–227 (1979)

    Article  Google Scholar 

  14. Durillo, J.J., Nebro, A.J.: jMetal: a Java framework for multi-objective optimization. Adv. Eng. Softw. 42, 760–771 (2011)

    Article  Google Scholar 

  15. Faris, H., Aljarah, I., Mirjalili, S., Castillo, P.A., Guervós, J.J.M.: EvoloPY: an open-source nature-inspired optimization framework in Python. In: IJCCI (ECTA), pp. 171–177 (2016)

    Google Scholar 

  16. Fortin, F.-A., De Rainville, F.-M., Gardner, M.-A., Parizeau, M., Gagné, C.: DEAP: evolutionary algorithms made easy. J. Mach. Learn. Res. 13, 2171–2175 (2012)

    MathSciNet  Google Scholar 

  17. Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., Witten, I.H.: The WEKA data mining software: an update. ACM SIGKDD Explor. Newsl. 11(1), 10–18 (2009)

    Article  Google Scholar 

  18. Pohlheim, H.: GEATbx - the genetic and evolutionary algorithm toolbox for matlab (2006)

    Google Scholar 

  19. Hassani, M., Seidl, T.: Using internal evaluation measures to validate the quality of diverse stream clustering algorithms. Vietnam J. Comput. Sci. 4(3), 171–183 (2017). https://doi.org/10.1007/s40595-016-0086-9

    Article  Google Scholar 

  20. Holland, J.: Genetic algorithms. Sci. Am. 267, 66–72 (1992)

    Article  Google Scholar 

  21. Hubert, L., Arabie, P.: Comparing partitions. J. Classif. 2(1), 193–218 (1985). https://doi.org/10.1007/BF01908075

    Article  MATH  Google Scholar 

  22. Keijzer, M., Merelo, J.J., Romero, G., Schoenauer, M.: Evolving objects: a general purpose evolutionary computation library. In: Collet, P., Fonlupt, C., Hao, J.-K., Lutton, E., Schoenauer, M. (eds.) EA 2001. LNCS, vol. 2310, pp. 231–242. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46033-0_19

    Chapter  Google Scholar 

  23. Kennedy, J., Eberhart, R.: Particle swarm optimization. In: 1995 Proceedings of the IEEE International Conference on Neural Networks, vol. 4, pp. 1942–1948, November 1995

    Google Scholar 

  24. Khurma, R.A., Aljarah, I., Sharieh, A., Mirjalili, S.: EvoloPy-FS: an open-source nature-inspired optimization framework in Python for feature selection. In: Mirjalili, S., Faris, H., Aljarah, I. (eds.) Evolutionary Machine Learning Techniques. AIS, pp. 131–173. Springer, Singapore (2020). https://doi.org/10.1007/978-981-32-9990-0_8

    Chapter  Google Scholar 

  25. Korošec, P., Šilc, J.: A distributed ant-based algorithm for numerical optimization. In: Proceedings of the 2009 Workshop on Bio-inspired Algorithms for Distributed Systems - BADS 2009. Association for Computing Machinery (ACM) (2009)

    Google Scholar 

  26. Kumar, S., Pant, M., Kumar, M., Dutt, A.: Colour image segmentation with histogram and homogeneity histogram difference using evolutionary algorithms. Int. J. Mach. Learn. Cybernet. 9(1), 163–183 (2018). https://doi.org/10.1007/s13042-015-0360-7

    Article  Google Scholar 

  27. Liu, A., Su, Y., Nie, W., Kankanhalli, M.S.: Hierarchical clustering multi-task learning for joint human action grouping and recognition. IEEE Trans. Pattern Anal. Mach. Intell. 39(1), 102–114 (2017)

    Article  Google Scholar 

  28. Magni, P., Ferrazzi, F., Sacchi, L., Bellazzi, R.: TimeClust: a clustering tool for gene expression time series. Bioinformatics 24(3), 430–432 (2007)

    Article  Google Scholar 

  29. Wall, M.: GAlib: a C++ library of genetic algorithm components (1996)

    Google Scholar 

  30. Mhembere, D., Zheng, D., Priebe, C.E., Vogelstein, J.T., Burns, R.: clusterNOR: a NUMA-optimized clustering framework. arXiv preprint arXiv:1902.09527 (2019)

  31. Mirjalili, S.: Moth-flame optimization algorithm: a novel nature-inspired heuristic paradigm. Knowl.-Based Syst. 89, 228–249 (2015)

    Article  Google Scholar 

  32. Mirjalili, S., Gandomi, A.H., Mirjalili, S.Z., Saremi, S., Faris, H., Mirjalili, S.M.: Salp Swarm Algorithm: a bio-inspired optimizer for engineering design problems. Adv. Eng. Softw. 114, 163–191 (2017)

    Article  Google Scholar 

  33. Mirjalili, S., Lewis, A.: The whale optimization algorithm. Adv. Eng. Softw. 95, 51–67 (2016)

    Article  Google Scholar 

  34. Mirjalili, S., Mirjalili, S.M., Hatamlou, A.: Multi-Verse Optimizer: a nature-inspired algorithm for global optimization. Neural Comput. Appl. 27(2), 495–513 (2015). https://doi.org/10.1007/s00521-015-1870-7

    Article  Google Scholar 

  35. Mirjalili, S., Mirjalili, S.M., Lewis, A.: Grey wolf optimizer. Adv. Eng. Softw. 69, 46–61 (2014)

    Article  Google Scholar 

  36. Nanda, S.J., Panda, G.: A survey on nature inspired metaheuristic algorithms for partitional clustering. Swarm Evol. Comput. 16, 1–18 (2014)

    Article  Google Scholar 

  37. Pedregosa, F., et al.: Scikit-learn: machine learning in Python. J. Mach. Learn. Res. 12(Oct), 2825–2830 (2011)

    MathSciNet  MATH  Google Scholar 

  38. Peng, P., et al.: Reporting and analyzing alternative clustering solutions by employing multi-objective genetic algorithm and conducting experiments on cancer data. Knowl.-Based Syst. 56, 108–122 (2014)

    Article  Google Scholar 

  39. Prakash, J., Singh, P.K.: Particle swarm optimization with k-means for simultaneous feature selection and data clustering. In: 2015 Second International Conference on Soft Computing and Machine Intelligence (ISCMI), pp. 74–78. IEEE (2015)

    Google Scholar 

  40. Qaddoura, R., Faris, H., Aljarah, I.: An efficient clustering algorithm based on the k-nearest neighbors with an indexing ratio. Int. J. Mach. Learn. Cyber. 11, 675–714 (2019). https://doi.org/10.1007/s13042-019-01027-z

    Article  Google Scholar 

  41. Raitoharju, J., Samiee, K., Kiranyaz, S., Gabbouj, M.: Particle swarm clustering fitness evaluation with computational centroids. Swarm Evol. Comput. 34, 103–118 (2017)

    Article  Google Scholar 

  42. Rand, W.M.: Objective criteria for the evaluation of clustering methods. J. Am. Stat. Assoc. 66(336), 846–850 (1971)

    Article  Google Scholar 

  43. Risso, D., et al.: clusterExperiment and RSEC: a bioconductor package and framework for clustering of single-cell and other large gene expression datasets. PLoS Comput. Biol. 14(9), e1006378 (2018)

    Article  Google Scholar 

  44. Robles-Berumen, H., Zafra, A., Fardoun, H.M., Ventura, S.: LEAC: an efficient library for clustering with evolutionary algorithms. Knowl.-Based Syst. 179, 117–119 (2019)

    Article  Google Scholar 

  45. Romano, S., Vinh, N.X., Bailey, J., Verspoor, K.: Adjusting for chance clustering comparison measures. J. Mach. Learn. Res. 17(1), 4635–4666 (2016)

    MathSciNet  MATH  Google Scholar 

  46. Rosenberg, A., Hirschberg, J.: V-measure: a conditional entropy-based external cluster evaluation measure. In: EMNLP-CoNLL, vol. 7, pp. 410–420 (2007)

    Google Scholar 

  47. Sheikh, R.H., Raghuwanshi, M.M., Jaiswal. A.N.: Genetic algorithm based clustering: a survey. In: First International Conference on Emerging Trends in Engineering and Technology, pp. 314–319. IEEE (2008)

    Google Scholar 

  48. Shi, Y., Eberhart, R.: A modified particle swarm optimizer. In: 1998 IEEE International Conference on Evolutionary Computation Proceedings. IEEE World Congress on Computational Intelligence (Cat. No. 98TH8360), pp. 69–73. IEEE (1998)

    Google Scholar 

  49. Shukri, S., Faris, H., Aljarah, I., Mirjalili, S., Abraham, A.: Evolutionary static and dynamic clustering algorithms based on multi-verse optimizer. Eng. Appl. Artif. Intell. 72, 54–66 (2018)

    Article  Google Scholar 

  50. Vinh, N.X., Epps, J., Bailey, J.: Information theoretic measures for clusterings comparison: variants, properties, normalization and correction for chance. J. Mach. Learn. Res. 11(Oct), 2837–2854 (2010)

    MathSciNet  MATH  Google Scholar 

  51. Vrbančič, G., Brezočnik, L., Mlakar, U., Fister, D., Fister Jr., I.: NiaPY: python microframework for building nature-inspired algorithms. J. Open Source Softw. 3, 613 (2018)

    Article  Google Scholar 

  52. Wagner, S., Affenzeller, M.: The HeuristicLab optimization environment. Technical report, University of Applied Sciences Upper Austria (2004)

    Google Scholar 

  53. Wilson, G.C., Mc Intyre, A., Heywood, M.I.: Resource review: three open source systems for evolving programs-Lilgp, ECJ and grammatical evolution. Genet. Program Evolvable Mach. 5(1), 103–105 (2004). https://doi.org/10.1023/B:GENP.0000017053.10351.dc

    Article  Google Scholar 

  54. Wiwie, C., Baumbach, J., Röttger, R.: Comparing the performance of biomedical clustering methods. Nat. Methods 12(11), 1033 (2015)

    Article  Google Scholar 

  55. Yang, X.S., Deb, S.: Cuckoo search via Lévy flights. In: 2009 World Congress on Nature Biologically Inspired Computing, NaBIC 2009, pp. 210–214, December 2009

    Google Scholar 

  56. Yang, X.-S.: Firefly algorithm, stochastic test functions and design optimisation. Int. J. Bio-Inspired Comput. 2(2), 78–84 (2010)

    Article  Google Scholar 

  57. Yang, X.-S.: A new metaheuristic bat-inspired algorithm. In: González, J.R., Pelta, D.A., Cruz, C., Terrazas, G., Krasnogor, N. (eds.) NICSO 2010. SCI, vol. 284. Springer, Berlin (2010). https://doi.org/10.1007/978-3-642-12538-6_6

    Chapter  Google Scholar 

Download references

Acknowledgements

This work has been supported in part by: Ministerio español de Economía y Competitividad under project TIN2017-85727-C4-2-P (UGR-DeepBio).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hossam Faris .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Qaddoura, R., Faris, H., Aljarah, I., Castillo, P.A. (2020). EvoCluster: An Open-Source Nature-Inspired Optimization Clustering Framework in Python. In: Castillo, P.A., Jiménez Laredo, J.L., Fernández de Vega, F. (eds) Applications of Evolutionary Computation. EvoApplications 2020. Lecture Notes in Computer Science(), vol 12104. Springer, Cham. https://doi.org/10.1007/978-3-030-43722-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-43722-0_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-43721-3

  • Online ISBN: 978-3-030-43722-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics