├── docs ├── conf.py ├── index.rst └── quickstart.rst ├── EvoCluster ├── cli.py ├── __init__.py ├── datasets │ ├── desktop.ini │ ├── unsupervised │ │ ├── desktop.ini │ │ ├── iris2D.csv │ │ ├── diagnosis_II.csv │ │ ├── iris.csv │ │ ├── flame.csv │ │ ├── vary-density.csv │ │ ├── appendicitis.csv │ │ ├── pathbased.csv │ │ ├── jain.csv │ │ ├── liver.csv │ │ ├── balance.csv │ │ ├── seeds.csv │ │ └── glass.csv │ ├── iris2D.csv │ ├── diagnosis_II.csv │ ├── iris.csv │ ├── flame.csv │ ├── appendicitis.csv │ ├── pathbased.csv │ ├── jain.csv │ ├── vary-density.csv │ ├── liver.csv │ ├── balance.csv │ └── seeds.csv ├── optimizers │ ├── __init__.py │ ├── CPSO.py │ ├── CBAT.py │ ├── CFFA.py │ ├── CCS.py │ ├── CWOA.py │ ├── CSSA.py │ ├── CGWO.py │ ├── CMVO.py │ └── CMFO.py ├── _solution.py ├── _plot_convergence.py ├── _plot_boxplot.py ├── _objectives.py ├── _measures.py └── _cluster_detection.py ├── tests ├── test_cli.py └── __init__.py ├── tools └── unnamed ├── MANIFEST.in ├── requirements.txt ├── setup.cfg ├── examples ├── example1.py └── example2.py ├── long_description.md ├── setup.py └── README.md /docs/conf.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /EvoCluster/cli.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_cli.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tools/unnamed: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/quickstart.rst: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /EvoCluster/__init__.py: -------------------------------------------------------------------------------- 1 | from ._evocluster import EvoCluster -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include requirements.txt 2 | include long_description.md -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | NumPy 2 | SciPy 3 | sklearn 4 | pandas 5 | matplotlib -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -------------------------------------------------------------------------------- /EvoCluster/datasets/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | # [versioneer] 2 | # VCS = git 3 | # style = pep440 4 | # versionfile_source = EvoCluster/_version.py 5 | # versionfile_build = EvoCluster/_version.py 6 | # tag_prefix = v 7 | # parentdir_prefix = EvoCluster- -------------------------------------------------------------------------------- /EvoCluster/optimizers/__init__.py: -------------------------------------------------------------------------------- 1 | from .CSSA import SSA 2 | from .CPSO import PSO 3 | from .CGA import GA 4 | from .CBAT import BAT 5 | from .CFFA import FFA 6 | from .CGWO import GWO 7 | from .CWOA import WOA 8 | from .CMVO import MVO 9 | from .CMFO import MFO 10 | from .CCS import CS -------------------------------------------------------------------------------- /EvoCluster/_solution.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Tue May 17 17:06:19 2016 4 | 5 | @author: Hossam Faris 6 | """ 7 | 8 | class solution: 9 | def __init__(self): 10 | self.best = 0 11 | self.bestIndividual=[] 12 | self.convergence = [] 13 | self.optimizer="" 14 | self.objfname="" 15 | self.startTime=0 16 | self.endTime=0 17 | self.executionTime=0 18 | self.lb=0 19 | self.ub=0 20 | self.dim=0 21 | self.popnum=0 22 | self.maxiers=0 23 | self.k = 2 24 | self.points = [] 25 | self.labelsPred = [] -------------------------------------------------------------------------------- /examples/example1.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu May 20 17:06:19 2021 4 | 5 | @author: Dang Trung Anh 6 | """ 7 | 8 | from math import fabs 9 | from EvoCluster import EvoCluster 10 | 11 | optimizer = ["SSA", "PSO", "GA", "GWO"] #Select optimizers from the list of available ones: "SSA","PSO","GA","BAT","FFA","GWO","WOA","MVO","MFO","CS". 12 | objective_func = ["SSE", "TWCV"] #Select objective function from the list of available ones:"SSE","TWCV","SC","DB","DI". 13 | dataset_list = ["iris", "aggregation"] #Select data sets from the list of available ones 14 | num_of_runs = 3 #Select number of repetitions for each experiment. 15 | params = {'PopulationSize': 30, 'Iterations': 50} #Select general parameters for all optimizers (population size, number of iterations) 16 | export_flags = {'Export_avg': True, 'Export_details': True, 'Export_details_labels': True, 17 | 'Export_convergence': True, 'Export_boxplot': True} #Choose your preferemces of exporting files 18 | 19 | ec = EvoCluster( 20 | optimizer, 21 | objective_func, 22 | dataset_list, 23 | num_of_runs, 24 | params, 25 | export_flags, 26 | auto_cluster=True, 27 | n_clusters='supervised', 28 | labels_exist=True, 29 | metric='euclidean' 30 | ) 31 | 32 | ec.run() 33 | -------------------------------------------------------------------------------- /examples/example2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Created on Thu May 20 17:06:19 2021 3 | 4 | @author: Dang Trung Anh 5 | """ 6 | 7 | import os 8 | import sys 9 | 10 | sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 11 | 12 | from EvoCluster import EvoCluster 13 | 14 | optimizer = ["SSA", "PSO", "GA", "GWO"] #Select optimizers from the list of available ones: "SSA","PSO","GA","BAT","FFA","GWO","WOA","MVO","MFO","CS". 15 | objective_func = ["SSE", "TWCV"] #Select objective function from the list of available ones:"SSE","TWCV","SC","DB","DI". 16 | dataset_list = ["iris", "aggregation"] #Select data sets from the list of available ones 17 | num_of_runs = 3 #Select number of repetitions for each experiment. 18 | params = {'PopulationSize': 30, 'Iterations': 50} #Select general parameters for all optimizers (population size, number of iterations) 19 | export_flags = {'Export_avg': True, 'Export_details': True, 'Export_details_labels': True, 20 | 'Export_convergence': True, 'Export_boxplot': True} #Choose your preferemces of exporting files 21 | 22 | ec = EvoCluster( 23 | optimizer, 24 | objective_func, 25 | dataset_list, 26 | num_of_runs, 27 | params, 28 | export_flags, 29 | auto_cluster=True, 30 | n_clusters='supervised', 31 | labels_exist=True, 32 | metric='euclidean' 33 | ) 34 | 35 | ec.run() -------------------------------------------------------------------------------- /EvoCluster/_plot_convergence.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import pandas as pd 3 | from . import _objectives 4 | 5 | def run(results_directory, optimizer, objectivefunc, dataset_List, Iterations): 6 | plt.ioff() 7 | fileResultsData = pd.read_csv(results_directory + '/experiment.csv') 8 | 9 | for d in range(len(dataset_List)): 10 | dataset_filename = dataset_List[d] + '.csv' 11 | for j in range (0, len(objectivefunc)): 12 | objective_name = objectivefunc[j] 13 | 14 | startIteration = 0 15 | if 'SSA' in optimizer: 16 | startIteration = 1 17 | allGenerations = [x+1 for x in range(startIteration,Iterations)] 18 | for i in range(len(optimizer)): 19 | optimizer_name = optimizer[i] 20 | fileResultsData = fileResultsData.drop(['SSE','Purity','Entropy','HS','CS','VM','AMI','ARI','Fmeasure','TWCV','SC','Accuracy','DI','DB','STDev'], errors='ignore', axis=1) 21 | row = fileResultsData[(fileResultsData["Dataset"] == dataset_List[d]) & (fileResultsData["Optimizer"] == optimizer_name) & (fileResultsData["objfname"] == objective_name)] 22 | row = row.iloc[:, 5+startIteration:] 23 | 24 | plt.plot(allGenerations, row.values.tolist()[0], label=optimizer_name) 25 | plt.xlabel('Iterations') 26 | plt.ylabel('Fitness') 27 | plt.legend(loc="upper right", bbox_to_anchor=(1.2,1.02)) 28 | plt.grid() 29 | fig_name = results_directory + "/convergence-" + dataset_List[d] + "-" + objective_name + ".png" 30 | plt.savefig(fig_name, bbox_inches='tight') 31 | plt.clf() 32 | #plt.show() 33 | -------------------------------------------------------------------------------- /long_description.md: -------------------------------------------------------------------------------- 1 | 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. 2 | 3 | - Web Page: http://evo-ml.com/evocluster/ 4 | - Paper: https://link.springer.com/chapter/10.1007/978-3-030-43722-0_2 5 | - Extended Paper: https://link.springer.com/article/10.1007/s42979-021-00511-0 6 | - Source code: https://github.com/RaneemQaddoura/EvoCluster/ 7 | 8 | Features 9 | - Ten nature-inspired metaheuristic optimizers are implemented (SSA, PSO, GA, BAT, FFA, GWO, WOA, MVO, MFO, and CS). 10 | - Five objective functions (SSE, TWCV, SC, DB, and DI). 11 | - Thirty datasets obtained from Scikit learn, UCI, School of Computing at University of Eastern Finland, ELKI, KEEL, and Naftali Harris Blog 12 | - Twelve evaluation measures (SSE, Purity, Entropy, HS, CS, VM, AMI, ARI, Fmeasure, TWCV, SC, Accuracy, DI, DB, and Standard Diviation) 13 | - More than twenty distance measures 14 | - Ten different ways for detecting the k value 15 | - The implimentation uses the fast array manipulation using [NumPy] (http://www.numpy.org/). 16 | - Matrix support using [SciPy's] (https://www.scipy.org/) package. 17 | - Simple and efficient tools for prediction using [sklearn] (https://scikit-learn.org/stable/) 18 | - File data analysis and manipulation tool using [pandas] (https://pandas.pydata.org/) 19 | - Plot interactive visualizations using [matplotlib] (https://matplotlib.org/) 20 | - More optimizers, objective functions, adatasets, and evaluation measures are coming soon. 21 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu May 20 17:06:19 2021 4 | 5 | @author: Dang Trung Anh 6 | """ 7 | 8 | import os 9 | from pip._internal.network.session import PipSession 10 | from setuptools import setup, find_packages 11 | 12 | VERSION = '1.0.6' 13 | DESCRIPTION = 'An Open-Source Nature-Inspired Optimization Clustering Framework in Python' 14 | 15 | from pip._internal.req import parse_requirements 16 | 17 | install_reqs = parse_requirements('requirements.txt', session=PipSession()) 18 | reqs = [str(ir.requirement) for ir in install_reqs] 19 | 20 | # read the contents of your README file 21 | from os import path 22 | this_directory = path.abspath(path.dirname(__file__)) 23 | with open(path.join(this_directory, 'long_description.md'), encoding='utf-8') as f: 24 | long_description = f.read() 25 | 26 | 27 | setup( 28 | # the name must match the folder name 'EvoCC' 29 | name="EvoCluster", 30 | version=VERSION, 31 | author="Raneem Qaddoura, Hossam Faris, Ibrahim Aljarah, and Pedro A. Castillo", 32 | author_email="dangtrunganh@gmail.com, raneem.qaddoura@gmail.com", 33 | description=DESCRIPTION, 34 | long_description=long_description, 35 | long_description_content_type='text/markdown', 36 | # package_dir={"": "EvoCluster"}, 37 | packages=find_packages(), 38 | # add any additional packages that 39 | install_requires=reqs, 40 | url='https://github.com/RaneemQaddoura/EvoCluster', 41 | keywords=['python', 'first package'], 42 | classifiers= [ 43 | "Development Status :: 3 - Alpha", 44 | "Intended Audience :: Education", 45 | "Programming Language :: Python :: 2", 46 | "Programming Language :: Python :: 3", 47 | "Operating System :: MacOS :: MacOS X", 48 | "Operating System :: Microsoft :: Windows", 49 | ], 50 | package_data = {'': ['datasets/*.csv']}, 51 | 52 | ) 53 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/iris2D.csv: -------------------------------------------------------------------------------- 1 | 1.4,0.2 2 | 1.4,0.2 3 | 1.3,0.2 4 | 1.5,0.2 5 | 1.4,0.2 6 | 1.7,0.4 7 | 1.4,0.3 8 | 1.5,0.2 9 | 1.4,0.2 10 | 1.5,0.1 11 | 1.5,0.2 12 | 1.6,0.2 13 | 1.4,0.1 14 | 1.1,0.1 15 | 1.2,0.2 16 | 1.5,0.4 17 | 1.3,0.4 18 | 1.4,0.3 19 | 1.7,0.3 20 | 1.5,0.3 21 | 1.7,0.2 22 | 1.5,0.4 23 | 1,0.2 24 | 1.7,0.5 25 | 1.9,0.2 26 | 1.6,0.2 27 | 1.6,0.4 28 | 1.5,0.2 29 | 1.4,0.2 30 | 1.6,0.2 31 | 1.6,0.2 32 | 1.5,0.4 33 | 1.5,0.1 34 | 1.4,0.2 35 | 1.5,0.1 36 | 1.2,0.2 37 | 1.3,0.2 38 | 1.5,0.1 39 | 1.3,0.2 40 | 1.5,0.2 41 | 1.3,0.3 42 | 1.3,0.3 43 | 1.3,0.2 44 | 1.6,0.6 45 | 1.9,0.4 46 | 1.4,0.3 47 | 1.6,0.2 48 | 1.4,0.2 49 | 1.5,0.2 50 | 1.4,0.2 51 | 4.7,1.4 52 | 4.5,1.5 53 | 4.9,1.5 54 | 4,1.3 55 | 4.6,1.5 56 | 4.5,1.3 57 | 4.7,1.6 58 | 3.3,1 59 | 4.6,1.3 60 | 3.9,1.4 61 | 3.5,1 62 | 4.2,1.5 63 | 4,1 64 | 4.7,1.4 65 | 3.6,1.3 66 | 4.4,1.4 67 | 4.5,1.5 68 | 4.1,1 69 | 4.5,1.5 70 | 3.9,1.1 71 | 4.8,1.8 72 | 4,1.3 73 | 4.9,1.5 74 | 4.7,1.2 75 | 4.3,1.3 76 | 4.4,1.4 77 | 4.8,1.4 78 | 5,1.7 79 | 4.5,1.5 80 | 3.5,1 81 | 3.8,1.1 82 | 3.7,1 83 | 3.9,1.2 84 | 5.1,1.6 85 | 4.5,1.5 86 | 4.5,1.6 87 | 4.7,1.5 88 | 4.4,1.3 89 | 4.1,1.3 90 | 4,1.3 91 | 4.4,1.2 92 | 4.6,1.4 93 | 4,1.2 94 | 3.3,1 95 | 4.2,1.3 96 | 4.2,1.2 97 | 4.2,1.3 98 | 4.3,1.3 99 | 3,1.1 100 | 4.1,1.3 101 | 6,2.5 102 | 5.1,1.9 103 | 5.9,2.1 104 | 5.6,1.8 105 | 5.8,2.2 106 | 6.6,2.1 107 | 4.5,1.7 108 | 6.3,1.8 109 | 5.8,1.8 110 | 6.1,2.5 111 | 5.1,2 112 | 5.3,1.9 113 | 5.5,2.1 114 | 5,2 115 | 5.1,2.4 116 | 5.3,2.3 117 | 5.5,1.8 118 | 6.7,2.2 119 | 6.9,2.3 120 | 5,1.5 121 | 5.7,2.3 122 | 4.9,2 123 | 6.7,2 124 | 4.9,1.8 125 | 5.7,2.1 126 | 6,1.8 127 | 4.8,1.8 128 | 4.9,1.8 129 | 5.6,2.1 130 | 5.8,1.6 131 | 6.1,1.9 132 | 6.4,2 133 | 5.6,2.2 134 | 5.1,1.5 135 | 5.6,1.4 136 | 6.1,2.3 137 | 5.6,2.4 138 | 5.5,1.8 139 | 4.8,1.8 140 | 5.4,2.1 141 | 5.6,2.4 142 | 5.1,2.3 143 | 5.1,1.9 144 | 5.9,2.3 145 | 5.7,2.5 146 | 5.2,2.3 147 | 5,1.9 148 | 5.2,2 149 | 5.4,2.3 150 | 5.1,1.8 151 | -------------------------------------------------------------------------------- /EvoCluster/_plot_boxplot.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | from . import _objectives 4 | import matplotlib.pyplot as plt 5 | 6 | def run(results_directory, optimizer, objectivefunc, dataset_List, ev_measures, Iterations): 7 | plt.ioff() 8 | 9 | fileResultsDetailsData = pd.read_csv(results_directory + '/experiment_details.csv') 10 | for d in range(len(dataset_List)): 11 | dataset_filename = dataset_List[d] + '.csv' 12 | for j in range (0, len(objectivefunc)): 13 | for z in range (0, len(ev_measures)): 14 | 15 | #Box Plot 16 | data = [] 17 | 18 | for i in range(len(optimizer)): 19 | objective_name = objectivefunc[j] 20 | optimizer_name = optimizer[i] 21 | 22 | detailedData = fileResultsDetailsData[(fileResultsDetailsData["Dataset"] == dataset_List[d]) & (fileResultsDetailsData["Optimizer"] == optimizer_name) & (fileResultsDetailsData["objfname"] == objective_name)] 23 | detailedData = detailedData[ev_measures[z]] 24 | detailedData = np.array(detailedData).T.tolist() 25 | data.append(detailedData) 26 | 27 | #, notch=True 28 | box=plt.boxplot(data,patch_artist=True,labels=optimizer) 29 | 30 | 31 | colors = ['#5c9eb7','#f77199', '#cf81d2','#4a5e6a','#f45b18', 32 | '#ffbd35','#6ba5a1','#fcd1a1','#c3ffc1','#68549d', 33 | '#1c8c44','#a44c40','#404636'] 34 | for patch, color in zip(box['boxes'], colors): 35 | patch.set_facecolor(color) 36 | 37 | plt.legend(handles= box['boxes'], labels=optimizer, 38 | loc="upper right", bbox_to_anchor=(1.2,1.02)) 39 | fig_name = results_directory + "/boxplot-" + dataset_List[d] + "-" + objective_name + "-" + ev_measures[z] + ".png" 40 | plt.savefig(fig_name, bbox_inches='tight') 41 | plt.clf() 42 | #plt.show() 43 | 44 | -------------------------------------------------------------------------------- /EvoCluster/datasets/iris2D.csv: -------------------------------------------------------------------------------- 1 | 1.4,0.2,0 2 | 1.4,0.2,0 3 | 1.3,0.2,0 4 | 1.5,0.2,0 5 | 1.4,0.2,0 6 | 1.7,0.4,0 7 | 1.4,0.3,0 8 | 1.5,0.2,0 9 | 1.4,0.2,0 10 | 1.5,0.1,0 11 | 1.5,0.2,0 12 | 1.6,0.2,0 13 | 1.4,0.1,0 14 | 1.1,0.1,0 15 | 1.2,0.2,0 16 | 1.5,0.4,0 17 | 1.3,0.4,0 18 | 1.4,0.3,0 19 | 1.7,0.3,0 20 | 1.5,0.3,0 21 | 1.7,0.2,0 22 | 1.5,0.4,0 23 | 1,0.2,0 24 | 1.7,0.5,0 25 | 1.9,0.2,0 26 | 1.6,0.2,0 27 | 1.6,0.4,0 28 | 1.5,0.2,0 29 | 1.4,0.2,0 30 | 1.6,0.2,0 31 | 1.6,0.2,0 32 | 1.5,0.4,0 33 | 1.5,0.1,0 34 | 1.4,0.2,0 35 | 1.5,0.1,0 36 | 1.2,0.2,0 37 | 1.3,0.2,0 38 | 1.5,0.1,0 39 | 1.3,0.2,0 40 | 1.5,0.2,0 41 | 1.3,0.3,0 42 | 1.3,0.3,0 43 | 1.3,0.2,0 44 | 1.6,0.6,0 45 | 1.9,0.4,0 46 | 1.4,0.3,0 47 | 1.6,0.2,0 48 | 1.4,0.2,0 49 | 1.5,0.2,0 50 | 1.4,0.2,0 51 | 4.7,1.4,1 52 | 4.5,1.5,1 53 | 4.9,1.5,1 54 | 4,1.3,1 55 | 4.6,1.5,1 56 | 4.5,1.3,1 57 | 4.7,1.6,1 58 | 3.3,1,1 59 | 4.6,1.3,1 60 | 3.9,1.4,1 61 | 3.5,1,1 62 | 4.2,1.5,1 63 | 4,1,1 64 | 4.7,1.4,1 65 | 3.6,1.3,1 66 | 4.4,1.4,1 67 | 4.5,1.5,1 68 | 4.1,1,1 69 | 4.5,1.5,1 70 | 3.9,1.1,1 71 | 4.8,1.8,1 72 | 4,1.3,1 73 | 4.9,1.5,1 74 | 4.7,1.2,1 75 | 4.3,1.3,1 76 | 4.4,1.4,1 77 | 4.8,1.4,1 78 | 5,1.7,1 79 | 4.5,1.5,1 80 | 3.5,1,1 81 | 3.8,1.1,1 82 | 3.7,1,1 83 | 3.9,1.2,1 84 | 5.1,1.6,1 85 | 4.5,1.5,1 86 | 4.5,1.6,1 87 | 4.7,1.5,1 88 | 4.4,1.3,1 89 | 4.1,1.3,1 90 | 4,1.3,1 91 | 4.4,1.2,1 92 | 4.6,1.4,1 93 | 4,1.2,1 94 | 3.3,1,1 95 | 4.2,1.3,1 96 | 4.2,1.2,1 97 | 4.2,1.3,1 98 | 4.3,1.3,1 99 | 3,1.1,1 100 | 4.1,1.3,1 101 | 6,2.5,2 102 | 5.1,1.9,2 103 | 5.9,2.1,2 104 | 5.6,1.8,2 105 | 5.8,2.2,2 106 | 6.6,2.1,2 107 | 4.5,1.7,2 108 | 6.3,1.8,2 109 | 5.8,1.8,2 110 | 6.1,2.5,2 111 | 5.1,2,2 112 | 5.3,1.9,2 113 | 5.5,2.1,2 114 | 5,2,2 115 | 5.1,2.4,2 116 | 5.3,2.3,2 117 | 5.5,1.8,2 118 | 6.7,2.2,2 119 | 6.9,2.3,2 120 | 5,1.5,2 121 | 5.7,2.3,2 122 | 4.9,2,2 123 | 6.7,2,2 124 | 4.9,1.8,2 125 | 5.7,2.1,2 126 | 6,1.8,2 127 | 4.8,1.8,2 128 | 4.9,1.8,2 129 | 5.6,2.1,2 130 | 5.8,1.6,2 131 | 6.1,1.9,2 132 | 6.4,2,2 133 | 5.6,2.2,2 134 | 5.1,1.5,2 135 | 5.6,1.4,2 136 | 6.1,2.3,2 137 | 5.6,2.4,2 138 | 5.5,1.8,2 139 | 4.8,1.8,2 140 | 5.4,2.1,2 141 | 5.6,2.4,2 142 | 5.1,2.3,2 143 | 5.1,1.9,2 144 | 5.9,2.3,2 145 | 5.7,2.5,2 146 | 5.2,2.3,2 147 | 5,1.9,2 148 | 5.2,2,2 149 | 5.4,2.3,2 150 | 5.1,1.8,2 151 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/diagnosis_II.csv: -------------------------------------------------------------------------------- 1 | 0,0,1,0,0,0 2 | 0.066667,0,0,1,1,1 3 | 0.066667,0,1,0,0,0 4 | 0.083333,0,0,1,1,1 5 | 0.083333,0,1,0,0,0 6 | 0.083333,0,1,0,0,0 7 | 0.116667,0,0,1,1,1 8 | 0.116667,0,1,0,0,0 9 | 0.133333,0,0,1,1,1 10 | 0.183333,0,0,1,1,1 11 | 0.183333,0,0,1,1,1 12 | 0.183333,0,1,0,0,0 13 | 0.183333,0,1,0,0,0 14 | 0.2,0,0,1,1,1 15 | 0.2,0,1,0,0,0 16 | 0.2,0,1,0,0,0 17 | 0.216667,0,0,1,1,1 18 | 0.216667,0,0,1,1,1 19 | 0.233333,0,0,1,1,1 20 | 0.233333,0,1,0,0,0 21 | 0.25,0,0,1,1,0 22 | 0.25,0,0,1,1,0 23 | 0.25,0,1,0,0,0 24 | 0.25,0,0,1,1,1 25 | 0.25,0,0,1,1,1 26 | 0.25,0,0,1,1,1 27 | 0.25,0,0,1,1,1 28 | 0.25,0,0,1,0,0 29 | 0.266667,0,1,0,0,0 30 | 0.266667,0,0,1,1,1 31 | 0.266667,0,0,1,0,0 32 | 0.283333,0,0,1,1,0 33 | 0.283333,0,1,0,0,0 34 | 0.283333,0,0,1,0,0 35 | 0.3,0,1,0,0,0 36 | 0.3,0,0,1,1,1 37 | 0.3,0,0,1,0,0 38 | 0.316667,0,1,0,0,0 39 | 0.316667,0,0,1,0,0 40 | 0.333333,0,0,1,1,0 41 | 0.333333,0,1,0,0,0 42 | 0.333333,0,1,0,0,0 43 | 0.333333,0,0,1,1,1 44 | 0.333333,0,0,1,0,0 45 | 0.333333,0,0,1,0,0 46 | 0.35,0,0,1,1,0 47 | 0.35,0,0,1,1,0 48 | 0.35,0,0,1,1,1 49 | 0.366667,0,0,1,1,0 50 | 0.366667,0,0,1,1,0 51 | 0.366667,0,1,0,0,0 52 | 0.366667,0,0,1,0,0 53 | 0.383333,0,1,0,0,0 54 | 0.383333,0,0,1,1,1 55 | 0.383333,0,0,1,0,0 56 | 0.4,0,0,1,1,0 57 | 0.4,0,0,1,1,0 58 | 0.4,0,1,0,0,0 59 | 0.4,0,0,1,1,1 60 | 0.4,0,0,1,0,0 61 | 0.416667,0,1,1,0,1 62 | 0.416667,0,1,1,0,1 63 | 0.433333,0,1,1,0,1 64 | 0.466667,0,1,1,0,1 65 | 0.5,0,1,1,0,1 66 | 0.533333,0,1,1,0,1 67 | 0.566667,0,1,1,0,1 68 | 0.583333,0,1,1,0,1 69 | 0.65,0,1,1,0,1 70 | 0.7,0,1,1,0,1 71 | 0.75,1,1,1,1,1 72 | 0.75,1,1,1,1,1 73 | 0.75,1,1,1,1,0 74 | 0.75,0,0,0,0,0 75 | 0.75,0,0,0,0,0 76 | 0.75,1,1,0,1,0 77 | 0.75,1,1,0,1,0 78 | 0.75,0,1,1,0,1 79 | 0.766667,1,1,1,1,0 80 | 0.783333,1,1,1,1,1 81 | 0.783333,0,0,0,0,0 82 | 0.783333,1,1,0,1,0 83 | 0.8,0,1,1,0,1 84 | 0.816667,1,1,1,1,1 85 | 0.816667,1,1,1,1,0 86 | 0.816667,1,1,1,1,0 87 | 0.816667,0,0,0,0,0 88 | 0.816667,1,1,0,1,0 89 | 0.833333,1,1,1,1,0 90 | 0.85,1,1,1,1,1 91 | 0.85,0,0,0,0,0 92 | 0.85,1,1,0,1,0 93 | 0.866667,1,1,1,1,1 94 | 0.866667,1,1,1,1,0 95 | 0.866667,0,0,0,0,0 96 | 0.866667,1,1,0,1,0 97 | 0.866667,0,1,1,0,1 98 | 0.883333,0,1,1,0,1 99 | 0.9,1,1,1,1,0 100 | 0.9,1,1,1,1,0 101 | 0.9,0,1,1,0,1 102 | 0.916667,1,1,1,1,1 103 | 0.916667,0,0,0,0,0 104 | 0.916667,1,1,0,1,0 105 | 0.916667,0,1,1,0,1 106 | 0.933333,1,1,1,1,1 107 | 0.933333,1,1,1,1,0 108 | 0.933333,0,0,0,0,0 109 | 0.933333,1,1,0,1,0 110 | 0.933333,0,1,1,0,1 111 | 0.95,1,1,1,1,1 112 | 0.95,0,0,0,0,0 113 | 0.95,1,1,0,1,0 114 | 0.95,0,1,1,0,1 115 | 0.966667,1,1,1,1,0 116 | 0.983333,0,1,1,0,1 117 | 1,0,0,0,0,0 118 | 1,1,1,0,1,0 119 | 1,0,1,1,0,1 120 | 1,0,1,1,0,1 121 | -------------------------------------------------------------------------------- /EvoCluster/datasets/diagnosis_II.csv: -------------------------------------------------------------------------------- 1 | 0,0,1,0,0,0,1 2 | 0.066667,0,0,1,1,1,1 3 | 0.066667,0,1,0,0,0,1 4 | 0.083333,0,0,1,1,1,1 5 | 0.083333,0,1,0,0,0,1 6 | 0.083333,0,1,0,0,0,1 7 | 0.116667,0,0,1,1,1,1 8 | 0.116667,0,1,0,0,0,1 9 | 0.133333,0,0,1,1,1,1 10 | 0.183333,0,0,1,1,1,1 11 | 0.183333,0,0,1,1,1,1 12 | 0.183333,0,1,0,0,0,1 13 | 0.183333,0,1,0,0,0,1 14 | 0.2,0,0,1,1,1,1 15 | 0.2,0,1,0,0,0,1 16 | 0.2,0,1,0,0,0,1 17 | 0.216667,0,0,1,1,1,1 18 | 0.216667,0,0,1,1,1,1 19 | 0.233333,0,0,1,1,1,1 20 | 0.233333,0,1,0,0,0,1 21 | 0.25,0,0,1,1,0,1 22 | 0.25,0,0,1,1,0,1 23 | 0.25,0,1,0,0,0,1 24 | 0.25,0,0,1,1,1,1 25 | 0.25,0,0,1,1,1,1 26 | 0.25,0,0,1,1,1,1 27 | 0.25,0,0,1,1,1,1 28 | 0.25,0,0,1,0,0,1 29 | 0.266667,0,1,0,0,0,1 30 | 0.266667,0,0,1,1,1,1 31 | 0.266667,0,0,1,0,0,1 32 | 0.283333,0,0,1,1,0,1 33 | 0.283333,0,1,0,0,0,1 34 | 0.283333,0,0,1,0,0,1 35 | 0.3,0,1,0,0,0,1 36 | 0.3,0,0,1,1,1,1 37 | 0.3,0,0,1,0,0,1 38 | 0.316667,0,1,0,0,0,1 39 | 0.316667,0,0,1,0,0,1 40 | 0.333333,0,0,1,1,0,1 41 | 0.333333,0,1,0,0,0,1 42 | 0.333333,0,1,0,0,0,1 43 | 0.333333,0,0,1,1,1,1 44 | 0.333333,0,0,1,0,0,1 45 | 0.333333,0,0,1,0,0,1 46 | 0.35,0,0,1,1,0,1 47 | 0.35,0,0,1,1,0,1 48 | 0.35,0,0,1,1,1,1 49 | 0.366667,0,0,1,1,0,1 50 | 0.366667,0,0,1,1,0,1 51 | 0.366667,0,1,0,0,0,1 52 | 0.366667,0,0,1,0,0,1 53 | 0.383333,0,1,0,0,0,1 54 | 0.383333,0,0,1,1,1,1 55 | 0.383333,0,0,1,0,0,1 56 | 0.4,0,0,1,1,0,1 57 | 0.4,0,0,1,1,0,1 58 | 0.4,0,1,0,0,0,1 59 | 0.4,0,0,1,1,1,1 60 | 0.4,0,0,1,0,0,1 61 | 0.416667,0,1,1,0,1,2 62 | 0.416667,0,1,1,0,1,2 63 | 0.433333,0,1,1,0,1,2 64 | 0.466667,0,1,1,0,1,2 65 | 0.5,0,1,1,0,1,2 66 | 0.533333,0,1,1,0,1,2 67 | 0.566667,0,1,1,0,1,2 68 | 0.583333,0,1,1,0,1,2 69 | 0.65,0,1,1,0,1,2 70 | 0.7,0,1,1,0,1,2 71 | 0.75,1,1,1,1,1,2 72 | 0.75,1,1,1,1,1,2 73 | 0.75,1,1,1,1,0,2 74 | 0.75,0,0,0,0,0,1 75 | 0.75,0,0,0,0,0,1 76 | 0.75,1,1,0,1,0,2 77 | 0.75,1,1,0,1,0,2 78 | 0.75,0,1,1,0,1,2 79 | 0.766667,1,1,1,1,0,2 80 | 0.783333,1,1,1,1,1,2 81 | 0.783333,0,0,0,0,0,1 82 | 0.783333,1,1,0,1,0,2 83 | 0.8,0,1,1,0,1,2 84 | 0.816667,1,1,1,1,1,2 85 | 0.816667,1,1,1,1,0,2 86 | 0.816667,1,1,1,1,0,2 87 | 0.816667,0,0,0,0,0,1 88 | 0.816667,1,1,0,1,0,2 89 | 0.833333,1,1,1,1,0,2 90 | 0.85,1,1,1,1,1,2 91 | 0.85,0,0,0,0,0,1 92 | 0.85,1,1,0,1,0,2 93 | 0.866667,1,1,1,1,1,2 94 | 0.866667,1,1,1,1,0,2 95 | 0.866667,0,0,0,0,0,1 96 | 0.866667,1,1,0,1,0,2 97 | 0.866667,0,1,1,0,1,2 98 | 0.883333,0,1,1,0,1,2 99 | 0.9,1,1,1,1,0,2 100 | 0.9,1,1,1,1,0,2 101 | 0.9,0,1,1,0,1,2 102 | 0.916667,1,1,1,1,1,2 103 | 0.916667,0,0,0,0,0,1 104 | 0.916667,1,1,0,1,0,2 105 | 0.916667,0,1,1,0,1,2 106 | 0.933333,1,1,1,1,1,2 107 | 0.933333,1,1,1,1,0,2 108 | 0.933333,0,0,0,0,0,1 109 | 0.933333,1,1,0,1,0,2 110 | 0.933333,0,1,1,0,1,2 111 | 0.95,1,1,1,1,1,2 112 | 0.95,0,0,0,0,0,1 113 | 0.95,1,1,0,1,0,2 114 | 0.95,0,1,1,0,1,2 115 | 0.966667,1,1,1,1,0,2 116 | 0.983333,0,1,1,0,1,2 117 | 1,0,0,0,0,0,1 118 | 1,1,1,0,1,0,2 119 | 1,0,1,1,0,1,2 120 | 1,0,1,1,0,1,2 -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/iris.csv: -------------------------------------------------------------------------------- 1 | 5.1,3.5,1.4,0.2 2 | 4.9,3,1.4,0.2 3 | 4.7,3.2,1.3,0.2 4 | 4.6,3.1,1.5,0.2 5 | 5,3.6,1.4,0.2 6 | 5.4,3.9,1.7,0.4 7 | 4.6,3.4,1.4,0.3 8 | 5,3.4,1.5,0.2 9 | 4.4,2.9,1.4,0.2 10 | 4.9,3.1,1.5,0.1 11 | 5.4,3.7,1.5,0.2 12 | 4.8,3.4,1.6,0.2 13 | 4.8,3,1.4,0.1 14 | 4.3,3,1.1,0.1 15 | 5.8,4,1.2,0.2 16 | 5.7,4.4,1.5,0.4 17 | 5.4,3.9,1.3,0.4 18 | 5.1,3.5,1.4,0.3 19 | 5.7,3.8,1.7,0.3 20 | 5.1,3.8,1.5,0.3 21 | 5.4,3.4,1.7,0.2 22 | 5.1,3.7,1.5,0.4 23 | 4.6,3.6,1,0.2 24 | 5.1,3.3,1.7,0.5 25 | 4.8,3.4,1.9,0.2 26 | 5,3,1.6,0.2 27 | 5,3.4,1.6,0.4 28 | 5.2,3.5,1.5,0.2 29 | 5.2,3.4,1.4,0.2 30 | 4.7,3.2,1.6,0.2 31 | 4.8,3.1,1.6,0.2 32 | 5.4,3.4,1.5,0.4 33 | 5.2,4.1,1.5,0.1 34 | 5.5,4.2,1.4,0.2 35 | 4.9,3.1,1.5,0.1 36 | 5,3.2,1.2,0.2 37 | 5.5,3.5,1.3,0.2 38 | 4.9,3.1,1.5,0.1 39 | 4.4,3,1.3,0.2 40 | 5.1,3.4,1.5,0.2 41 | 5,3.5,1.3,0.3 42 | 4.5,2.3,1.3,0.3 43 | 4.4,3.2,1.3,0.2 44 | 5,3.5,1.6,0.6 45 | 5.1,3.8,1.9,0.4 46 | 4.8,3,1.4,0.3 47 | 5.1,3.8,1.6,0.2 48 | 4.6,3.2,1.4,0.2 49 | 5.3,3.7,1.5,0.2 50 | 5,3.3,1.4,0.2 51 | 7,3.2,4.7,1.4 52 | 6.4,3.2,4.5,1.5 53 | 6.9,3.1,4.9,1.5 54 | 5.5,2.3,4,1.3 55 | 6.5,2.8,4.6,1.5 56 | 5.7,2.8,4.5,1.3 57 | 6.3,3.3,4.7,1.6 58 | 4.9,2.4,3.3,1 59 | 6.6,2.9,4.6,1.3 60 | 5.2,2.7,3.9,1.4 61 | 5,2,3.5,1 62 | 5.9,3,4.2,1.5 63 | 6,2.2,4,1 64 | 6.1,2.9,4.7,1.4 65 | 5.6,2.9,3.6,1.3 66 | 6.7,3.1,4.4,1.4 67 | 5.6,3,4.5,1.5 68 | 5.8,2.7,4.1,1 69 | 6.2,2.2,4.5,1.5 70 | 5.6,2.5,3.9,1.1 71 | 5.9,3.2,4.8,1.8 72 | 6.1,2.8,4,1.3 73 | 6.3,2.5,4.9,1.5 74 | 6.1,2.8,4.7,1.2 75 | 6.4,2.9,4.3,1.3 76 | 6.6,3,4.4,1.4 77 | 6.8,2.8,4.8,1.4 78 | 6.7,3,5,1.7 79 | 6,2.9,4.5,1.5 80 | 5.7,2.6,3.5,1 81 | 5.5,2.4,3.8,1.1 82 | 5.5,2.4,3.7,1 83 | 5.8,2.7,3.9,1.2 84 | 6,2.7,5.1,1.6 85 | 5.4,3,4.5,1.5 86 | 6,3.4,4.5,1.6 87 | 6.7,3.1,4.7,1.5 88 | 6.3,2.3,4.4,1.3 89 | 5.6,3,4.1,1.3 90 | 5.5,2.5,4,1.3 91 | 5.5,2.6,4.4,1.2 92 | 6.1,3,4.6,1.4 93 | 5.8,2.6,4,1.2 94 | 5,2.3,3.3,1 95 | 5.6,2.7,4.2,1.3 96 | 5.7,3,4.2,1.2 97 | 5.7,2.9,4.2,1.3 98 | 6.2,2.9,4.3,1.3 99 | 5.1,2.5,3,1.1 100 | 5.7,2.8,4.1,1.3 101 | 6.3,3.3,6,2.5 102 | 5.8,2.7,5.1,1.9 103 | 7.1,3,5.9,2.1 104 | 6.3,2.9,5.6,1.8 105 | 6.5,3,5.8,2.2 106 | 7.6,3,6.6,2.1 107 | 4.9,2.5,4.5,1.7 108 | 7.3,2.9,6.3,1.8 109 | 6.7,2.5,5.8,1.8 110 | 7.2,3.6,6.1,2.5 111 | 6.5,3.2,5.1,2 112 | 6.4,2.7,5.3,1.9 113 | 6.8,3,5.5,2.1 114 | 5.7,2.5,5,2 115 | 5.8,2.8,5.1,2.4 116 | 6.4,3.2,5.3,2.3 117 | 6.5,3,5.5,1.8 118 | 7.7,3.8,6.7,2.2 119 | 7.7,2.6,6.9,2.3 120 | 6,2.2,5,1.5 121 | 6.9,3.2,5.7,2.3 122 | 5.6,2.8,4.9,2 123 | 7.7,2.8,6.7,2 124 | 6.3,2.7,4.9,1.8 125 | 6.7,3.3,5.7,2.1 126 | 7.2,3.2,6,1.8 127 | 6.2,2.8,4.8,1.8 128 | 6.1,3,4.9,1.8 129 | 6.4,2.8,5.6,2.1 130 | 7.2,3,5.8,1.6 131 | 7.4,2.8,6.1,1.9 132 | 7.9,3.8,6.4,2 133 | 6.4,2.8,5.6,2.2 134 | 6.3,2.8,5.1,1.5 135 | 6.1,2.6,5.6,1.4 136 | 7.7,3,6.1,2.3 137 | 6.3,3.4,5.6,2.4 138 | 6.4,3.1,5.5,1.8 139 | 6,3,4.8,1.8 140 | 6.9,3.1,5.4,2.1 141 | 6.7,3.1,5.6,2.4 142 | 6.9,3.1,5.1,2.3 143 | 5.8,2.7,5.1,1.9 144 | 6.8,3.2,5.9,2.3 145 | 6.7,3.3,5.7,2.5 146 | 6.7,3,5.2,2.3 147 | 6.3,2.5,5,1.9 148 | 6.5,3,5.2,2 149 | 6.2,3.4,5.4,2.3 150 | 5.9,3,5.1,1.8 151 | -------------------------------------------------------------------------------- /EvoCluster/datasets/iris.csv: -------------------------------------------------------------------------------- 1 | 5.1,3.5,1.4,0.2,0 2 | 4.9,3,1.4,0.2,0 3 | 4.7,3.2,1.3,0.2,0 4 | 4.6,3.1,1.5,0.2,0 5 | 5,3.6,1.4,0.2,0 6 | 5.4,3.9,1.7,0.4,0 7 | 4.6,3.4,1.4,0.3,0 8 | 5,3.4,1.5,0.2,0 9 | 4.4,2.9,1.4,0.2,0 10 | 4.9,3.1,1.5,0.1,0 11 | 5.4,3.7,1.5,0.2,0 12 | 4.8,3.4,1.6,0.2,0 13 | 4.8,3,1.4,0.1,0 14 | 4.3,3,1.1,0.1,0 15 | 5.8,4,1.2,0.2,0 16 | 5.7,4.4,1.5,0.4,0 17 | 5.4,3.9,1.3,0.4,0 18 | 5.1,3.5,1.4,0.3,0 19 | 5.7,3.8,1.7,0.3,0 20 | 5.1,3.8,1.5,0.3,0 21 | 5.4,3.4,1.7,0.2,0 22 | 5.1,3.7,1.5,0.4,0 23 | 4.6,3.6,1,0.2,0 24 | 5.1,3.3,1.7,0.5,0 25 | 4.8,3.4,1.9,0.2,0 26 | 5,3,1.6,0.2,0 27 | 5,3.4,1.6,0.4,0 28 | 5.2,3.5,1.5,0.2,0 29 | 5.2,3.4,1.4,0.2,0 30 | 4.7,3.2,1.6,0.2,0 31 | 4.8,3.1,1.6,0.2,0 32 | 5.4,3.4,1.5,0.4,0 33 | 5.2,4.1,1.5,0.1,0 34 | 5.5,4.2,1.4,0.2,0 35 | 4.9,3.1,1.5,0.1,0 36 | 5,3.2,1.2,0.2,0 37 | 5.5,3.5,1.3,0.2,0 38 | 4.9,3.1,1.5,0.1,0 39 | 4.4,3,1.3,0.2,0 40 | 5.1,3.4,1.5,0.2,0 41 | 5,3.5,1.3,0.3,0 42 | 4.5,2.3,1.3,0.3,0 43 | 4.4,3.2,1.3,0.2,0 44 | 5,3.5,1.6,0.6,0 45 | 5.1,3.8,1.9,0.4,0 46 | 4.8,3,1.4,0.3,0 47 | 5.1,3.8,1.6,0.2,0 48 | 4.6,3.2,1.4,0.2,0 49 | 5.3,3.7,1.5,0.2,0 50 | 5,3.3,1.4,0.2,0 51 | 7,3.2,4.7,1.4,1 52 | 6.4,3.2,4.5,1.5,1 53 | 6.9,3.1,4.9,1.5,1 54 | 5.5,2.3,4,1.3,1 55 | 6.5,2.8,4.6,1.5,1 56 | 5.7,2.8,4.5,1.3,1 57 | 6.3,3.3,4.7,1.6,1 58 | 4.9,2.4,3.3,1,1 59 | 6.6,2.9,4.6,1.3,1 60 | 5.2,2.7,3.9,1.4,1 61 | 5,2,3.5,1,1 62 | 5.9,3,4.2,1.5,1 63 | 6,2.2,4,1,1 64 | 6.1,2.9,4.7,1.4,1 65 | 5.6,2.9,3.6,1.3,1 66 | 6.7,3.1,4.4,1.4,1 67 | 5.6,3,4.5,1.5,1 68 | 5.8,2.7,4.1,1,1 69 | 6.2,2.2,4.5,1.5,1 70 | 5.6,2.5,3.9,1.1,1 71 | 5.9,3.2,4.8,1.8,1 72 | 6.1,2.8,4,1.3,1 73 | 6.3,2.5,4.9,1.5,1 74 | 6.1,2.8,4.7,1.2,1 75 | 6.4,2.9,4.3,1.3,1 76 | 6.6,3,4.4,1.4,1 77 | 6.8,2.8,4.8,1.4,1 78 | 6.7,3,5,1.7,1 79 | 6,2.9,4.5,1.5,1 80 | 5.7,2.6,3.5,1,1 81 | 5.5,2.4,3.8,1.1,1 82 | 5.5,2.4,3.7,1,1 83 | 5.8,2.7,3.9,1.2,1 84 | 6,2.7,5.1,1.6,1 85 | 5.4,3,4.5,1.5,1 86 | 6,3.4,4.5,1.6,1 87 | 6.7,3.1,4.7,1.5,1 88 | 6.3,2.3,4.4,1.3,1 89 | 5.6,3,4.1,1.3,1 90 | 5.5,2.5,4,1.3,1 91 | 5.5,2.6,4.4,1.2,1 92 | 6.1,3,4.6,1.4,1 93 | 5.8,2.6,4,1.2,1 94 | 5,2.3,3.3,1,1 95 | 5.6,2.7,4.2,1.3,1 96 | 5.7,3,4.2,1.2,1 97 | 5.7,2.9,4.2,1.3,1 98 | 6.2,2.9,4.3,1.3,1 99 | 5.1,2.5,3,1.1,1 100 | 5.7,2.8,4.1,1.3,1 101 | 6.3,3.3,6,2.5,2 102 | 5.8,2.7,5.1,1.9,2 103 | 7.1,3,5.9,2.1,2 104 | 6.3,2.9,5.6,1.8,2 105 | 6.5,3,5.8,2.2,2 106 | 7.6,3,6.6,2.1,2 107 | 4.9,2.5,4.5,1.7,2 108 | 7.3,2.9,6.3,1.8,2 109 | 6.7,2.5,5.8,1.8,2 110 | 7.2,3.6,6.1,2.5,2 111 | 6.5,3.2,5.1,2,2 112 | 6.4,2.7,5.3,1.9,2 113 | 6.8,3,5.5,2.1,2 114 | 5.7,2.5,5,2,2 115 | 5.8,2.8,5.1,2.4,2 116 | 6.4,3.2,5.3,2.3,2 117 | 6.5,3,5.5,1.8,2 118 | 7.7,3.8,6.7,2.2,2 119 | 7.7,2.6,6.9,2.3,2 120 | 6,2.2,5,1.5,2 121 | 6.9,3.2,5.7,2.3,2 122 | 5.6,2.8,4.9,2,2 123 | 7.7,2.8,6.7,2,2 124 | 6.3,2.7,4.9,1.8,2 125 | 6.7,3.3,5.7,2.1,2 126 | 7.2,3.2,6,1.8,2 127 | 6.2,2.8,4.8,1.8,2 128 | 6.1,3,4.9,1.8,2 129 | 6.4,2.8,5.6,2.1,2 130 | 7.2,3,5.8,1.6,2 131 | 7.4,2.8,6.1,1.9,2 132 | 7.9,3.8,6.4,2,2 133 | 6.4,2.8,5.6,2.2,2 134 | 6.3,2.8,5.1,1.5,2 135 | 6.1,2.6,5.6,1.4,2 136 | 7.7,3,6.1,2.3,2 137 | 6.3,3.4,5.6,2.4,2 138 | 6.4,3.1,5.5,1.8,2 139 | 6,3,4.8,1.8,2 140 | 6.9,3.1,5.4,2.1,2 141 | 6.7,3.1,5.6,2.4,2 142 | 6.9,3.1,5.1,2.3,2 143 | 5.8,2.7,5.1,1.9,2 144 | 6.8,3.2,5.9,2.3,2 145 | 6.7,3.3,5.7,2.5,2 146 | 6.7,3,5.2,2.3,2 147 | 6.3,2.5,5,1.9,2 148 | 6.5,3,5.2,2,2 149 | 6.2,3.4,5.4,2.3,2 150 | 5.9,3,5.1,1.8,2 151 | -------------------------------------------------------------------------------- /EvoCluster/optimizers/CPSO.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Fri Mar 15 21:04:15 2019 4 | 5 | @author: Raneem 6 | """ 7 | 8 | import random 9 | import numpy 10 | import math 11 | from .._solution import solution 12 | import time 13 | 14 | def PSO(objf,lb,ub,dim,PopSize,iters, k, points, metric): 15 | 16 | # PSO parameters 17 | 18 | # dim=30 19 | # iters=200 20 | 21 | # Vmax=6 22 | Vmax=6#raneem 23 | # PopSize=50 #population size 24 | wMax=0.9 25 | wMin=0.2 26 | c1=2 27 | c2=2 28 | # lb=-10 29 | # ub=10 30 | # 31 | s=solution() 32 | 33 | 34 | ######################## Initializations 35 | 36 | vel=numpy.zeros((PopSize,dim)) 37 | 38 | pBestScore=numpy.zeros(PopSize) 39 | pBestScore.fill(float("inf")) 40 | pBest=numpy.zeros((PopSize,dim)) 41 | pBestLabelsPred=numpy.full((PopSize,len(points)), numpy.inf) 42 | 43 | 44 | gBest=numpy.zeros(dim) 45 | gBestScore=float("inf") 46 | gBestLabelsPred=numpy.full(len(points), numpy.inf) 47 | 48 | pos=numpy.random.uniform(0,1,(PopSize,dim)) *(ub-lb)+lb 49 | 50 | convergence_curve=numpy.zeros(iters) 51 | 52 | ############################################ 53 | print("PSO is optimizing \""+objf.__name__+"\"") 54 | 55 | timerStart=time.time() 56 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 57 | 58 | for l in range(0,iters): 59 | for i in range(0,PopSize): 60 | #pos[i,:]=checkBounds(pos[i,:],lb,ub) 61 | pos[i,:]=numpy.clip(pos[i,:], lb, ub) 62 | #Calculate objective function for each particle 63 | 64 | startpts = numpy.reshape(pos[i,:], (k,(int)(dim/k))) 65 | if objf.__name__ == 'SSE' or objf.__name__ == 'SC' or objf.__name__ == 'DI': 66 | fitness, labelsPred=objf(startpts, points, k, metric) 67 | else: 68 | fitness, labelsPred=objf(startpts, points, k) 69 | 70 | if(pBestScore[i]>fitness): 71 | pBestScore[i]=fitness 72 | pBest[i,:]=pos[i,:].copy() 73 | pBestLabelsPred[i,:]=numpy.copy(labelsPred) 74 | 75 | if(gBestScore>fitness): 76 | gBestScore=fitness 77 | gBest=pos[i,:].copy() 78 | gBestLabelsPred=numpy.copy(labelsPred) 79 | 80 | #Update the W of PSO 81 | w=wMax-l*((wMax-wMin)/iters);#check this 82 | 83 | for i in range(0,PopSize): 84 | for j in range (0,dim): 85 | r1=random.random() 86 | r2=random.random() 87 | vel[i,j]=w*vel[i,j]+c1*r1*(pBest[i,j]-pos[i,j])+c2*r2*(gBest[j]-pos[i,j]) 88 | 89 | if(vel[i,j]>Vmax): 90 | vel[i,j]=Vmax 91 | 92 | if(vel[i,j]<-Vmax): 93 | vel[i,j]=-Vmax 94 | 95 | pos[i,j]=pos[i,j]+vel[i,j] 96 | 97 | convergence_curve[l]=gBestScore 98 | 99 | if (l%1==0): 100 | print(['At iteration '+ str(l+1)+ ' the best fitness is '+ str(gBestScore)]); 101 | 102 | 103 | timerEnd=time.time() 104 | s.endTime=time.strftime("%Y-%m-%d-%H-%M-%S") 105 | s.executionTime=timerEnd-timerStart 106 | s.convergence=convergence_curve 107 | s.optimizer="PSO" 108 | s.objfname=objf.__name__ 109 | s.labelsPred = numpy.array(gBestLabelsPred, dtype=numpy.int64) 110 | s.bestIndividual = gBest 111 | 112 | return s 113 | 114 | 115 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/flame.csv: -------------------------------------------------------------------------------- 1 | 1.85,27.8 2 | 1.35,26.65 3 | 1.4,23.25 4 | 0.85,23.05 5 | 0.85,22.35 6 | 0.65,21.35 7 | 1.1,22.05 8 | 1.35,22.65 9 | 1.95,22.8 10 | 2.4,22.45 11 | 1.8,22 12 | 2.5,21.85 13 | 2.95,21.4 14 | 1.9,21.25 15 | 1.35,21.45 16 | 1.35,20.9 17 | 1.25,20.35 18 | 1.75,20.05 19 | 2,20.6 20 | 2.5,21 21 | 1.7,19.05 22 | 2.4,20.05 23 | 3.05,20.45 24 | 3.7,20.45 25 | 3.45,19.9 26 | 2.95,19.5 27 | 2.4,19.4 28 | 2.4,18.25 29 | 2.85,18.75 30 | 3.25,19.05 31 | 3.95,19.6 32 | 2.7,17.8 33 | 3.45,18.05 34 | 3.8,18.55 35 | 4,19.1 36 | 4.45,19.9 37 | 4.65,19.15 38 | 4.85,18.45 39 | 4.3,18.05 40 | 3.35,17.3 41 | 3.7,16.3 42 | 4.4,16.95 43 | 4.25,17.4 44 | 4.8,17.65 45 | 5.25,18.25 46 | 5.75,18.55 47 | 5.3,19.25 48 | 6.05,19.55 49 | 6.5,18.9 50 | 6.05,18.2 51 | 5.6,17.8 52 | 5.45,17.15 53 | 5.05,16.55 54 | 4.55,16.05 55 | 4.95,15.45 56 | 5.85,14.8 57 | 5.6,15.3 58 | 5.65,16 59 | 5.95,16.8 60 | 6.25,16.4 61 | 6.1,17.45 62 | 6.6,17.65 63 | 6.65,18.3 64 | 7.3,18.35 65 | 7.85,18.3 66 | 7.15,17.8 67 | 7.6,17.7 68 | 6.7,17.25 69 | 7.3,17.25 70 | 6.7,16.8 71 | 7.3,16.65 72 | 6.75,16.3 73 | 7.4,16.2 74 | 6.55,15.75 75 | 7.35,15.8 76 | 6.8,14.95 77 | 7.45,15.1 78 | 6.85,14.45 79 | 7.6,14.6 80 | 8.55,14.65 81 | 8.2,15.5 82 | 7.9,16.1 83 | 8.05,16.5 84 | 7.8,17 85 | 8,17.45 86 | 8.4,18.1 87 | 8.65,17.75 88 | 8.9,17.1 89 | 8.4,17.1 90 | 8.65,16.65 91 | 8.45,16.05 92 | 8.85,15.35 93 | 9.6,15.3 94 | 9.15,16 95 | 10.2,16 96 | 9.5,16.65 97 | 10.75,16.6 98 | 10.45,17.2 99 | 9.85,17.1 100 | 9.4,17.6 101 | 10.15,17.7 102 | 9.85,18.15 103 | 9.05,18.25 104 | 9.3,18.7 105 | 9.15,19.15 106 | 8.5,18.8 107 | 11.65,17.45 108 | 11.1,17.65 109 | 10.4,18.25 110 | 10,18.95 111 | 11.95,18.25 112 | 11.25,18.4 113 | 10.6,18.9 114 | 11.15,19 115 | 11.9,18.85 116 | 12.6,18.9 117 | 11.8,19.45 118 | 11.05,19.45 119 | 10.3,19.4 120 | 9.9,19.75 121 | 10.45,20 122 | 13.05,19.9 123 | 12.5,19.75 124 | 11.9,20.05 125 | 11.2,20.25 126 | 10.85,20.85 127 | 11.4,21.25 128 | 11.7,20.6 129 | 12.3,20.45 130 | 12.95,20.55 131 | 12.55,20.95 132 | 12.05,21.25 133 | 11.75,22.1 134 | 12.25,21.85 135 | 12.8,21.5 136 | 13.55,21 137 | 13.6,21.6 138 | 12.95,22 139 | 12.5,22.25 140 | 12.2,22.85 141 | 12.7,23.35 142 | 13,22.7 143 | 13.55,22.2 144 | 14.05,22.25 145 | 14.2,23.05 146 | 14.1,23.6 147 | 13.5,22.8 148 | 13.35,23.5 149 | 13.3,24 150 | 7.3,19.15 151 | 7.95,19.35 152 | 7.7,20.05 153 | 6.75,19.9 154 | 5.25,20.35 155 | 6.15,20.7 156 | 7,20.7 157 | 7.6,21.2 158 | 8.55,20.6 159 | 9.35,20.5 160 | 8.3,21.45 161 | 7.9,21.6 162 | 7.15,21.75 163 | 6.7,21.3 164 | 5.2,21.1 165 | 6.2,21.95 166 | 6.75,22.4 167 | 6.15,22.5 168 | 5.65,22.2 169 | 4.65,22.55 170 | 4.1,23.45 171 | 5.35,22.8 172 | 7.4,22.6 173 | 7.75,22.1 174 | 8.5,22.3 175 | 9.3,22 176 | 9.7,22.95 177 | 8.8,22.95 178 | 8.05,22.9 179 | 7.6,23.15 180 | 6.85,23 181 | 6.2,23.25 182 | 5.7,23.4 183 | 5.1,23.55 184 | 4.55,24.15 185 | 5.5,24 186 | 6.1,24.05 187 | 6.5,23.6 188 | 6.75,23.95 189 | 7.3,23.75 190 | 8.3,23.4 191 | 8.9,23.7 192 | 9.55,23.65 193 | 10.35,24.1 194 | 7.95,24.05 195 | 3.95,24.4 196 | 3.75,25.25 197 | 3.9,25.95 198 | 4.55,26.65 199 | 5.25,26.75 200 | 6.5,27.6 201 | 7.45,27.6 202 | 8.35,27.35 203 | 9.25,27.2 204 | 9.95,26.5 205 | 10.55,25.6 206 | 9.9,24.95 207 | 9.2,24.5 208 | 8.55,24.2 209 | 8.8,24.8 210 | 9.2,25.35 211 | 9.55,26.05 212 | 9.05,26.6 213 | 8.8,25.8 214 | 8.15,26.35 215 | 8.05,25.8 216 | 8.35,25.2 217 | 7.9,25.3 218 | 8.05,24.7 219 | 7.3,24.4 220 | 7.55,24.85 221 | 6.85,24.45 222 | 6.25,24.65 223 | 5.55,24.5 224 | 4.65,25.1 225 | 5,25.55 226 | 5.55,26.1 227 | 5.55,25.25 228 | 6.2,25.2 229 | 6.8,25.05 230 | 7.4,25.25 231 | 6.65,25.45 232 | 6.15,25.8 233 | 6.5,26.1 234 | 6.6,26.6 235 | 7.7,26.65 236 | 7.5,26.2 237 | 7.5,25.65 238 | 7.05,25.85 239 | 6.9,27.15 240 | 6.15,26.9 241 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/vary-density.csv: -------------------------------------------------------------------------------- 1 | 0.1093931,0.085409446 2 | 0.082570566,0.101796435 3 | 0.084989806,0.113641224 4 | 0.114611142,0.115524023 5 | 0.097355961,0.095484038 6 | 0.086612015,0.113083766 7 | 0.107348129,0.110213308 8 | 0.078010817,0.068104541 9 | 0.102779734,0.116474341 10 | 0.073398044,0.107833552 11 | 0.113254528,0.104046639 12 | 0.127327839,0.108364966 13 | 0.105341478,0.131100549 14 | 0.068981274,0.063469458 15 | 0.1041452,0.10185868 16 | 0.094827029,0.106030721 17 | 0.105903851,0.146711709 18 | 0.091454867,0.084459998 19 | 0.135831139,0.094580959 20 | 0.115556797,0.136819383 21 | 0.120316397,0.113575042 22 | 0.110254391,0.103031781 23 | 0.126548292,0.127073676 24 | 0.126758521,0.088271418 25 | 0.088858981,0.095501163 26 | 0.150494054,0.089533941 27 | 0.109407051,0.106296697 28 | 0.104958139,0.11538212 29 | 0.077574478,0.072658985 30 | 0.1238253,0.049169991 31 | 0.102339177,0.118590052 32 | 0.116786731,0.096359265 33 | 0.105300112,0.061717761 34 | 0.094836535,0.105808838 35 | 0.103501301,0.080339828 36 | 0.105084853,0.098509994 37 | 0.10381351,0.093875521 38 | 0.083176955,0.110537064 39 | 0.078113253,0.088551326 40 | 0.119516062,0.114749724 41 | 0.107477851,0.080705224 42 | 0.053139003,0.093735159 43 | 0.112548503,0.089803221 44 | 0.094127307,0.082720662 45 | 0.085774994,0.09550518 46 | 0.11583225,0.113615049 47 | 0.079114347,0.086813132 48 | 0.123271403,0.120873703 49 | 0.085948532,0.099434513 50 | 0.139028601,0.039896535 51 | 0.127087995,0.2644155 52 | 0.479332468,0.258719316 53 | 0.445882193,0.277166007 54 | 0.342291596,0.210284907 55 | 0.340463748,0.441473805 56 | 0.302419139,0.238685792 57 | 0.347795225,0.312862655 58 | 0.213821357,0.237829652 59 | 0.350283644,0.204614984 60 | 0.287464939,0.267898408 61 | 0.378442875,0.296807479 62 | 0.250022739,0.26008905 63 | 0.331501718,0.163711872 64 | 0.257840278,0.30091821 65 | 0.372647876,0.253723889 66 | 0.383783967,0.339572647 67 | 0.242498209,0.409212194 68 | 0.220002451,0.346993228 69 | 0.173413464,0.402006429 70 | 0.349910409,0.293248444 71 | 0.193959977,0.17076656 72 | 0.185204939,0.270341232 73 | 0.256365058,0.237150022 74 | 0.336051959,0.260891023 75 | 0.359896515,0.279336463 76 | 0.167478571,0.180803959 77 | 0.297143676,0.178588111 78 | 0.426508621,0.257011211 79 | 0.212044101,0.155355207 80 | 0.3466205,0.300861487 81 | 0.303606763,0.178304658 82 | 0.392439981,0.256019777 83 | 0.254962661,0.2819239 84 | 0.12032359,0.222774314 85 | 0.182660641,0.321704448 86 | 0.373894952,0.363795088 87 | 0.303298321,0.204774638 88 | 0.248545787,0.228126516 89 | 0.261623667,0.281503114 90 | 0.31671405,0.233741524 91 | 0.207198383,0.28596983 92 | 0.331330432,0.360244755 93 | 0.317887347,0.392981304 94 | 0.280037322,0.392319023 95 | 0.294833567,0.372058171 96 | 0.282193119,0.205885442 97 | 0.164546849,0.240581182 98 | 0.47732425,0.256845583 99 | 0.377098962,0.416290803 100 | 0.414100701,0.130985871 101 | 0.700301745,0.728749022 102 | 0.626625535,0.614599868 103 | 0.701905182,0.512479549 104 | 0.594476466,0.661916666 105 | 0.703032916,0.55855533 106 | 0.648108756,0.801768649 107 | 0.685612316,0.667101978 108 | 0.564355641,0.897212901 109 | 0.620463808,0.499506542 110 | 0.653275315,0.683324746 111 | 0.67372489,0.440757513 112 | 0.795077951,0.703514154 113 | 0.474634593,0.723298154 114 | 0.557473226,0.835798923 115 | 0.401445441,0.985238819 116 | 0.650677268,0.72248987 117 | 0.866939371,0.450866378 118 | 0.748369288,0.76916423 119 | 0.841385512,0.85421082 120 | 0.614884957,0.766531772 121 | 0.731829459,0.564803271 122 | 0.591650546,0.722116621 123 | 0.724875604,0.578696866 124 | 0.705697712,0.519359341 125 | 0.659983637,0.728489685 126 | 0.6193956,0.833555402 127 | 0.413449368,0.603513988 128 | 0.713945949,0.691450227 129 | 0.969061143,0.750529976 130 | 0.692363898,0.449138821 131 | 0.67667683,0.722233026 132 | 0.726314379,0.528950459 133 | 0.839220221,0.620361864 134 | 0.370716025,0.527567584 135 | 0.840850165,0.572334662 136 | 0.954387381,0.898146227 137 | 0.817547419,0.720828263 138 | 0.335236053,0.808199637 139 | 0.820689965,0.8033239 140 | 0.653253027,0.531782855 141 | 0.602942922,0.592257183 142 | 0.679317136,0.62991783 143 | 0.543659002,0.616530004 144 | 0.641940063,0.362562233 145 | 0.608730672,0.683028405 146 | 0.811962969,0.668020809 147 | 0.450739069,0.631139163 148 | 0.690514116,0.732280584 149 | 0.802582663,0.472106031 150 | 0.561665729,0.677209774 151 | -------------------------------------------------------------------------------- /EvoCluster/optimizers/CBAT.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu May 26 02:00:55 2016 4 | 5 | @author: hossam 6 | """ 7 | import math 8 | import numpy 9 | import random 10 | import time 11 | from .._solution import solution 12 | 13 | 14 | def BAT(objf,lb,ub,dim,N,Max_iteration, k, points, metric): 15 | 16 | n=N; # Population size 17 | #lb=-50 18 | #ub=50 19 | 20 | N_gen=Max_iteration # Number of generations 21 | 22 | A=0.5; # Loudness (constant or decreasing) 23 | r=0.5; # Pulse rate (constant or decreasing) 24 | 25 | Qmin=0 # Frequency minimum 26 | Qmax=2 # Frequency maximum 27 | 28 | 29 | d=dim # Number of dimensions 30 | 31 | # Initializing arrays 32 | Q=numpy.zeros(n) # Frequency 33 | v=numpy.zeros((n,d)) # Velocities 34 | Convergence_curve=[]; 35 | 36 | # Initialize the population/solutions 37 | Sol=numpy.random.rand(n,d)*(ub-lb)+lb 38 | labelsPred=numpy.zeros((n,len(points))) 39 | Fitness=numpy.zeros(n) 40 | 41 | S=numpy.zeros((n,d)) 42 | S=numpy.copy(Sol) 43 | 44 | 45 | # initialize solution for the final results 46 | s=solution() 47 | print("BAT is optimizing \""+objf.__name__+"\"") 48 | 49 | # Initialize timer for the experiment 50 | timerStart=time.time() 51 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 52 | 53 | #Evaluate initial random solutions 54 | for i in range(0,n): 55 | startpts = numpy.reshape(Sol[i,:], (k,(int)(dim/k))) 56 | if objf.__name__ == 'SSE' or objf.__name__ == 'SC' or objf.__name__ == 'DI': 57 | fitnessValue, labelsPredValues=objf(startpts, points, k, metric) 58 | else: 59 | fitnessValue, labelsPredValues=objf(startpts, points, k) 60 | Fitness[i] = fitnessValue 61 | labelsPred[i,:] = labelsPredValues 62 | 63 | 64 | # Find the initial best solution 65 | fmin = min(Fitness) 66 | I=numpy.argmin(Fitness) 67 | best=Sol[I,:] 68 | bestLabelsPred=labelsPred[I,:] 69 | 70 | # Main loop 71 | for t in range (0,N_gen): 72 | 73 | # Loop over all bats(solutions) 74 | for i in range (0,n): 75 | Q[i]=Qmin+(Qmin-Qmax)*random.random() 76 | v[i,:]=v[i,:]+(Sol[i,:]-best)*Q[i] 77 | S[i,:]=Sol[i,:]+v[i,:] 78 | 79 | # Check boundaries 80 | Sol=numpy.clip(Sol,lb,ub) 81 | 82 | 83 | # Pulse rate 84 | if random.random()>r: 85 | S[i,:]=best+0.001*numpy.random.randn(d) 86 | 87 | 88 | # Evaluate new solutions 89 | startpts = numpy.reshape(S[i,:], (k,(int)(dim/k))) 90 | 91 | if objf.__name__ == 'SSE' or objf.__name__ == 'SC' or objf.__name__ == 'DI': 92 | fitnessValue, labelsPredValues=objf(startpts, points, k, metric) 93 | else: 94 | fitnessValue, labelsPredValues=objf(startpts, points, k) 95 | 96 | Fnew = fitnessValue 97 | LabelsPrednew = labelsPredValues 98 | 99 | # Update if the solution improves 100 | if ((Fnew != numpy.inf) and (Fnew<=Fitness[i]) and (random.random()Lighto[j]: # Brighter and more attractive 128 | beta0=1 129 | beta=(beta0-betamin)*math.exp(-gamma*r**2)+betamin 130 | tmpf=alpha*(numpy.random.rand(dim)-0.5)*scale 131 | ns[i,:]=ns[i,:]*(1-beta)+nso[j,:]*beta+tmpf 132 | 133 | 134 | #ns=numpy.clip(ns, lb, ub) 135 | 136 | convergence.append(fbest) 137 | 138 | if (Iteration%1==0): 139 | print(['At iteration '+ str(Iteration)+ ' the best fitness is '+ str(fbest)]) 140 | # 141 | ####################### End main loop 142 | timerEnd=time.time() 143 | s.endTime=time.strftime("%Y-%m-%d-%H-%M-%S") 144 | s.executionTime=timerEnd-timerStart 145 | s.convergence=convergence 146 | s.optimizer="FFA" 147 | s.objfname=objf.__name__ 148 | s.labelsPred = numpy.array(labelsPredBest, dtype=numpy.int64) 149 | s.bestIndividual = nbest 150 | 151 | return s 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /EvoCluster/optimizers/CCS.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Tue May 24 13:13:28 2016 4 | 5 | @author: Hossam Faris 6 | """ 7 | import math 8 | import numpy 9 | import random 10 | import time 11 | from .._solution import solution 12 | 13 | 14 | 15 | def get_cuckoos(nest,best,lb,ub,n,dim): 16 | 17 | # perform Levy flights 18 | tempnest=numpy.zeros((n,dim)) 19 | tempnest=numpy.array(nest) 20 | beta=3/2; 21 | sigma=(math.gamma(1+beta)*math.sin(math.pi*beta/2)/(math.gamma((1+beta)/2)*beta*2**((beta-1)/2)))**(1/beta); 22 | 23 | s=numpy.zeros(dim) 24 | for j in range (0,n): 25 | s=nest[j,:] 26 | u=numpy.random.randn(len(s))*sigma 27 | v=numpy.random.randn(len(s)) 28 | step=u/abs(v)**(1/beta) 29 | 30 | stepsize=0.01*(step*(s-best)) 31 | 32 | s=s+stepsize*numpy.random.randn(len(s)) 33 | 34 | tempnest[j,:]=numpy.clip(s, lb, ub) 35 | 36 | return tempnest 37 | 38 | def get_best_nest(nest,labelsPred, newnest,fitness,n,dim,objf, k, points, metric): 39 | # Evaluating all new solutions 40 | tempnest=numpy.zeros((n,dim)) 41 | tempnest=numpy.copy(nest) 42 | templabels=numpy.copy(labelsPred) 43 | 44 | for j in range(0,n): 45 | #for j=1:size(nest,1), 46 | startpts = numpy.reshape(newnest[j,:], (k,(int)(dim/k))) 47 | if objf.__name__ == 'SSE' or objf.__name__ == 'SC' or objf.__name__ == 'DI': 48 | fitnessValue, labelsPredValues=objf(startpts, points, k, metric) 49 | else: 50 | fitnessValue, labelsPredValues=objf(startpts, points, k) 51 | fnew= fitnessValue 52 | newLabels = labelsPredValues 53 | 54 | if fnew<=fitness[j]: 55 | fitness[j]=fnew 56 | tempnest[j,:]=newnest[j,:] 57 | templabels[j,:]=newLabels 58 | 59 | # Find the current best 60 | 61 | fmin = min(fitness) 62 | I=numpy.argmin(fitness) 63 | bestlocal=tempnest[I,:] 64 | bestlabels=templabels[I,:] 65 | 66 | return fmin,bestlocal,bestlabels,tempnest,fitness, templabels 67 | 68 | # Replace some nests by constructing new solutions/nests 69 | def empty_nests(nest,pa,n,dim): 70 | 71 | # Discovered or not 72 | tempnest=numpy.zeros((n,dim)) 73 | 74 | K=numpy.random.uniform(0,1,(n,dim))>pa 75 | 76 | 77 | stepsize=random.random()*(nest[numpy.random.permutation(n),:]-nest[numpy.random.permutation(n),:]) 78 | 79 | 80 | tempnest=nest+stepsize*K 81 | 82 | return tempnest 83 | ########################################################################## 84 | 85 | 86 | def CS(objf,lb,ub,dim,n,N_IterTotal,k,points, metric): 87 | 88 | #lb=-1 89 | #ub=1 90 | #n=50 91 | #N_IterTotal=1000 92 | #dim=30 93 | 94 | # Discovery rate of alien eggs/solutions 95 | pa=0.25 96 | 97 | 98 | # Lb=[lb]*nd 99 | # Ub=[ub]*nd 100 | convergence=[] 101 | 102 | # RInitialize nests randomely 103 | nest=numpy.random.rand(n,dim)*(ub-lb)+lb 104 | labelsPred = numpy.zeros((n,len(points))) 105 | 106 | new_nest=numpy.zeros((n,dim)) 107 | new_nest=numpy.copy(nest) 108 | 109 | bestnest=[0]*dim; 110 | bestLabelsPred=[0]*len(points); 111 | 112 | fitness=numpy.zeros(n) 113 | fitness.fill(float("inf")) 114 | 115 | 116 | s=solution() 117 | 118 | 119 | print("CS is optimizing \""+objf.__name__+"\"") 120 | 121 | timerStart=time.time() 122 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 123 | 124 | fmin,bestnest,bestlabels,nest,fitness,labelsPred =get_best_nest(nest,labelsPred,new_nest,fitness,n,dim,objf,k,points, metric) 125 | convergence = []; 126 | # Main loop counter 127 | for iter in range (0,N_IterTotal): 128 | # Generate new solutions (but keep the current best) 129 | 130 | new_nest=get_cuckoos(nest,bestnest,lb,ub,n,dim) 131 | 132 | 133 | # Evaluate new solutions and find best 134 | fnew,best,bestlabels,nest,fitness,labelsPred=get_best_nest(nest,labelsPred,new_nest,fitness,n,dim,objf,k,points, metric) 135 | 136 | 137 | new_nest=empty_nests(new_nest,pa,n,dim) ; 138 | 139 | 140 | # Evaluate new solutions and find best 141 | fnew,best,bestlabels,nest,fitness,labelsPred=get_best_nest(nest,labelsPred,new_nest,fitness,n,dim,objf,k,points, metric) 142 | 143 | if fnew for maximization problem 74 | Leader_score=fitness; # Update alpha 75 | Leader_pos=Positions[i,:].copy() # copy current whale position into the leader position 76 | Leader_labels=labelsPred[i,:].copy() # copy current whale position into the leader position 77 | 78 | 79 | 80 | 81 | a=2-t*((2)/Max_iter); # a decreases linearly fron 2 to 0 in Eq. (2.3) 82 | 83 | # a2 linearly decreases from -1 to -2 to calculate t in Eq. (3.12) 84 | a2=-1+t*((-1)/Max_iter); 85 | 86 | # Update the Position of search agents 87 | for i in range(0,SearchAgents_no): 88 | r1=random.random() # r1 is a random number in [0,1] 89 | r2=random.random() # r2 is a random number in [0,1] 90 | 91 | A=2*a*r1-a # Eq. (2.3) in the paper 92 | C=2*r2 # Eq. (2.4) in the paper 93 | 94 | 95 | b=1; # parameters in Eq. (2.5) 96 | l=(a2-1)*random.random()+1 # parameters in Eq. (2.5) 97 | 98 | p = random.random() # p in Eq. (2.6) 99 | 100 | for j in range(0,dim): 101 | 102 | if p<0.5: 103 | if abs(A)>=1: 104 | rand_leader_index = math.floor(SearchAgents_no*random.random()); 105 | X_rand = Positions[rand_leader_index, :] 106 | D_X_rand=abs(C*X_rand[j]-Positions[i,j]) 107 | Positions[i,j]=X_rand[j]-A*D_X_rand 108 | 109 | elif abs(A)<1: 110 | D_Leader=abs(C*Leader_pos[j]-Positions[i,j]) 111 | Positions[i,j]=Leader_pos[j]-A*D_Leader 112 | 113 | 114 | elif p>=0.5: 115 | 116 | distance2Leader=abs(Leader_pos[j]-Positions[i,j]) 117 | # Eq. (2.5) 118 | Positions[i,j]=distance2Leader*math.exp(b*l)*math.cos(l*2*math.pi)+Leader_pos[j] 119 | 120 | 121 | 122 | convergence_curve[t]=Leader_score 123 | if (t%1==0): 124 | print(['At iteration '+ str(t)+ ' the best fitness is '+ str(Leader_score)]); 125 | t=t+1 126 | 127 | timerEnd=time.time() 128 | s.endTime=time.strftime("%Y-%m-%d-%H-%M-%S") 129 | s.executionTime=timerEnd-timerStart 130 | s.convergence=convergence_curve 131 | s.optimizer="WOA" 132 | s.objfname=objf.__name__ 133 | s.best = Leader_score 134 | s.bestIndividual = Leader_pos 135 | s.labelsPred = numpy.array(Leader_labels, dtype=numpy.int64) 136 | 137 | 138 | 139 | return s 140 | 141 | 142 | -------------------------------------------------------------------------------- /EvoCluster/optimizers/CSSA.py: -------------------------------------------------------------------------------- 1 | import random 2 | import numpy 3 | import math 4 | from .._solution import solution 5 | 6 | from time import sleep 7 | import time 8 | import sys 9 | 10 | 11 | def SSA(objf,lb,ub,dim,N,Max_iteration, k, points, metric): 12 | 13 | #Max_iteration=1000 14 | #lb=-100 15 | #ub=100 16 | #dim=30 17 | #N=50 # Number of search agents 18 | 19 | Convergence_curve=numpy.zeros(Max_iteration) 20 | 21 | 22 | #Initialize the positions of salps 23 | SalpPositions=numpy.random.uniform(0,1,(N,dim)) *(ub-lb)+lb 24 | SalpFitness=numpy.full(N,float("inf")) 25 | SalpLabelsPred=numpy.full((N,len(points)), numpy.inf) 26 | 27 | FoodPosition=numpy.zeros(dim) 28 | FoodFitness=float("inf") 29 | FoodLabelsPred=numpy.full(len(points), numpy.inf) 30 | #Moth_fitness=numpy.fell(float("inf")) 31 | 32 | s=solution() 33 | 34 | print("SSA is optimizing \""+objf.__name__+"\"") 35 | 36 | timerStart=time.time() 37 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 38 | 39 | for i in range(0,N): 40 | # evaluate moths 41 | startpts = numpy.reshape(SalpPositions[i,:], (k,(int)(dim/k))) 42 | 43 | if objf.__name__ == 'SSE' or objf.__name__ == 'SC' or objf.__name__ == 'DI': 44 | fitness, labelsPred=objf(startpts, points, k, metric) 45 | else: 46 | fitness, labelsPred=objf(startpts, points, k) 47 | SalpFitness[i] = fitness 48 | SalpLabelsPred[i,:] = labelsPred 49 | 50 | sorted_salps_fitness=numpy.sort(SalpFitness) 51 | I=numpy.argsort(SalpFitness) 52 | 53 | Sorted_salps=numpy.copy(SalpPositions[I,:]) 54 | Sorted_LabelsPred=numpy.copy(SalpLabelsPred[I,:]) 55 | 56 | 57 | FoodPosition=numpy.copy(Sorted_salps[0,:]) 58 | FoodFitness=sorted_salps_fitness[0] 59 | FoodLabelsPred=Sorted_LabelsPred[0] 60 | ''' 61 | Convergence_curve[0]=FoodFitness 62 | print(['At iteration 0 the best fitness is '+ str(FoodFitness)]) 63 | ''' 64 | Iteration=1; 65 | 66 | # Main loop 67 | while (Iteration=N/2 and iAlpha_score and fitnessAlpha_score and fitness>Beta_score and fitness p): 49 | chosen_index = index; 50 | break; 51 | 52 | choice = chosen_index; 53 | 54 | return choice 55 | 56 | 57 | 58 | def MVO(objf,lb,ub,dim,N,Max_time, k, points, metric): 59 | 60 | "parameters" 61 | #dim=30 62 | #lb=-100 63 | #ub=100 64 | WEP_Max=1; 65 | WEP_Min=0.2 66 | #Max_time=1000 67 | #N=50 68 | 69 | Universes=numpy.random.uniform(0,1,(N,dim)) *(ub-lb)+lb 70 | 71 | Sorted_universes=numpy.copy(Universes) 72 | 73 | labelsPred=numpy.zeros((N,len(points))) 74 | Sorted_labels=numpy.copy(labelsPred) 75 | 76 | convergence=numpy.zeros(Max_time) 77 | 78 | 79 | Best_universe=[0]*dim; 80 | Best_universe_Inflation_rate= float("inf") 81 | labelsPredBest=numpy.zeros(len(points)) 82 | 83 | 84 | 85 | 86 | s=solution() 87 | 88 | 89 | Time=1; 90 | ############################################ 91 | print("MVO is optimizing \""+objf.__name__+"\"") 92 | 93 | timerStart=time.time() 94 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 95 | while (Time0.5: 163 | Universes[i,j]=Best_universe[j]-TDR*((ub-lb)*random.random()+lb) #random.uniform(0,1)+lb); 164 | 165 | 166 | 167 | 168 | 169 | convergence[Time-1]=Best_universe_Inflation_rate 170 | if (Time%1==0): 171 | print(['At iteration '+ str(Time)+ ' the best fitness is '+ str(Best_universe_Inflation_rate)]); 172 | 173 | 174 | 175 | 176 | Time=Time+1 177 | timerEnd=time.time() 178 | s.endTime=time.strftime("%Y-%m-%d-%H-%M-%S") 179 | s.executionTime=timerEnd-timerStart 180 | s.convergence=convergence 181 | s.optimizer="MVO" 182 | s.objfname=objf.__name__ 183 | s.bestIndividual = Best_universe 184 | s.labelsPred = numpy.array(labelsPredBest, dtype=numpy.int64) 185 | 186 | return s 187 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | EvoCluster-logo 3 |
4 | 5 | # An Open-Source Nature-Inspired Optimization Clustering Framework in Python 6 | ## Description ## 7 | 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/). 8 | 9 | ## Versions ## 10 | - 1.0.5 11 | 12 | ## Supporting links 13 | - **Web Page**: http://evo-ml.com/evocluster/ 14 | - **Paper**: https://link.springer.com/chapter/10.1007/978-3-030-43722-0_2 15 | - **Extended Paper**: https://link.springer.com/article/10.1007/s42979-021-00511-0 16 | - **Introduction video**: https://www.youtube.com/watch?v=3DYIdxILZaw 17 | - **Demo video**: https://www.youtube.com/watch?v=TOIo9WMBWUc 18 | - **Source code**: https://github.com/RaneemQaddoura/EvoCluster/ 19 | - **Bug reports**: https://github.com/RaneemQaddoura/EvoCluster/issues 20 | 21 | ## Features 22 | - Ten nature-inspired metaheuristic optimizers are implemented (SSA, PSO, GA, BAT, FFA, GWO, WOA, MVO, MFO, and CS). 23 | - Five objective functions (SSE, TWCV, SC, DB, and DI). 24 | - Thirty datasets obtained from Scikit learn, UCI, School of Computing at University of Eastern Finland, ELKI, KEEL, and Naftali Harris Blog 25 | - Twelve evaluation measures (SSE, Purity, Entropy, HS, CS, VM, AMI, ARI, Fmeasure, TWCV, SC, Accuracy, DI, DB, and Standard Diviation) 26 | - More than twenty distance measures 27 | - Ten different ways for detecting the k value 28 | - The implimentation uses the fast array manipulation using [`NumPy`] (http://www.numpy.org/). 29 | - Matrix support using [`SciPy`'s] (https://www.scipy.org/) package. 30 | - Simple and efficient tools for prediction using [`sklearn`] (https://scikit-learn.org/stable/) 31 | - File data analysis and manipulation tool using [`pandas`] (https://pandas.pydata.org/) 32 | - Plot interactive visualizations using [`matplotlib`] (https://matplotlib.org/) 33 | - More optimizers, objective functions, adatasets, and evaluation measures are comming soon. 34 | 35 | ## Installation 36 | EvoCluster supports Python 3.xx. 37 | 38 | ### With pip 39 | EvoCluster can be installed using pip as follows: 40 | 41 | ```bash 42 | pip install EvoCluster 43 | ``` 44 | ### With conda 45 | EvoCluster can be installed using conda as follows: 46 | 47 | ```shell script 48 | conda install EvoCluster 49 | ``` 50 | ### To install from master 51 | ``` 52 | pip install git+https://github.com/RaneemQaddoura/EvoCluster.git#egg=EvoCluster 53 | ``` 54 | ### Get the source 55 | 56 | Clone the Git repository from GitHub 57 | ```bash 58 | git clone https://github.com/RaneemQaddoura/EvoCluster.git 59 | ``` 60 | 61 | ## Quick tour 62 | 63 | To immediately use a EvoCluster. Here is how to quickly use EvoCluster to predict clusters: 64 | 65 | ```python 66 | from EvoCluster import EvoCluster 67 | 68 | optimizer = ["SSA", "PSO", "GA", "GWO"] #Select optimizers from the list of available ones: "SSA","PSO","GA","BAT","FFA","GWO","WOA","MVO","MFO","CS". 69 | objective_func = ["SSE", "TWCV"] #Select objective function from the list of available ones:"SSE","TWCV","SC","DB","DI". 70 | dataset_list = ["iris", "aggregation"] #Select data sets from the list of available ones 71 | num_of_runs = 3 #Select number of repetitions for each experiment. 72 | params = {'PopulationSize': 30, 'Iterations': 50} #Select general parameters for all optimizers (population size, number of iterations) 73 | export_flags = {'Export_avg': True, 'Export_details': True, 'Export_details_labels': True, 74 | 'Export_convergence': True, 'Export_boxplot': True} #Choose your preferemces of exporting files 75 | 76 | ec = EvoCluster( 77 | optimizer, 78 | objective_func, 79 | dataset_list, 80 | num_of_runs, 81 | params, 82 | export_flags, 83 | auto_cluster=True, 84 | n_clusters='supervised', 85 | labels_exist=True, 86 | metric='euclidean' 87 | ) 88 | 89 | ec.run() #run the framework 90 | ``` 91 | Now your experiment is ready to go. Enjoy! 92 | 93 | 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: 94 | - experiment.csv 95 | - experiment_details.csv 96 | - experiment_details_Labels.csv 97 | - Convergence plot 98 | - Box plot 99 | 100 | ## Datasets 101 | 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). 102 | 103 | To add new dataset: 104 | - Put your dataset in a csv format (No header is required, labels are at the last column) 105 | - Place the new datset files in the datasets folder. 106 | - Add the dataset to the datasets list in the optimizer.py (Line 19). 107 | 108 | ## Citation Request: 109 | 110 | Please include these citations if you plan to use this Framework: 111 | 112 | - 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. 113 | 114 | - 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. 115 | 116 | - 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. 117 | 118 | -------------------------------------------------------------------------------- /EvoCluster/datasets/jain.csv: -------------------------------------------------------------------------------- 1 | 0.85,17.45,0 2 | 0.75,15.6,0 3 | 3.3,15.45,0 4 | 5.25,14.2,0 5 | 4.9,15.65,0 6 | 5.35,15.85,0 7 | 5.1,17.9,0 8 | 4.6,18.25,0 9 | 4.05,18.75,0 10 | 3.4,19.7,0 11 | 2.9,21.15,0 12 | 3.1,21.85,0 13 | 3.9,21.85,0 14 | 4.4,20.05,0 15 | 7.2,14.5,0 16 | 7.65,16.5,0 17 | 7.1,18.65,0 18 | 7.05,19.9,0 19 | 5.85,20.55,0 20 | 5.5,21.8,0 21 | 6.55,21.8,0 22 | 6.05,22.3,0 23 | 5.2,23.4,0 24 | 4.55,23.9,0 25 | 5.1,24.4,0 26 | 8.1,26.35,0 27 | 10.15,27.7,0 28 | 9.75,25.5,0 29 | 9.2,21.1,0 30 | 11.2,22.8,0 31 | 12.6,23.1,0 32 | 13.25,23.5,0 33 | 11.65,26.85,0 34 | 12.45,27.55,0 35 | 13.3,27.85,0 36 | 13.7,27.75,0 37 | 14.15,26.9,0 38 | 14.05,26.55,0 39 | 15.15,24.2,0 40 | 15.2,24.75,0 41 | 12.2,20.9,0 42 | 12.15,21.45,0 43 | 12.75,22.05,0 44 | 13.15,21.85,0 45 | 13.75,22,0 46 | 13.95,22.7,0 47 | 14.4,22.65,0 48 | 14.2,22.15,0 49 | 14.1,21.75,0 50 | 14.05,21.4,0 51 | 17.2,24.8,0 52 | 17.7,24.85,0 53 | 17.55,25.2,0 54 | 17,26.85,0 55 | 16.55,27.1,0 56 | 19.15,25.35,0 57 | 18.8,24.7,0 58 | 21.4,25.85,0 59 | 15.8,21.35,0 60 | 16.6,21.15,0 61 | 17.45,20.75,0 62 | 18,20.95,0 63 | 18.25,20.2,0 64 | 18,22.3,0 65 | 18.6,22.25,0 66 | 19.2,21.95,0 67 | 19.45,22.1,0 68 | 20.1,21.6,0 69 | 20.1,20.9,0 70 | 19.9,20.35,0 71 | 19.45,19.05,0 72 | 19.25,18.7,0 73 | 21.3,22.3,0 74 | 22.9,23.65,0 75 | 23.15,24.1,0 76 | 24.25,22.85,0 77 | 22.05,20.25,0 78 | 20.95,18.25,0 79 | 21.65,17.25,0 80 | 21.55,16.7,0 81 | 21.6,16.3,0 82 | 21.5,15.5,0 83 | 22.4,16.5,0 84 | 22.25,18.1,0 85 | 23.15,19.05,0 86 | 23.5,19.8,0 87 | 23.75,20.2,0 88 | 25.15,19.8,0 89 | 25.5,19.45,0 90 | 23,18,0 91 | 23.95,17.75,0 92 | 25.9,17.55,0 93 | 27.65,15.65,0 94 | 23.1,14.6,0 95 | 23.5,15.2,0 96 | 24.05,14.9,0 97 | 24.5,14.7,0 98 | 14.15,17.35,1 99 | 14.3,16.8,1 100 | 14.3,15.75,1 101 | 14.75,15.1,1 102 | 15.35,15.5,1 103 | 15.95,16.45,1 104 | 16.5,17.05,1 105 | 17.35,17.05,1 106 | 17.15,16.3,1 107 | 16.65,16.1,1 108 | 16.5,15.15,1 109 | 16.25,14.95,1 110 | 16,14.25,1 111 | 15.9,13.2,1 112 | 15.15,12.05,1 113 | 15.2,11.7,1 114 | 17,15.65,1 115 | 16.9,15.35,1 116 | 17.35,15.45,1 117 | 17.15,15.1,1 118 | 17.3,14.9,1 119 | 17.7,15,1 120 | 17,14.6,1 121 | 16.85,14.3,1 122 | 16.6,14.05,1 123 | 17.1,14,1 124 | 17.45,14.15,1 125 | 17.8,14.2,1 126 | 17.6,13.85,1 127 | 17.2,13.5,1 128 | 17.25,13.15,1 129 | 17.1,12.75,1 130 | 16.95,12.35,1 131 | 16.5,12.2,1 132 | 16.25,12.5,1 133 | 16.05,11.9,1 134 | 16.65,10.9,1 135 | 16.7,11.4,1 136 | 16.95,11.25,1 137 | 17.3,11.2,1 138 | 18.05,11.9,1 139 | 18.6,12.5,1 140 | 18.9,12.05,1 141 | 18.7,11.25,1 142 | 17.95,10.9,1 143 | 18.4,10.05,1 144 | 17.45,10.4,1 145 | 17.6,10.15,1 146 | 17.7,9.85,1 147 | 17.3,9.7,1 148 | 16.95,9.7,1 149 | 16.75,9.65,1 150 | 19.8,9.95,1 151 | 19.1,9.55,1 152 | 17.5,8.3,1 153 | 17.55,8.1,1 154 | 17.85,7.55,1 155 | 18.2,8.35,1 156 | 19.3,9.1,1 157 | 19.4,8.85,1 158 | 19.05,8.85,1 159 | 18.9,8.5,1 160 | 18.6,7.85,1 161 | 18.7,7.65,1 162 | 19.35,8.2,1 163 | 19.95,8.3,1 164 | 20,8.9,1 165 | 20.3,8.9,1 166 | 20.55,8.8,1 167 | 18.35,6.95,1 168 | 18.65,6.9,1 169 | 19.3,7,1 170 | 19.1,6.85,1 171 | 19.15,6.65,1 172 | 21.2,8.8,1 173 | 21.4,8.8,1 174 | 21.1,8,1 175 | 20.4,7,1 176 | 20.5,6.35,1 177 | 20.1,6.05,1 178 | 20.45,5.15,1 179 | 20.95,5.55,1 180 | 20.95,6.2,1 181 | 20.9,6.6,1 182 | 21.05,7,1 183 | 21.85,8.5,1 184 | 21.9,8.2,1 185 | 22.3,7.7,1 186 | 21.85,6.65,1 187 | 21.3,5.05,1 188 | 22.6,6.7,1 189 | 22.5,6.15,1 190 | 23.65,7.2,1 191 | 24.1,7,1 192 | 21.95,4.8,1 193 | 22.15,5.05,1 194 | 22.45,5.3,1 195 | 22.45,4.9,1 196 | 22.7,5.5,1 197 | 23,5.6,1 198 | 23.2,5.3,1 199 | 23.45,5.95,1 200 | 23.75,5.95,1 201 | 24.45,6.15,1 202 | 24.6,6.45,1 203 | 25.2,6.55,1 204 | 26.05,6.4,1 205 | 25.3,5.75,1 206 | 24.35,5.35,1 207 | 23.3,4.9,1 208 | 22.95,4.75,1 209 | 22.4,4.55,1 210 | 22.8,4.1,1 211 | 22.9,4,1 212 | 23.25,3.85,1 213 | 23.45,3.6,1 214 | 23.55,4.2,1 215 | 23.8,3.65,1 216 | 23.8,4.75,1 217 | 24.2,4,1 218 | 24.55,4,1 219 | 24.7,3.85,1 220 | 24.7,4.3,1 221 | 24.9,4.75,1 222 | 26.4,5.7,1 223 | 27.15,5.95,1 224 | 27.3,5.45,1 225 | 27.5,5.45,1 226 | 27.55,5.1,1 227 | 26.85,4.95,1 228 | 26.6,4.9,1 229 | 26.85,4.4,1 230 | 26.2,4.4,1 231 | 26,4.25,1 232 | 25.15,4.1,1 233 | 25.6,3.9,1 234 | 25.85,3.6,1 235 | 24.95,3.35,1 236 | 25.1,3.25,1 237 | 25.45,3.15,1 238 | 26.85,2.95,1 239 | 27.15,3.15,1 240 | 27.2,3,1 241 | 27.95,3.25,1 242 | 27.95,3.5,1 243 | 28.8,4.05,1 244 | 28.8,4.7,1 245 | 28.75,5.45,1 246 | 28.6,5.75,1 247 | 29.25,6.3,1 248 | 30,6.55,1 249 | 30.6,3.4,1 250 | 30.05,3.45,1 251 | 29.75,3.45,1 252 | 29.2,4,1 253 | 29.45,4.05,1 254 | 29.05,4.55,1 255 | 29.4,4.85,1 256 | 29.5,4.7,1 257 | 29.9,4.45,1 258 | 30.75,4.45,1 259 | 30.4,4.05,1 260 | 30.8,3.95,1 261 | 31.05,3.95,1 262 | 30.9,5.2,1 263 | 30.65,5.85,1 264 | 30.7,6.15,1 265 | 31.5,6.25,1 266 | 31.65,6.55,1 267 | 32,7,1 268 | 32.5,7.95,1 269 | 33.35,7.45,1 270 | 32.6,6.95,1 271 | 32.65,6.6,1 272 | 32.55,6.35,1 273 | 32.35,6.1,1 274 | 32.55,5.8,1 275 | 32.2,5.05,1 276 | 32.35,4.25,1 277 | 32.9,4.15,1 278 | 32.7,4.6,1 279 | 32.75,4.85,1 280 | 34.1,4.6,1 281 | 34.1,5,1 282 | 33.6,5.25,1 283 | 33.35,5.65,1 284 | 33.75,5.95,1 285 | 33.4,6.2,1 286 | 34.45,5.8,1 287 | 34.65,5.65,1 288 | 34.65,6.25,1 289 | 35.25,6.25,1 290 | 34.35,6.8,1 291 | 34.1,7.15,1 292 | 34.45,7.3,1 293 | 34.7,7.2,1 294 | 34.85,7,1 295 | 34.35,7.75,1 296 | 34.55,7.85,1 297 | 35.05,8,1 298 | 35.5,8.05,1 299 | 35.8,7.1,1 300 | 36.6,6.7,1 301 | 36.75,7.25,1 302 | 36.5,7.4,1 303 | 35.95,7.9,1 304 | 36.1,8.1,1 305 | 36.15,8.4,1 306 | 37.6,7.35,1 307 | 37.9,7.65,1 308 | 29.15,4.4,1 309 | 34.9,9,1 310 | 35.3,9.4,1 311 | 35.9,9.35,1 312 | 36,9.65,1 313 | 35.75,10,1 314 | 36.7,9.15,1 315 | 36.6,9.8,1 316 | 36.9,9.75,1 317 | 37.25,10.15,1 318 | 36.4,10.15,1 319 | 36.3,10.7,1 320 | 36.75,10.85,1 321 | 38.15,9.7,1 322 | 38.4,9.45,1 323 | 38.35,10.5,1 324 | 37.7,10.8,1 325 | 37.45,11.15,1 326 | 37.35,11.4,1 327 | 37,11.75,1 328 | 36.8,12.2,1 329 | 37.15,12.55,1 330 | 37.25,12.15,1 331 | 37.65,11.95,1 332 | 37.95,11.85,1 333 | 38.6,11.75,1 334 | 38.5,12.2,1 335 | 38,12.95,1 336 | 37.3,13,1 337 | 37.5,13.4,1 338 | 37.85,14.5,1 339 | 38.3,14.6,1 340 | 38.05,14.45,1 341 | 38.35,14.35,1 342 | 38.5,14.25,1 343 | 39.3,14.2,1 344 | 39,13.2,1 345 | 38.95,12.9,1 346 | 39.2,12.35,1 347 | 39.5,11.8,1 348 | 39.55,12.3,1 349 | 39.75,12.75,1 350 | 40.2,12.8,1 351 | 40.4,12.05,1 352 | 40.45,12.5,1 353 | 40.55,13.15,1 354 | 40.45,14.5,1 355 | 40.2,14.8,1 356 | 40.65,14.9,1 357 | 40.6,15.25,1 358 | 41.3,15.3,1 359 | 40.95,15.7,1 360 | 41.25,16.8,1 361 | 40.95,17.05,1 362 | 40.7,16.45,1 363 | 40.45,16.3,1 364 | 39.9,16.2,1 365 | 39.65,16.2,1 366 | 39.25,15.5,1 367 | 38.85,15.5,1 368 | 38.3,16.5,1 369 | 38.75,16.85,1 370 | 39,16.6,1 371 | 38.25,17.35,1 372 | 39.5,16.95,1 373 | 39.9,17.05,1 374 | -------------------------------------------------------------------------------- /EvoCluster/datasets/vary-density.csv: -------------------------------------------------------------------------------- 1 | 0.10939309992822593,0.08540944605400377,0 2 | 0.08257056589315302,0.10179643490510727,0 3 | 0.08498980564609883,0.11364122368069912,0 4 | 0.11461114193975777,0.11552402271516482,0 5 | 0.09735596050211873,0.09548403816561275,0 6 | 0.08661201543909372,0.11308376585550771,0 7 | 0.1073481288254181,0.11021330754420668,0 8 | 0.07801081730421248,0.06810454086466368,0 9 | 0.10277973436298088,0.11647434064820172,0 10 | 0.07339804391235821,0.1078335519818581,0 11 | 0.11325452752755462,0.10404663937378625,0 12 | 0.1273278386781513,0.10836496591740674,0 13 | 0.10534147759505744,0.13110054873722296,0 14 | 0.06898127393954798,0.06346945806802406,0 15 | 0.10414520023820327,0.10185867962316415,0 16 | 0.09482702879554915,0.10603072056048626,0 17 | 0.10590385064004555,0.14671170907858727,0 18 | 0.09145486727290403,0.08445999826012236,0 19 | 0.13583113939077163,0.09458095912800595,0 20 | 0.11555679696075509,0.1368193826144829,0 21 | 0.12031639663697646,0.11357504238950059,0 22 | 0.110254390968761,0.10303178145017239,0 23 | 0.12654829188201455,0.12707367632966104,0 24 | 0.12675852066043894,0.088271417847455,0 25 | 0.08885898147947054,0.09550116287467723,0 26 | 0.15049405364356278,0.08953394131575702,0 27 | 0.10940705122414521,0.10629669673796523,0 28 | 0.10495813908343334,0.11538212046779205,0 29 | 0.07757447841907014,0.07265898459659947,0 30 | 0.1238253003792682,0.0491699906104266,0 31 | 0.10233917685470978,0.1185900517163219,0 32 | 0.11678673146319728,0.09635926549296375,0 33 | 0.10530011246077302,0.061717760531780845,0 34 | 0.09483653517864192,0.1058088375459108,0 35 | 0.10350130132045579,0.08033982802613415,0 36 | 0.10508485279114937,0.09850999414140375,0 37 | 0.10381351018334607,0.09387552143108098,0 38 | 0.0831769550420346,0.11053706424409374,0 39 | 0.07811325253646423,0.08855132614271427,0 40 | 0.11951606167629983,0.11474972435750333,0 41 | 0.1074778514506865,0.08070522440311789,0 42 | 0.053139002741000294,0.0937351594239546,0 43 | 0.11254850299299388,0.08980322106650357,0 44 | 0.09412730741164194,0.08272066154536242,0 45 | 0.08577499351728525,0.09550518018085888,0 46 | 0.11583224975100394,0.11361504928528926,0 47 | 0.07911434718038962,0.08681313153487322,0 48 | 0.12327140272021234,0.12087370312417504,0 49 | 0.08594853245238993,0.09943451279479909,0 50 | 0.13902860076935275,0.03989653512602472,0 51 | 0.12708799464813766,0.2644155003737956,1 52 | 0.4793324677764971,0.25871931635376133,1 53 | 0.4458821928797788,0.27716600674225644,1 54 | 0.34229159591552366,0.21028490710419528,1 55 | 0.34046374847561617,0.4414738051955298,1 56 | 0.30241913939090614,0.2386857924647094,1 57 | 0.34779522491267634,0.3128626547470094,1 58 | 0.21382135719730513,0.23782965172812845,1 59 | 0.35028364402053597,0.20461498396465955,1 60 | 0.2874649391679298,0.2678984084750633,1 61 | 0.3784428745374063,0.29680747857287304,1 62 | 0.2500227391580536,0.2600890500314802,1 63 | 0.3315017176349687,0.1637118716744888,1 64 | 0.2578402775417402,0.3009182097276648,1 65 | 0.3726478760495913,0.25372388900487164,1 66 | 0.3837839669063111,0.33957264730450887,1 67 | 0.2424982091640392,0.40921219433890427,1 68 | 0.22000245069218735,0.3469932279937275,1 69 | 0.17341346365450688,0.4020064293379623,1 70 | 0.3499104092273302,0.2932484438016454,1 71 | 0.19395997666951975,0.17076655953621833,1 72 | 0.1852049387279591,0.27034123229110435,1 73 | 0.25636505807925986,0.23715002230663218,1 74 | 0.3360519588309022,0.26089102326011987,1 75 | 0.3598965154681066,0.27933646264854767,1 76 | 0.16747857120700604,0.18080395872256183,1 77 | 0.2971436755154356,0.1785881112740101,1 78 | 0.4265086206485411,0.2570112112049665,1 79 | 0.21204410133286045,0.15535520650558493,1 80 | 0.3466204995096275,0.30086148653689787,1 81 | 0.30360676277912846,0.17830465777753907,1 82 | 0.39243998141899017,0.25601977747402616,1 83 | 0.2549626614638548,0.2819239003513696,1 84 | 0.12032358975397317,0.22277431378265106,1 85 | 0.18266064110281321,0.32170444835583295,1 86 | 0.3738949523156657,0.3637950876808469,1 87 | 0.3032983212464313,0.20477463837282012,1 88 | 0.2485457866734928,0.22812651611627888,1 89 | 0.261623666531509,0.28150311427335756,1 90 | 0.3167140499426797,0.23374152395018663,1 91 | 0.20719838264252133,0.28596982999568676,1 92 | 0.33133043165510634,0.3602447552840026,1 93 | 0.3178873470609728,0.39298130360522,1 94 | 0.280037321638697,0.3923190227285356,1 95 | 0.29483356718246456,0.37205817081213605,1 96 | 0.28219311892194715,0.2058854424071217,1 97 | 0.16454684903417766,0.24058118193136807,1 98 | 0.47732425015642344,0.2568455828077422,1 99 | 0.3770989616628725,0.41629080310451616,1 100 | 0.4141007008962817,0.1309858708471561,1 101 | 0.7003017451433199,0.7287490220107232,2 102 | 0.6266255352470994,0.6145998677182528,2 103 | 0.7019051822947007,0.5124795489342403,2 104 | 0.5944764664101421,0.6619166659886164,2 105 | 0.7030329164914035,0.558555330006555,2 106 | 0.6481087558379025,0.8017686485184234,2 107 | 0.6856123156334322,0.6671019783170389,2 108 | 0.5643556414487485,0.897212900996877,2 109 | 0.620463808389097,0.4995065419806039,2 110 | 0.6532753152288451,0.6833247457148309,2 111 | 0.6737248904523078,0.4407575134246889,2 112 | 0.7950779507705004,0.7035141539438474,2 113 | 0.47463459287615595,0.7232981542796941,2 114 | 0.5574732261595691,0.8357989225165923,2 115 | 0.4014454414881494,0.9852388193291626,2 116 | 0.6506772676018544,0.7224898701289548,2 117 | 0.8669393705509909,0.4508663778905317,2 118 | 0.7483692879885884,0.7691642297236924,2 119 | 0.8413855122739305,0.8542108203965888,2 120 | 0.6148849574228844,0.7665317715155546,2 121 | 0.7318294589052777,0.5648032707214102,2 122 | 0.5916505458903227,0.7221166207721841,2 123 | 0.7248756039872134,0.5786968660834495,2 124 | 0.705697712333666,0.5193593407084314,2 125 | 0.6599836373076424,0.7284896854713157,2 126 | 0.6193956001890452,0.8335554020802906,2 127 | 0.4134493683302134,0.6035139879486471,2 128 | 0.7139459491081279,0.6914502268766258,2 129 | 0.969061143223094,0.7505299756130679,2 130 | 0.6923638975286772,0.44913882122893567,2 131 | 0.6766768297278943,0.7222330262894585,2 132 | 0.7263143789986654,0.5289504585228786,2 133 | 0.8392202208833831,0.6203618639023891,2 134 | 0.37071602481418825,0.5275675841610348,2 135 | 0.8408501654826845,0.5723346620908862,2 136 | 0.9543873814037929,0.8981462265707956,2 137 | 0.8175474187676226,0.720828263491731,2 138 | 0.3352360532055249,0.8081996365974959,2 139 | 0.820689965102394,0.8033239002809486,2 140 | 0.6532530267644024,0.5317828548127248,2 141 | 0.6029429217025293,0.592257182759498,2 142 | 0.6793171364155167,0.6299178295300052,2 143 | 0.5436590016093669,0.616530004367637,2 144 | 0.6419400626838602,0.36256223286946254,2 145 | 0.6087306717731106,0.6830284049509172,2 146 | 0.8119629689166619,0.6680208091577174,2 147 | 0.4507390690950599,0.6311391633425942,2 148 | 0.69051411630115,0.7322805838706918,2 149 | 0.8025826627064628,0.4721060310247126,2 150 | 0.5616657288787805,0.6772097741388851,2 -------------------------------------------------------------------------------- /EvoCluster/optimizers/CMFO.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Mon May 16 10:42:18 2016 4 | 5 | @author: hossam 6 | """ 7 | 8 | import random 9 | import numpy 10 | import math 11 | from .._solution import solution 12 | import time 13 | 14 | 15 | 16 | 17 | def MFO(objf,lb,ub,dim,N,Max_iteration,k,points, metric): 18 | 19 | 20 | #Max_iteration=1000 21 | #lb=-100 22 | #ub=100 23 | #dim=30 24 | N=50 # Number of search agents 25 | 26 | 27 | 28 | #Initialize the positions of moths 29 | Moth_pos=numpy.random.uniform(0,1,(N,dim)) *(ub-lb)+lb 30 | Moth_fitness=numpy.full(N,float("inf")) 31 | Moth_labels=numpy.zeros((N,len(points))) 32 | #Moth_fitness=numpy.fell(float("inf")) 33 | 34 | Convergence_curve=numpy.zeros(Max_iteration) 35 | 36 | 37 | sorted_population=numpy.copy(Moth_pos) 38 | sorted_labels=numpy.copy(Moth_labels) 39 | fitness_sorted=numpy.zeros(N) 40 | ##################### 41 | best_flames=numpy.copy(Moth_pos) 42 | best_labels=numpy.copy(Moth_labels) 43 | best_flame_fitness=numpy.zeros(N) 44 | #################### 45 | double_population=numpy.zeros((2*N,dim)) 46 | double_labels=numpy.zeros((2*N,len(points))) 47 | double_fitness=numpy.zeros(2*N) 48 | 49 | double_sorted_population=numpy.zeros((2*N,dim)) 50 | double_sorted_labels=numpy.zeros((2*N,len(points))) 51 | double_fitness_sorted=numpy.zeros(2*N) 52 | ######################### 53 | previous_population=numpy.zeros((N,dim)) 54 | previous_labels=numpy.zeros((N,len(points))) 55 | previous_fitness=numpy.zeros(N) 56 | 57 | 58 | s=solution() 59 | 60 | print("MFO is optimizing \""+objf.__name__+"\"") 61 | 62 | timerStart=time.time() 63 | s.startTime=time.strftime("%Y-%m-%d-%H-%M-%S") 64 | 65 | Iteration=1; 66 | 67 | # Main loop 68 | while (IterationFlame_no: # Upaate the position of the moth with respct to one flame 158 | # 159 | # % Eq. (3.13) 160 | distance_to_flame=abs(sorted_population[i,j]-Moth_pos[i,j]); 161 | b=1; 162 | t=(a-1)*random.random()+1; 163 | # 164 | # % Eq. (3.12) 165 | Moth_pos[i,j]=distance_to_flame*math.exp(b*t)*math.cos(t*2*math.pi)+sorted_population[Flame_no,j] 166 | 167 | Convergence_curve[Iteration]=Best_flame_score 168 | #Display best fitness along the iteration 169 | if (Iteration%1==0): 170 | print(['At iteration '+ str(Iteration)+ ' the best fitness is '+ str(Best_flame_score)]); 171 | 172 | 173 | 174 | 175 | Iteration=Iteration+1; 176 | 177 | timerEnd=time.time() 178 | s.endTime=time.strftime("%Y-%m-%d-%H-%M-%S") 179 | s.executionTime=timerEnd-timerStart 180 | s.convergence=Convergence_curve 181 | s.optimizer="MFO" 182 | s.objfname=objf.__name__ 183 | s.bestIndividual = Best_flame_pos 184 | s.labelsPred = numpy.array(Best_labelsPred, dtype=numpy.int64) 185 | 186 | 187 | 188 | return s 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /EvoCluster/_measures.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Sun Mar 31 21:22:53 2019 4 | 5 | @author: Raneem 6 | """ 7 | 8 | 9 | from sklearn import metrics 10 | from sklearn.metrics.pairwise import euclidean_distances 11 | import statistics 12 | import math 13 | import numpy 14 | import sys 15 | import math 16 | 17 | def HS(labelsTrue, labelsPred): 18 | return float("%0.2f"%metrics.homogeneity_score(labelsTrue,labelsPred)) 19 | 20 | def CS(labelsTrue, labelsPred): 21 | return float("%0.2f"%metrics.completeness_score(labelsTrue,labelsPred)) 22 | 23 | def VM(labelsTrue, labelsPred): 24 | return float("%0.2f"%metrics.v_measure_score(labelsTrue,labelsPred)) 25 | 26 | def AMI(labelsTrue, labelsPred): 27 | return float("%0.2f"%metrics.adjusted_mutual_info_score(labelsTrue,labelsPred)) 28 | 29 | def ARI(labelsTrue, labelsPred): 30 | return float("%0.2f"%metrics.adjusted_rand_score(labelsTrue,labelsPred)) 31 | 32 | def Fmeasure(labelsTrue, labelsPred): 33 | return float("%0.2f"%metrics.f1_score(labelsTrue, labelsPred, average='macro')) 34 | 35 | def SC(points, labelsPred):#Silhouette Coefficient 36 | 37 | if numpy.unique(labelsPred).size == 1: 38 | fitness = sys.float_info.max 39 | else: 40 | silhouette= float("%0.2f"%metrics.silhouette_score(points, labelsPred, metric='euclidean')) 41 | silhouette = (silhouette + 1) / 2 42 | fitness = 1 - silhouette 43 | return fitness 44 | 45 | def accuracy(labelsTrue, labelsPred):#Silhouette Coefficient 46 | #silhouette = metrics.accuracy_score(labelsTrue, labelsPred, normalize=False) 47 | return ARI(labelsTrue, labelsPred) 48 | 49 | 50 | def delta_fast(ck, cl, distances): 51 | values = distances[numpy.where(ck)][:, numpy.where(cl)] 52 | values = values[numpy.nonzero(values)] 53 | 54 | return numpy.min(values) 55 | 56 | def big_delta_fast(ci, distances): 57 | values = distances[numpy.where(ci)][:, numpy.where(ci)] 58 | #values = values[numpy.nonzero(values)] 59 | 60 | return numpy.max(values) 61 | 62 | def dunn_fast(points, labels): 63 | """ Dunn index - FAST (using sklearn pairwise euclidean_distance function) 64 | 65 | Parameters 66 | ---------- 67 | points : numpy.array 68 | numpy.array([N, p]) of all points 69 | labels: numpy.array 70 | numpy.array([N]) labels of all points 71 | """ 72 | distances = euclidean_distances(points) 73 | ks = numpy.sort(numpy.unique(labels)) 74 | 75 | deltas = numpy.ones([len(ks), len(ks)])*1000000 76 | big_deltas = numpy.zeros([len(ks), 1]) 77 | 78 | l_range = list(range(0, len(ks))) 79 | 80 | for k in l_range: 81 | for l in (l_range[0:k]+l_range[k+1:]): 82 | deltas[k, l] = delta_fast((labels == ks[k]), (labels == ks[l]), distances) 83 | 84 | big_deltas[k] = big_delta_fast((labels == ks[k]), distances) 85 | 86 | di = numpy.min(deltas)/numpy.max(big_deltas) 87 | return di 88 | 89 | 90 | def DI(points, labelsPred):#dunn index 91 | dunn = float("%0.2f"%dunn_fast(points, labelsPred)) 92 | if(dunn < 0): 93 | dunn = 0 94 | fitness = 1 - dunn 95 | return fitness 96 | 97 | 98 | def DB(points, labelsPred): 99 | return float("%0.2f"%metrics.davies_bouldin_score(points, labelsPred)) 100 | 101 | def stdev(individual, labelsPred, k, points): 102 | std = 0 103 | distances = [] 104 | f = (int)(len(individual) / k) 105 | startpts = numpy.reshape(individual, (k,f)) 106 | 107 | for i in range(k): 108 | index_list = numpy.where(labelsPred == i) 109 | distances = numpy.append(distances, numpy.linalg.norm(points[index_list]-startpts[i], axis = 1)) 110 | 111 | std = numpy.std(distances) 112 | 113 | #stdev = math.sqrt(std)/ k 114 | #print("stdev:",stdev) 115 | return std 116 | 117 | 118 | ''' 119 | def SSE(individual, k, points): 120 | 121 | f = (int)(len(individual) / k) 122 | startpts = numpy.reshape(individual, (k,f)) 123 | labelsPred = [-1] * len(points) 124 | sse = 0 125 | 126 | for i in range(len(points)): 127 | distances = numpy.linalg.norm(points[i]-startpts, axis = 1) 128 | sse = sse + numpy.min(distances) 129 | clust = numpy.argmin(distances) 130 | labelsPred[i] = clust 131 | 132 | if numpy.unique(labelsPred).size < k: 133 | sse = sys.float_info.max 134 | 135 | print("SSE:",sse) 136 | return sse 137 | ''' 138 | 139 | def SSE(individual, labelsPred, k, points): 140 | 141 | f = (int)(len(individual) / k) 142 | startpts = numpy.reshape(individual, (k,f)) 143 | fitness = 0 144 | 145 | 146 | centroidsForPoints = startpts[labelsPred] 147 | fitnessValues = numpy.linalg.norm(points-centroidsForPoints, axis = 1)**2 148 | fitness = sum(fitnessValues) 149 | return fitness 150 | 151 | 152 | def TWCV(individual, labelsPred, k, points): 153 | sumAllFeatures = sum(sum(numpy.power(points,2))) 154 | sumAllPairPointsCluster = 0 155 | for clusterId in range(k): 156 | indices = numpy.where(numpy.array(labelsPred) == clusterId)[0] 157 | pointsInCluster = points[numpy.array(indices)] 158 | sumPairPointsCluster = sum(pointsInCluster) 159 | sumPairPointsCluster = numpy.power(sumPairPointsCluster,2) 160 | if len(pointsInCluster) != 0: 161 | sumPairPointsCluster = sum(sumPairPointsCluster) 162 | sumPairPointsCluster = sumPairPointsCluster/len(pointsInCluster) 163 | 164 | sumAllPairPointsCluster += sumPairPointsCluster 165 | fitness = (sumAllFeatures - sumAllPairPointsCluster) 166 | return fitness 167 | 168 | 169 | def purity(labelsTrue,labelsPred): 170 | # get the set of unique cluster ids 171 | labelsTrue=numpy.asarray(labelsTrue).astype(int) 172 | labelsPred=numpy.asarray(labelsPred).astype(int) 173 | 174 | k=(max(labelsTrue)+1).astype(int) 175 | 176 | totalSum = 0; 177 | 178 | for i in range(0,k): 179 | max_freq=0 180 | 181 | t1=numpy.where(labelsPred == i) 182 | 183 | for j in range(0,k): 184 | t2=numpy.where(labelsTrue == j) 185 | z=numpy.intersect1d(t1,t2); 186 | 187 | e=numpy.shape(z)[0] 188 | 189 | if (e >= max_freq): 190 | max_freq=e 191 | 192 | totalSum=totalSum + max_freq 193 | 194 | purity=totalSum/numpy.shape(labelsTrue)[0] 195 | 196 | #print("purity:",purity) 197 | 198 | return purity 199 | 200 | def entropy(labelsTrue,labelsPred): 201 | # get the set of unique cluster ids 202 | labelsTrue=numpy.asarray(labelsTrue).astype(int) 203 | labelsPred=numpy.asarray(labelsPred).astype(int) 204 | 205 | k=(max(labelsTrue)+1).astype(int) 206 | 207 | entropy=0 208 | 209 | for i in range(0,k): 210 | 211 | t1=numpy.where(labelsPred == i) 212 | 213 | entropyI=0 214 | 215 | for j in range(0,k): 216 | t2=numpy.where(labelsTrue == j) 217 | z=numpy.intersect1d(t1,t2); 218 | 219 | e=numpy.shape(z)[0] 220 | if (e!=0): 221 | entropyI=entropyI+(e/numpy.shape(t1)[1])*math.log(e/numpy.shape(t1)[1]) 222 | 223 | a=numpy.shape(t1)[1] 224 | b=numpy.shape(labelsTrue)[0] 225 | entropy=entropy+(( a / b )*((-1 / math.log(k))*entropyI)) 226 | 227 | #print("entropy:",entropy) 228 | 229 | return entropy -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/liver.csv: -------------------------------------------------------------------------------- 1 | 85,92,45,27,31,0 2 | 85,64,59,32,23,0 3 | 86,54,33,16,54,0 4 | 91,78,34,24,36,0 5 | 87,70,12,28,10,0 6 | 98,55,13,17,17,0 7 | 88,62,20,17,9,0.5 8 | 88,67,21,11,11,0.5 9 | 92,54,22,20,7,0.5 10 | 90,60,25,19,5,0.5 11 | 89,52,13,24,15,0.5 12 | 82,62,17,17,15,0.5 13 | 90,64,61,32,13,0.5 14 | 86,77,25,19,18,0.5 15 | 96,67,29,20,11,0.5 16 | 91,78,20,31,18,0.5 17 | 89,67,23,16,10,0.5 18 | 89,79,17,17,16,0.5 19 | 91,107,20,20,56,0.5 20 | 94,116,11,33,11,0.5 21 | 92,59,35,13,19,0.5 22 | 93,23,35,20,20,0.5 23 | 90,60,23,27,5,0.5 24 | 96,68,18,19,19,0.5 25 | 84,80,47,33,97,0.5 26 | 92,70,24,13,26,0.5 27 | 90,47,28,15,18,0.5 28 | 88,66,20,21,10,0.5 29 | 91,102,17,13,19,0.5 30 | 87,41,31,19,16,0.5 31 | 86,79,28,16,17,0.5 32 | 91,57,31,23,42,0.5 33 | 93,77,32,18,29,0.5 34 | 88,96,28,21,40,0.5 35 | 94,65,22,18,11,0.5 36 | 91,72,155,68,82,0.5 37 | 85,54,47,33,22,0.5 38 | 79,39,14,19,9,0.5 39 | 85,85,25,26,30,0.5 40 | 89,63,24,20,38,0.5 41 | 84,92,68,37,44,0.5 42 | 89,68,26,39,42,0.5 43 | 89,101,18,25,13,0.5 44 | 86,84,18,14,16,0.5 45 | 85,65,25,14,18,0.5 46 | 88,61,19,21,13,0.5 47 | 92,56,14,16,10,0.5 48 | 95,50,29,25,50,0.5 49 | 91,75,24,22,11,0.5 50 | 83,40,29,25,38,0.5 51 | 89,74,19,23,16,0.5 52 | 85,64,24,22,11,0.5 53 | 92,57,64,36,90,0.5 54 | 94,48,11,23,43,0.5 55 | 87,52,21,19,30,0.5 56 | 85,65,23,29,15,0.5 57 | 84,82,21,21,19,0.5 58 | 88,49,20,22,19,0.5 59 | 96,67,26,26,36,0.5 60 | 90,63,24,24,24,0.5 61 | 90,45,33,34,27,0.5 62 | 90,72,14,15,18,0.5 63 | 91,55,4,8,13,0.5 64 | 91,52,15,22,11,0.5 65 | 87,71,32,19,27,1 66 | 89,77,26,20,19,1 67 | 89,67,5,17,14,1 68 | 85,51,26,24,23,1 69 | 103,75,19,30,13,1 70 | 90,63,16,21,14,1 71 | 90,63,29,23,57,2 72 | 90,67,35,19,35,2 73 | 87,66,27,22,9,2 74 | 90,73,34,21,22,2 75 | 86,54,20,21,16,2 76 | 90,80,19,14,42,2 77 | 87,90,43,28,156,2 78 | 96,72,28,19,30,2 79 | 91,55,9,25,16,2 80 | 95,78,27,25,30,2 81 | 92,101,34,30,64,2 82 | 89,51,41,22,48,2 83 | 91,99,42,33,16,2 84 | 94,58,21,18,26,2 85 | 92,60,30,27,297,2 86 | 94,58,21,18,26,2 87 | 88,47,33,26,29,2 88 | 92,65,17,25,9,2 89 | 92,79,22,20,11,3 90 | 84,83,20,25,7,3 91 | 88,68,27,21,26,3 92 | 86,48,20,20,6,3 93 | 99,69,45,32,30,3 94 | 88,66,23,12,15,3 95 | 89,62,42,30,20,3 96 | 90,51,23,17,27,3 97 | 81,61,32,37,53,3 98 | 89,89,23,18,104,3 99 | 89,65,26,18,36,3 100 | 92,75,26,26,24,3 101 | 85,59,25,20,25,3 102 | 92,61,18,13,81,3 103 | 89,63,22,27,10,4 104 | 90,84,18,23,13,4 105 | 88,95,25,19,14,4 106 | 89,35,27,29,17,4 107 | 91,80,37,23,27,4 108 | 91,109,33,15,18,4 109 | 91,65,17,5,7,4 110 | 88,107,29,20,50,4 111 | 87,76,22,55,9,4 112 | 87,86,28,23,21,4 113 | 87,42,26,23,17,4 114 | 88,80,24,25,17,4 115 | 90,96,34,49,169,4 116 | 86,67,11,15,8,4 117 | 92,40,19,20,21,4 118 | 85,60,17,21,14,4 119 | 89,90,15,17,25,4 120 | 91,57,15,16,16,4 121 | 96,55,48,39,42,4 122 | 79,101,17,27,23,4 123 | 90,134,14,20,14,4 124 | 89,76,14,21,24,4 125 | 88,93,29,27,31,4 126 | 90,67,10,16,16,4 127 | 92,73,24,21,48,4 128 | 91,55,28,28,82,4 129 | 83,45,19,21,13,4 130 | 90,74,19,14,22,4 131 | 92,66,21,16,33,5 132 | 93,63,26,18,18,5 133 | 86,78,47,39,107,5 134 | 97,44,113,45,150,5 135 | 87,59,15,19,12,5 136 | 86,44,21,11,15,5 137 | 87,64,16,20,24,5 138 | 92,57,21,23,22,5 139 | 90,70,25,23,112,5 140 | 99,59,17,19,11,5 141 | 92,80,10,26,20,6 142 | 95,60,26,22,28,6 143 | 91,63,25,26,15,6 144 | 92,62,37,21,36,6 145 | 95,50,13,14,15,6 146 | 90,76,37,19,50,6 147 | 96,70,70,26,36,6 148 | 95,62,64,42,76,6 149 | 92,62,20,23,20,6 150 | 91,63,25,26,15,6 151 | 82,56,67,38,92,6 152 | 92,82,27,24,37,6 153 | 90,63,12,26,21,6 154 | 88,37,9,15,16,6 155 | 100,60,29,23,76,6 156 | 98,43,35,23,69,6 157 | 91,74,87,50,67,6 158 | 92,87,57,25,44,6 159 | 93,99,36,34,48,6 160 | 90,72,17,19,19,6 161 | 97,93,21,20,68,6 162 | 93,50,18,25,17,6 163 | 90,57,20,26,33,6 164 | 92,76,31,28,41,6 165 | 88,55,19,17,14,6 166 | 89,63,24,29,29,6 167 | 92,79,70,32,84,7 168 | 92,93,58,35,120,7 169 | 93,84,58,47,62,7 170 | 97,71,29,22,52,8 171 | 84,99,33,19,26,8 172 | 96,44,42,23,73,8 173 | 90,62,22,21,21,8 174 | 92,94,18,17,6,8 175 | 90,67,77,39,114,8 176 | 97,71,29,22,52,8 177 | 91,69,25,25,66,8 178 | 93,59,17,20,14,8 179 | 92,95,85,48,200,8 180 | 90,50,26,22,53,8 181 | 91,62,59,47,60,8 182 | 92,93,22,28,123,9 183 | 92,77,86,41,31,10 184 | 86,66,22,24,26,10 185 | 98,57,31,34,73,10 186 | 95,80,50,64,55,10 187 | 92,108,53,33,94,12 188 | 97,92,22,28,49,12 189 | 93,77,39,37,108,16 190 | 94,83,81,34,201,20 191 | 87,75,25,21,14,0 192 | 88,56,23,18,12,0 193 | 84,97,41,20,32,0 194 | 94,91,27,20,15,0.5 195 | 97,62,17,13,5,0.5 196 | 92,85,25,20,12,0.5 197 | 82,48,27,15,12,0.5 198 | 88,74,31,25,15,0.5 199 | 95,77,30,14,21,0.5 200 | 88,94,26,18,8,0.5 201 | 91,70,19,19,22,0.5 202 | 83,54,27,15,12,0.5 203 | 91,105,40,26,56,0.5 204 | 86,79,37,28,14,0.5 205 | 91,96,35,22,135,0.5 206 | 89,82,23,14,35,0.5 207 | 90,73,24,23,11,0.5 208 | 90,87,19,25,19,0.5 209 | 89,82,33,32,18,0.5 210 | 85,79,17,8,9,0.5 211 | 85,119,30,26,17,0.5 212 | 78,69,24,18,31,0.5 213 | 88,107,34,21,27,0.5 214 | 89,115,17,27,7,0.5 215 | 92,67,23,15,12,0.5 216 | 89,101,27,34,14,0.5 217 | 91,84,11,12,10,0.5 218 | 94,101,41,20,53,0.5 219 | 88,46,29,22,18,0.5 220 | 88,122,35,29,42,0.5 221 | 84,88,28,25,35,0.5 222 | 90,79,18,15,24,0.5 223 | 87,69,22,26,11,0.5 224 | 65,63,19,20,14,0.5 225 | 90,64,12,17,14,0.5 226 | 85,58,18,24,16,0.5 227 | 88,81,41,27,36,0.5 228 | 86,78,52,29,62,0.5 229 | 82,74,38,28,48,0.5 230 | 86,58,36,27,59,0.5 231 | 94,56,30,18,27,0.5 232 | 87,57,30,30,22,0.5 233 | 98,74,148,75,159,0.5 234 | 94,75,20,25,38,0.5 235 | 83,68,17,20,71,0.5 236 | 93,56,25,21,33,0.5 237 | 101,65,18,21,22,0.5 238 | 92,65,25,20,31,0.5 239 | 92,58,14,16,13,0.5 240 | 86,58,16,23,23,0.5 241 | 85,62,15,13,22,0.5 242 | 86,57,13,20,13,0.5 243 | 86,54,26,30,13,0.5 244 | 81,41,33,27,34,1 245 | 91,67,32,26,13,1 246 | 91,80,21,19,14,1 247 | 92,60,23,15,19,1 248 | 91,60,32,14,8,1 249 | 93,65,28,22,10,1 250 | 90,63,45,24,85,1 251 | 87,92,21,22,37,1 252 | 83,78,31,19,115,1 253 | 95,62,24,23,14,1 254 | 93,59,41,30,48,1 255 | 84,82,43,32,38,2 256 | 87,71,33,20,22,2 257 | 86,44,24,15,18,2 258 | 86,66,28,24,21,2 259 | 88,58,31,17,17,2 260 | 90,61,28,29,31,2 261 | 88,69,70,24,64,2 262 | 93,87,18,17,26,2 263 | 98,58,33,21,28,2 264 | 91,44,18,18,23,2 265 | 87,75,37,19,70,2 266 | 94,91,30,26,25,2 267 | 88,85,14,15,10,2 268 | 89,109,26,25,27,2 269 | 87,59,37,27,34,2 270 | 93,58,20,23,18,2 271 | 88,57,9,15,16,2 272 | 94,65,38,27,17,3 273 | 91,71,12,22,11,3 274 | 90,55,20,20,16,3 275 | 91,64,21,17,26,3 276 | 88,47,35,26,33,3 277 | 82,72,31,20,84,3 278 | 85,58,83,49,51,3 279 | 91,54,25,22,35,4 280 | 98,50,27,25,53,4 281 | 86,62,29,21,26,4 282 | 89,48,32,22,14,4 283 | 82,68,20,22,9,4 284 | 83,70,17,19,23,4 285 | 96,70,21,26,21,4 286 | 94,117,77,56,52,4 287 | 93,45,11,14,21,4 288 | 93,49,27,21,29,4 289 | 84,73,46,32,39,4 290 | 91,63,17,17,46,4 291 | 90,57,31,18,37,4 292 | 87,45,19,13,16,4 293 | 91,68,14,20,19,4 294 | 86,55,29,35,108,4 295 | 91,86,52,47,52,4 296 | 88,46,15,33,55,4 297 | 85,52,22,23,34,4 298 | 89,72,33,27,55,4 299 | 95,59,23,18,19,4 300 | 94,43,154,82,121,4 301 | 96,56,38,26,23,5 302 | 90,52,10,17,12,5 303 | 94,45,20,16,12,5 304 | 99,42,14,21,49,5 305 | 93,102,47,23,37,5 306 | 94,71,25,26,31,5 307 | 92,73,33,34,115,5 308 | 87,54,41,29,23,6 309 | 92,67,15,14,14,6 310 | 98,101,31,26,32,6 311 | 92,53,51,33,92,6 312 | 97,94,43,43,82,6 313 | 93,43,11,16,54,6 314 | 93,68,24,18,19,6 315 | 95,36,38,19,15,6 316 | 99,86,58,42,203,6 317 | 98,66,103,57,114,6 318 | 92,80,10,26,20,6 319 | 96,74,27,25,43,6 320 | 95,93,21,27,47,6 321 | 86,109,16,22,28,6 322 | 91,46,30,24,39,7 323 | 102,82,34,78,203,7 324 | 85,50,12,18,14,7 325 | 91,57,33,23,12,8 326 | 91,52,76,32,24,8 327 | 93,70,46,30,33,8 328 | 87,55,36,19,25,8 329 | 98,123,28,24,31,8 330 | 82,55,18,23,44,8 331 | 95,73,20,25,225,8 332 | 97,80,17,20,53,8 333 | 100,83,25,24,28,8 334 | 88,91,56,35,126,9 335 | 91,138,45,21,48,10 336 | 92,41,37,22,37,10 337 | 86,123,20,25,23,10 338 | 91,93,35,34,37,10 339 | 87,87,15,23,11,10 340 | 87,56,52,43,55,10 341 | 99,75,26,24,41,12 342 | 96,69,53,43,203,12 343 | 98,77,55,35,89,15 344 | 91,68,27,26,14,16 345 | 98,99,57,45,65,20 346 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/balance.csv: -------------------------------------------------------------------------------- 1 | 1,1,1,1 2 | 1,1,1,2 3 | 1,1,1,3 4 | 1,1,1,4 5 | 1,1,1,5 6 | 1,1,2,1 7 | 1,1,2,2 8 | 1,1,2,3 9 | 1,1,2,4 10 | 1,1,2,5 11 | 1,1,3,1 12 | 1,1,3,2 13 | 1,1,3,3 14 | 1,1,3,4 15 | 1,1,3,5 16 | 1,1,4,1 17 | 1,1,4,2 18 | 1,1,4,3 19 | 1,1,4,4 20 | 1,1,4,5 21 | 1,1,5,1 22 | 1,1,5,2 23 | 1,1,5,3 24 | 1,1,5,4 25 | 1,1,5,5 26 | 1,2,1,1 27 | 1,2,1,2 28 | 1,2,1,3 29 | 1,2,1,4 30 | 1,2,1,5 31 | 1,2,2,1 32 | 1,2,2,2 33 | 1,2,2,3 34 | 1,2,2,4 35 | 1,2,2,5 36 | 1,2,3,1 37 | 1,2,3,2 38 | 1,2,3,3 39 | 1,2,3,4 40 | 1,2,3,5 41 | 1,2,4,1 42 | 1,2,4,2 43 | 1,2,4,3 44 | 1,2,4,4 45 | 1,2,4,5 46 | 1,2,5,1 47 | 1,2,5,2 48 | 1,2,5,3 49 | 1,2,5,4 50 | 1,2,5,5 51 | 1,3,1,1 52 | 1,3,1,2 53 | 1,3,1,3 54 | 1,3,1,4 55 | 1,3,1,5 56 | 1,3,2,1 57 | 1,3,2,2 58 | 1,3,2,3 59 | 1,3,2,4 60 | 1,3,2,5 61 | 1,3,3,1 62 | 1,3,3,2 63 | 1,3,3,3 64 | 1,3,3,4 65 | 1,3,3,5 66 | 1,3,4,1 67 | 1,3,4,2 68 | 1,3,4,3 69 | 1,3,4,4 70 | 1,3,4,5 71 | 1,3,5,1 72 | 1,3,5,2 73 | 1,3,5,3 74 | 1,3,5,4 75 | 1,3,5,5 76 | 1,4,1,1 77 | 1,4,1,2 78 | 1,4,1,3 79 | 1,4,1,4 80 | 1,4,1,5 81 | 1,4,2,1 82 | 1,4,2,2 83 | 1,4,2,3 84 | 1,4,2,4 85 | 1,4,2,5 86 | 1,4,3,1 87 | 1,4,3,2 88 | 1,4,3,3 89 | 1,4,3,4 90 | 1,4,3,5 91 | 1,4,4,1 92 | 1,4,4,2 93 | 1,4,4,3 94 | 1,4,4,4 95 | 1,4,4,5 96 | 1,4,5,1 97 | 1,4,5,2 98 | 1,4,5,3 99 | 1,4,5,4 100 | 1,4,5,5 101 | 1,5,1,1 102 | 1,5,1,2 103 | 1,5,1,3 104 | 1,5,1,4 105 | 1,5,1,5 106 | 1,5,2,1 107 | 1,5,2,2 108 | 1,5,2,3 109 | 1,5,2,4 110 | 1,5,2,5 111 | 1,5,3,1 112 | 1,5,3,2 113 | 1,5,3,3 114 | 1,5,3,4 115 | 1,5,3,5 116 | 1,5,4,1 117 | 1,5,4,2 118 | 1,5,4,3 119 | 1,5,4,4 120 | 1,5,4,5 121 | 1,5,5,1 122 | 1,5,5,2 123 | 1,5,5,3 124 | 1,5,5,4 125 | 1,5,5,5 126 | 2,1,1,1 127 | 2,1,1,2 128 | 2,1,1,3 129 | 2,1,1,4 130 | 2,1,1,5 131 | 2,1,2,1 132 | 2,1,2,2 133 | 2,1,2,3 134 | 2,1,2,4 135 | 2,1,2,5 136 | 2,1,3,1 137 | 2,1,3,2 138 | 2,1,3,3 139 | 2,1,3,4 140 | 2,1,3,5 141 | 2,1,4,1 142 | 2,1,4,2 143 | 2,1,4,3 144 | 2,1,4,4 145 | 2,1,4,5 146 | 2,1,5,1 147 | 2,1,5,2 148 | 2,1,5,3 149 | 2,1,5,4 150 | 2,1,5,5 151 | 2,2,1,1 152 | 2,2,1,2 153 | 2,2,1,3 154 | 2,2,1,4 155 | 2,2,1,5 156 | 2,2,2,1 157 | 2,2,2,2 158 | 2,2,2,3 159 | 2,2,2,4 160 | 2,2,2,5 161 | 2,2,3,1 162 | 2,2,3,2 163 | 2,2,3,3 164 | 2,2,3,4 165 | 2,2,3,5 166 | 2,2,4,1 167 | 2,2,4,2 168 | 2,2,4,3 169 | 2,2,4,4 170 | 2,2,4,5 171 | 2,2,5,1 172 | 2,2,5,2 173 | 2,2,5,3 174 | 2,2,5,4 175 | 2,2,5,5 176 | 2,3,1,1 177 | 2,3,1,2 178 | 2,3,1,3 179 | 2,3,1,4 180 | 2,3,1,5 181 | 2,3,2,1 182 | 2,3,2,2 183 | 2,3,2,3 184 | 2,3,2,4 185 | 2,3,2,5 186 | 2,3,3,1 187 | 2,3,3,2 188 | 2,3,3,3 189 | 2,3,3,4 190 | 2,3,3,5 191 | 2,3,4,1 192 | 2,3,4,2 193 | 2,3,4,3 194 | 2,3,4,4 195 | 2,3,4,5 196 | 2,3,5,1 197 | 2,3,5,2 198 | 2,3,5,3 199 | 2,3,5,4 200 | 2,3,5,5 201 | 2,4,1,1 202 | 2,4,1,2 203 | 2,4,1,3 204 | 2,4,1,4 205 | 2,4,1,5 206 | 2,4,2,1 207 | 2,4,2,2 208 | 2,4,2,3 209 | 2,4,2,4 210 | 2,4,2,5 211 | 2,4,3,1 212 | 2,4,3,2 213 | 2,4,3,3 214 | 2,4,3,4 215 | 2,4,3,5 216 | 2,4,4,1 217 | 2,4,4,2 218 | 2,4,4,3 219 | 2,4,4,4 220 | 2,4,4,5 221 | 2,4,5,1 222 | 2,4,5,2 223 | 2,4,5,3 224 | 2,4,5,4 225 | 2,4,5,5 226 | 2,5,1,1 227 | 2,5,1,2 228 | 2,5,1,3 229 | 2,5,1,4 230 | 2,5,1,5 231 | 2,5,2,1 232 | 2,5,2,2 233 | 2,5,2,3 234 | 2,5,2,4 235 | 2,5,2,5 236 | 2,5,3,1 237 | 2,5,3,2 238 | 2,5,3,3 239 | 2,5,3,4 240 | 2,5,3,5 241 | 2,5,4,1 242 | 2,5,4,2 243 | 2,5,4,3 244 | 2,5,4,4 245 | 2,5,4,5 246 | 2,5,5,1 247 | 2,5,5,2 248 | 2,5,5,3 249 | 2,5,5,4 250 | 2,5,5,5 251 | 3,1,1,1 252 | 3,1,1,2 253 | 3,1,1,3 254 | 3,1,1,4 255 | 3,1,1,5 256 | 3,1,2,1 257 | 3,1,2,2 258 | 3,1,2,3 259 | 3,1,2,4 260 | 3,1,2,5 261 | 3,1,3,1 262 | 3,1,3,2 263 | 3,1,3,3 264 | 3,1,3,4 265 | 3,1,3,5 266 | 3,1,4,1 267 | 3,1,4,2 268 | 3,1,4,3 269 | 3,1,4,4 270 | 3,1,4,5 271 | 3,1,5,1 272 | 3,1,5,2 273 | 3,1,5,3 274 | 3,1,5,4 275 | 3,1,5,5 276 | 3,2,1,1 277 | 3,2,1,2 278 | 3,2,1,3 279 | 3,2,1,4 280 | 3,2,1,5 281 | 3,2,2,1 282 | 3,2,2,2 283 | 3,2,2,3 284 | 3,2,2,4 285 | 3,2,2,5 286 | 3,2,3,1 287 | 3,2,3,2 288 | 3,2,3,3 289 | 3,2,3,4 290 | 3,2,3,5 291 | 3,2,4,1 292 | 3,2,4,2 293 | 3,2,4,3 294 | 3,2,4,4 295 | 3,2,4,5 296 | 3,2,5,1 297 | 3,2,5,2 298 | 3,2,5,3 299 | 3,2,5,4 300 | 3,2,5,5 301 | 3,3,1,1 302 | 3,3,1,2 303 | 3,3,1,3 304 | 3,3,1,4 305 | 3,3,1,5 306 | 3,3,2,1 307 | 3,3,2,2 308 | 3,3,2,3 309 | 3,3,2,4 310 | 3,3,2,5 311 | 3,3,3,1 312 | 3,3,3,2 313 | 3,3,3,3 314 | 3,3,3,4 315 | 3,3,3,5 316 | 3,3,4,1 317 | 3,3,4,2 318 | 3,3,4,3 319 | 3,3,4,4 320 | 3,3,4,5 321 | 3,3,5,1 322 | 3,3,5,2 323 | 3,3,5,3 324 | 3,3,5,4 325 | 3,3,5,5 326 | 3,4,1,1 327 | 3,4,1,2 328 | 3,4,1,3 329 | 3,4,1,4 330 | 3,4,1,5 331 | 3,4,2,1 332 | 3,4,2,2 333 | 3,4,2,3 334 | 3,4,2,4 335 | 3,4,2,5 336 | 3,4,3,1 337 | 3,4,3,2 338 | 3,4,3,3 339 | 3,4,3,4 340 | 3,4,3,5 341 | 3,4,4,1 342 | 3,4,4,2 343 | 3,4,4,3 344 | 3,4,4,4 345 | 3,4,4,5 346 | 3,4,5,1 347 | 3,4,5,2 348 | 3,4,5,3 349 | 3,4,5,4 350 | 3,4,5,5 351 | 3,5,1,1 352 | 3,5,1,2 353 | 3,5,1,3 354 | 3,5,1,4 355 | 3,5,1,5 356 | 3,5,2,1 357 | 3,5,2,2 358 | 3,5,2,3 359 | 3,5,2,4 360 | 3,5,2,5 361 | 3,5,3,1 362 | 3,5,3,2 363 | 3,5,3,3 364 | 3,5,3,4 365 | 3,5,3,5 366 | 3,5,4,1 367 | 3,5,4,2 368 | 3,5,4,3 369 | 3,5,4,4 370 | 3,5,4,5 371 | 3,5,5,1 372 | 3,5,5,2 373 | 3,5,5,3 374 | 3,5,5,4 375 | 3,5,5,5 376 | 4,1,1,1 377 | 4,1,1,2 378 | 4,1,1,3 379 | 4,1,1,4 380 | 4,1,1,5 381 | 4,1,2,1 382 | 4,1,2,2 383 | 4,1,2,3 384 | 4,1,2,4 385 | 4,1,2,5 386 | 4,1,3,1 387 | 4,1,3,2 388 | 4,1,3,3 389 | 4,1,3,4 390 | 4,1,3,5 391 | 4,1,4,1 392 | 4,1,4,2 393 | 4,1,4,3 394 | 4,1,4,4 395 | 4,1,4,5 396 | 4,1,5,1 397 | 4,1,5,2 398 | 4,1,5,3 399 | 4,1,5,4 400 | 4,1,5,5 401 | 4,2,1,1 402 | 4,2,1,2 403 | 4,2,1,3 404 | 4,2,1,4 405 | 4,2,1,5 406 | 4,2,2,1 407 | 4,2,2,2 408 | 4,2,2,3 409 | 4,2,2,4 410 | 4,2,2,5 411 | 4,2,3,1 412 | 4,2,3,2 413 | 4,2,3,3 414 | 4,2,3,4 415 | 4,2,3,5 416 | 4,2,4,1 417 | 4,2,4,2 418 | 4,2,4,3 419 | 4,2,4,4 420 | 4,2,4,5 421 | 4,2,5,1 422 | 4,2,5,2 423 | 4,2,5,3 424 | 4,2,5,4 425 | 4,2,5,5 426 | 4,3,1,1 427 | 4,3,1,2 428 | 4,3,1,3 429 | 4,3,1,4 430 | 4,3,1,5 431 | 4,3,2,1 432 | 4,3,2,2 433 | 4,3,2,3 434 | 4,3,2,4 435 | 4,3,2,5 436 | 4,3,3,1 437 | 4,3,3,2 438 | 4,3,3,3 439 | 4,3,3,4 440 | 4,3,3,5 441 | 4,3,4,1 442 | 4,3,4,2 443 | 4,3,4,3 444 | 4,3,4,4 445 | 4,3,4,5 446 | 4,3,5,1 447 | 4,3,5,2 448 | 4,3,5,3 449 | 4,3,5,4 450 | 4,3,5,5 451 | 4,4,1,1 452 | 4,4,1,2 453 | 4,4,1,3 454 | 4,4,1,4 455 | 4,4,1,5 456 | 4,4,2,1 457 | 4,4,2,2 458 | 4,4,2,3 459 | 4,4,2,4 460 | 4,4,2,5 461 | 4,4,3,1 462 | 4,4,3,2 463 | 4,4,3,3 464 | 4,4,3,4 465 | 4,4,3,5 466 | 4,4,4,1 467 | 4,4,4,2 468 | 4,4,4,3 469 | 4,4,4,4 470 | 4,4,4,5 471 | 4,4,5,1 472 | 4,4,5,2 473 | 4,4,5,3 474 | 4,4,5,4 475 | 4,4,5,5 476 | 4,5,1,1 477 | 4,5,1,2 478 | 4,5,1,3 479 | 4,5,1,4 480 | 4,5,1,5 481 | 4,5,2,1 482 | 4,5,2,2 483 | 4,5,2,3 484 | 4,5,2,4 485 | 4,5,2,5 486 | 4,5,3,1 487 | 4,5,3,2 488 | 4,5,3,3 489 | 4,5,3,4 490 | 4,5,3,5 491 | 4,5,4,1 492 | 4,5,4,2 493 | 4,5,4,3 494 | 4,5,4,4 495 | 4,5,4,5 496 | 4,5,5,1 497 | 4,5,5,2 498 | 4,5,5,3 499 | 4,5,5,4 500 | 4,5,5,5 501 | 5,1,1,1 502 | 5,1,1,2 503 | 5,1,1,3 504 | 5,1,1,4 505 | 5,1,1,5 506 | 5,1,2,1 507 | 5,1,2,2 508 | 5,1,2,3 509 | 5,1,2,4 510 | 5,1,2,5 511 | 5,1,3,1 512 | 5,1,3,2 513 | 5,1,3,3 514 | 5,1,3,4 515 | 5,1,3,5 516 | 5,1,4,1 517 | 5,1,4,2 518 | 5,1,4,3 519 | 5,1,4,4 520 | 5,1,4,5 521 | 5,1,5,1 522 | 5,1,5,2 523 | 5,1,5,3 524 | 5,1,5,4 525 | 5,1,5,5 526 | 5,2,1,1 527 | 5,2,1,2 528 | 5,2,1,3 529 | 5,2,1,4 530 | 5,2,1,5 531 | 5,2,2,1 532 | 5,2,2,2 533 | 5,2,2,3 534 | 5,2,2,4 535 | 5,2,2,5 536 | 5,2,3,1 537 | 5,2,3,2 538 | 5,2,3,3 539 | 5,2,3,4 540 | 5,2,3,5 541 | 5,2,4,1 542 | 5,2,4,2 543 | 5,2,4,3 544 | 5,2,4,4 545 | 5,2,4,5 546 | 5,2,5,1 547 | 5,2,5,2 548 | 5,2,5,3 549 | 5,2,5,4 550 | 5,2,5,5 551 | 5,3,1,1 552 | 5,3,1,2 553 | 5,3,1,3 554 | 5,3,1,4 555 | 5,3,1,5 556 | 5,3,2,1 557 | 5,3,2,2 558 | 5,3,2,3 559 | 5,3,2,4 560 | 5,3,2,5 561 | 5,3,3,1 562 | 5,3,3,2 563 | 5,3,3,3 564 | 5,3,3,4 565 | 5,3,3,5 566 | 5,3,4,1 567 | 5,3,4,2 568 | 5,3,4,3 569 | 5,3,4,4 570 | 5,3,4,5 571 | 5,3,5,1 572 | 5,3,5,2 573 | 5,3,5,3 574 | 5,3,5,4 575 | 5,3,5,5 576 | 5,4,1,1 577 | 5,4,1,2 578 | 5,4,1,3 579 | 5,4,1,4 580 | 5,4,1,5 581 | 5,4,2,1 582 | 5,4,2,2 583 | 5,4,2,3 584 | 5,4,2,4 585 | 5,4,2,5 586 | 5,4,3,1 587 | 5,4,3,2 588 | 5,4,3,3 589 | 5,4,3,4 590 | 5,4,3,5 591 | 5,4,4,1 592 | 5,4,4,2 593 | 5,4,4,3 594 | 5,4,4,4 595 | 5,4,4,5 596 | 5,4,5,1 597 | 5,4,5,2 598 | 5,4,5,3 599 | 5,4,5,4 600 | 5,4,5,5 601 | 5,5,1,1 602 | 5,5,1,2 603 | 5,5,1,3 604 | 5,5,1,4 605 | 5,5,1,5 606 | 5,5,2,1 607 | 5,5,2,2 608 | 5,5,2,3 609 | 5,5,2,4 610 | 5,5,2,5 611 | 5,5,3,1 612 | 5,5,3,2 613 | 5,5,3,3 614 | 5,5,3,4 615 | 5,5,3,5 616 | 5,5,4,1 617 | 5,5,4,2 618 | 5,5,4,3 619 | 5,5,4,4 620 | 5,5,4,5 621 | 5,5,5,1 622 | 5,5,5,2 623 | 5,5,5,3 624 | 5,5,5,4 625 | 5,5,5,5 626 | -------------------------------------------------------------------------------- /EvoCluster/datasets/liver.csv: -------------------------------------------------------------------------------- 1 | 85,92,45,27,31,0.0,1 2 | 85,64,59,32,23,0.0,2 3 | 86,54,33,16,54,0.0,2 4 | 91,78,34,24,36,0.0,2 5 | 87,70,12,28,10,0.0,2 6 | 98,55,13,17,17,0.0,2 7 | 88,62,20,17,9,0.5,1 8 | 88,67,21,11,11,0.5,1 9 | 92,54,22,20,7,0.5,1 10 | 90,60,25,19,5,0.5,1 11 | 89,52,13,24,15,0.5,1 12 | 82,62,17,17,15,0.5,1 13 | 90,64,61,32,13,0.5,1 14 | 86,77,25,19,18,0.5,1 15 | 96,67,29,20,11,0.5,1 16 | 91,78,20,31,18,0.5,1 17 | 89,67,23,16,10,0.5,1 18 | 89,79,17,17,16,0.5,1 19 | 91,107,20,20,56,0.5,1 20 | 94,116,11,33,11,0.5,1 21 | 92,59,35,13,19,0.5,1 22 | 93,23,35,20,20,0.5,1 23 | 90,60,23,27,5,0.5,1 24 | 96,68,18,19,19,0.5,1 25 | 84,80,47,33,97,0.5,1 26 | 92,70,24,13,26,0.5,1 27 | 90,47,28,15,18,0.5,1 28 | 88,66,20,21,10,0.5,1 29 | 91,102,17,13,19,0.5,1 30 | 87,41,31,19,16,0.5,1 31 | 86,79,28,16,17,0.5,1 32 | 91,57,31,23,42,0.5,1 33 | 93,77,32,18,29,0.5,1 34 | 88,96,28,21,40,0.5,1 35 | 94,65,22,18,11,0.5,1 36 | 91,72,155,68,82,0.5,2 37 | 85,54,47,33,22,0.5,2 38 | 79,39,14,19,9,0.5,2 39 | 85,85,25,26,30,0.5,2 40 | 89,63,24,20,38,0.5,2 41 | 84,92,68,37,44,0.5,2 42 | 89,68,26,39,42,0.5,2 43 | 89,101,18,25,13,0.5,2 44 | 86,84,18,14,16,0.5,2 45 | 85,65,25,14,18,0.5,2 46 | 88,61,19,21,13,0.5,2 47 | 92,56,14,16,10,0.5,2 48 | 95,50,29,25,50,0.5,2 49 | 91,75,24,22,11,0.5,2 50 | 83,40,29,25,38,0.5,2 51 | 89,74,19,23,16,0.5,2 52 | 85,64,24,22,11,0.5,2 53 | 92,57,64,36,90,0.5,2 54 | 94,48,11,23,43,0.5,2 55 | 87,52,21,19,30,0.5,2 56 | 85,65,23,29,15,0.5,2 57 | 84,82,21,21,19,0.5,2 58 | 88,49,20,22,19,0.5,2 59 | 96,67,26,26,36,0.5,2 60 | 90,63,24,24,24,0.5,2 61 | 90,45,33,34,27,0.5,2 62 | 90,72,14,15,18,0.5,2 63 | 91,55,4,8,13,0.5,2 64 | 91,52,15,22,11,0.5,2 65 | 87,71,32,19,27,1.0,1 66 | 89,77,26,20,19,1.0,1 67 | 89,67,5,17,14,1.0,2 68 | 85,51,26,24,23,1.0,2 69 | 103,75,19,30,13,1.0,2 70 | 90,63,16,21,14,1.0,2 71 | 90,63,29,23,57,2.0,1 72 | 90,67,35,19,35,2.0,1 73 | 87,66,27,22,9,2.0,1 74 | 90,73,34,21,22,2.0,1 75 | 86,54,20,21,16,2.0,1 76 | 90,80,19,14,42,2.0,1 77 | 87,90,43,28,156,2.0,2 78 | 96,72,28,19,30,2.0,2 79 | 91,55,9,25,16,2.0,2 80 | 95,78,27,25,30,2.0,2 81 | 92,101,34,30,64,2.0,2 82 | 89,51,41,22,48,2.0,2 83 | 91,99,42,33,16,2.0,2 84 | 94,58,21,18,26,2.0,2 85 | 92,60,30,27,297,2.0,2 86 | 94,58,21,18,26,2.0,2 87 | 88,47,33,26,29,2.0,2 88 | 92,65,17,25,9,2.0,2 89 | 92,79,22,20,11,3.0,1 90 | 84,83,20,25,7,3.0,1 91 | 88,68,27,21,26,3.0,1 92 | 86,48,20,20,6,3.0,1 93 | 99,69,45,32,30,3.0,1 94 | 88,66,23,12,15,3.0,1 95 | 89,62,42,30,20,3.0,1 96 | 90,51,23,17,27,3.0,1 97 | 81,61,32,37,53,3.0,2 98 | 89,89,23,18,104,3.0,2 99 | 89,65,26,18,36,3.0,2 100 | 92,75,26,26,24,3.0,2 101 | 85,59,25,20,25,3.0,2 102 | 92,61,18,13,81,3.0,2 103 | 89,63,22,27,10,4.0,1 104 | 90,84,18,23,13,4.0,1 105 | 88,95,25,19,14,4.0,1 106 | 89,35,27,29,17,4.0,1 107 | 91,80,37,23,27,4.0,1 108 | 91,109,33,15,18,4.0,1 109 | 91,65,17,5,7,4.0,1 110 | 88,107,29,20,50,4.0,2 111 | 87,76,22,55,9,4.0,2 112 | 87,86,28,23,21,4.0,2 113 | 87,42,26,23,17,4.0,2 114 | 88,80,24,25,17,4.0,2 115 | 90,96,34,49,169,4.0,2 116 | 86,67,11,15,8,4.0,2 117 | 92,40,19,20,21,4.0,2 118 | 85,60,17,21,14,4.0,2 119 | 89,90,15,17,25,4.0,2 120 | 91,57,15,16,16,4.0,2 121 | 96,55,48,39,42,4.0,2 122 | 79,101,17,27,23,4.0,2 123 | 90,134,14,20,14,4.0,2 124 | 89,76,14,21,24,4.0,2 125 | 88,93,29,27,31,4.0,2 126 | 90,67,10,16,16,4.0,2 127 | 92,73,24,21,48,4.0,2 128 | 91,55,28,28,82,4.0,2 129 | 83,45,19,21,13,4.0,2 130 | 90,74,19,14,22,4.0,2 131 | 92,66,21,16,33,5.0,1 132 | 93,63,26,18,18,5.0,1 133 | 86,78,47,39,107,5.0,2 134 | 97,44,113,45,150,5.0,2 135 | 87,59,15,19,12,5.0,2 136 | 86,44,21,11,15,5.0,2 137 | 87,64,16,20,24,5.0,2 138 | 92,57,21,23,22,5.0,2 139 | 90,70,25,23,112,5.0,2 140 | 99,59,17,19,11,5.0,2 141 | 92,80,10,26,20,6.0,1 142 | 95,60,26,22,28,6.0,1 143 | 91,63,25,26,15,6.0,1 144 | 92,62,37,21,36,6.0,1 145 | 95,50,13,14,15,6.0,1 146 | 90,76,37,19,50,6.0,1 147 | 96,70,70,26,36,6.0,1 148 | 95,62,64,42,76,6.0,1 149 | 92,62,20,23,20,6.0,1 150 | 91,63,25,26,15,6.0,1 151 | 82,56,67,38,92,6.0,2 152 | 92,82,27,24,37,6.0,2 153 | 90,63,12,26,21,6.0,2 154 | 88,37,9,15,16,6.0,2 155 | 100,60,29,23,76,6.0,2 156 | 98,43,35,23,69,6.0,2 157 | 91,74,87,50,67,6.0,2 158 | 92,87,57,25,44,6.0,2 159 | 93,99,36,34,48,6.0,2 160 | 90,72,17,19,19,6.0,2 161 | 97,93,21,20,68,6.0,2 162 | 93,50,18,25,17,6.0,2 163 | 90,57,20,26,33,6.0,2 164 | 92,76,31,28,41,6.0,2 165 | 88,55,19,17,14,6.0,2 166 | 89,63,24,29,29,6.0,2 167 | 92,79,70,32,84,7.0,1 168 | 92,93,58,35,120,7.0,1 169 | 93,84,58,47,62,7.0,2 170 | 97,71,29,22,52,8.0,1 171 | 84,99,33,19,26,8.0,1 172 | 96,44,42,23,73,8.0,1 173 | 90,62,22,21,21,8.0,1 174 | 92,94,18,17,6,8.0,1 175 | 90,67,77,39,114,8.0,1 176 | 97,71,29,22,52,8.0,1 177 | 91,69,25,25,66,8.0,2 178 | 93,59,17,20,14,8.0,2 179 | 92,95,85,48,200,8.0,2 180 | 90,50,26,22,53,8.0,2 181 | 91,62,59,47,60,8.0,2 182 | 92,93,22,28,123,9.0,1 183 | 92,77,86,41,31,10.0,1 184 | 86,66,22,24,26,10.0,2 185 | 98,57,31,34,73,10.0,2 186 | 95,80,50,64,55,10.0,2 187 | 92,108,53,33,94,12.0,2 188 | 97,92,22,28,49,12.0,2 189 | 93,77,39,37,108,16.0,1 190 | 94,83,81,34,201,20.0,1 191 | 87,75,25,21,14,0.0,1 192 | 88,56,23,18,12,0.0,1 193 | 84,97,41,20,32,0.0,2 194 | 94,91,27,20,15,0.5,1 195 | 97,62,17,13,5,0.5,1 196 | 92,85,25,20,12,0.5,1 197 | 82,48,27,15,12,0.5,1 198 | 88,74,31,25,15,0.5,1 199 | 95,77,30,14,21,0.5,1 200 | 88,94,26,18,8,0.5,1 201 | 91,70,19,19,22,0.5,1 202 | 83,54,27,15,12,0.5,1 203 | 91,105,40,26,56,0.5,1 204 | 86,79,37,28,14,0.5,1 205 | 91,96,35,22,135,0.5,1 206 | 89,82,23,14,35,0.5,1 207 | 90,73,24,23,11,0.5,1 208 | 90,87,19,25,19,0.5,1 209 | 89,82,33,32,18,0.5,1 210 | 85,79,17,8,9,0.5,1 211 | 85,119,30,26,17,0.5,1 212 | 78,69,24,18,31,0.5,1 213 | 88,107,34,21,27,0.5,1 214 | 89,115,17,27,7,0.5,1 215 | 92,67,23,15,12,0.5,1 216 | 89,101,27,34,14,0.5,1 217 | 91,84,11,12,10,0.5,1 218 | 94,101,41,20,53,0.5,2 219 | 88,46,29,22,18,0.5,2 220 | 88,122,35,29,42,0.5,2 221 | 84,88,28,25,35,0.5,2 222 | 90,79,18,15,24,0.5,2 223 | 87,69,22,26,11,0.5,2 224 | 65,63,19,20,14,0.5,2 225 | 90,64,12,17,14,0.5,2 226 | 85,58,18,24,16,0.5,2 227 | 88,81,41,27,36,0.5,2 228 | 86,78,52,29,62,0.5,2 229 | 82,74,38,28,48,0.5,2 230 | 86,58,36,27,59,0.5,2 231 | 94,56,30,18,27,0.5,2 232 | 87,57,30,30,22,0.5,2 233 | 98,74,148,75,159,0.5,2 234 | 94,75,20,25,38,0.5,2 235 | 83,68,17,20,71,0.5,2 236 | 93,56,25,21,33,0.5,2 237 | 101,65,18,21,22,0.5,2 238 | 92,65,25,20,31,0.5,2 239 | 92,58,14,16,13,0.5,2 240 | 86,58,16,23,23,0.5,2 241 | 85,62,15,13,22,0.5,2 242 | 86,57,13,20,13,0.5,2 243 | 86,54,26,30,13,0.5,2 244 | 81,41,33,27,34,1.0,1 245 | 91,67,32,26,13,1.0,1 246 | 91,80,21,19,14,1.0,1 247 | 92,60,23,15,19,1.0,1 248 | 91,60,32,14,8,1.0,1 249 | 93,65,28,22,10,1.0,1 250 | 90,63,45,24,85,1.0,2 251 | 87,92,21,22,37,1.0,2 252 | 83,78,31,19,115,1.0,2 253 | 95,62,24,23,14,1.0,2 254 | 93,59,41,30,48,1.0,2 255 | 84,82,43,32,38,2.0,1 256 | 87,71,33,20,22,2.0,1 257 | 86,44,24,15,18,2.0,1 258 | 86,66,28,24,21,2.0,1 259 | 88,58,31,17,17,2.0,1 260 | 90,61,28,29,31,2.0,1 261 | 88,69,70,24,64,2.0,1 262 | 93,87,18,17,26,2.0,1 263 | 98,58,33,21,28,2.0,1 264 | 91,44,18,18,23,2.0,2 265 | 87,75,37,19,70,2.0,2 266 | 94,91,30,26,25,2.0,2 267 | 88,85,14,15,10,2.0,2 268 | 89,109,26,25,27,2.0,2 269 | 87,59,37,27,34,2.0,2 270 | 93,58,20,23,18,2.0,2 271 | 88,57,9,15,16,2.0,2 272 | 94,65,38,27,17,3.0,1 273 | 91,71,12,22,11,3.0,1 274 | 90,55,20,20,16,3.0,1 275 | 91,64,21,17,26,3.0,2 276 | 88,47,35,26,33,3.0,2 277 | 82,72,31,20,84,3.0,2 278 | 85,58,83,49,51,3.0,2 279 | 91,54,25,22,35,4.0,1 280 | 98,50,27,25,53,4.0,2 281 | 86,62,29,21,26,4.0,2 282 | 89,48,32,22,14,4.0,2 283 | 82,68,20,22,9,4.0,2 284 | 83,70,17,19,23,4.0,2 285 | 96,70,21,26,21,4.0,2 286 | 94,117,77,56,52,4.0,2 287 | 93,45,11,14,21,4.0,2 288 | 93,49,27,21,29,4.0,2 289 | 84,73,46,32,39,4.0,2 290 | 91,63,17,17,46,4.0,2 291 | 90,57,31,18,37,4.0,2 292 | 87,45,19,13,16,4.0,2 293 | 91,68,14,20,19,4.0,2 294 | 86,55,29,35,108,4.0,2 295 | 91,86,52,47,52,4.0,2 296 | 88,46,15,33,55,4.0,2 297 | 85,52,22,23,34,4.0,2 298 | 89,72,33,27,55,4.0,2 299 | 95,59,23,18,19,4.0,2 300 | 94,43,154,82,121,4.0,2 301 | 96,56,38,26,23,5.0,2 302 | 90,52,10,17,12,5.0,2 303 | 94,45,20,16,12,5.0,2 304 | 99,42,14,21,49,5.0,2 305 | 93,102,47,23,37,5.0,2 306 | 94,71,25,26,31,5.0,2 307 | 92,73,33,34,115,5.0,2 308 | 87,54,41,29,23,6.0,1 309 | 92,67,15,14,14,6.0,1 310 | 98,101,31,26,32,6.0,1 311 | 92,53,51,33,92,6.0,1 312 | 97,94,43,43,82,6.0,1 313 | 93,43,11,16,54,6.0,1 314 | 93,68,24,18,19,6.0,1 315 | 95,36,38,19,15,6.0,1 316 | 99,86,58,42,203,6.0,1 317 | 98,66,103,57,114,6.0,1 318 | 92,80,10,26,20,6.0,1 319 | 96,74,27,25,43,6.0,2 320 | 95,93,21,27,47,6.0,2 321 | 86,109,16,22,28,6.0,2 322 | 91,46,30,24,39,7.0,2 323 | 102,82,34,78,203,7.0,2 324 | 85,50,12,18,14,7.0,2 325 | 91,57,33,23,12,8.0,1 326 | 91,52,76,32,24,8.0,1 327 | 93,70,46,30,33,8.0,1 328 | 87,55,36,19,25,8.0,1 329 | 98,123,28,24,31,8.0,1 330 | 82,55,18,23,44,8.0,2 331 | 95,73,20,25,225,8.0,2 332 | 97,80,17,20,53,8.0,2 333 | 100,83,25,24,28,8.0,2 334 | 88,91,56,35,126,9.0,2 335 | 91,138,45,21,48,10.0,1 336 | 92,41,37,22,37,10.0,1 337 | 86,123,20,25,23,10.0,2 338 | 91,93,35,34,37,10.0,2 339 | 87,87,15,23,11,10.0,2 340 | 87,56,52,43,55,10.0,2 341 | 99,75,26,24,41,12.0,1 342 | 96,69,53,43,203,12.0,2 343 | 98,77,55,35,89,15.0,1 344 | 91,68,27,26,14,16.0,1 345 | 98,99,57,45,65,20.0,1 -------------------------------------------------------------------------------- /EvoCluster/_cluster_detection.py: -------------------------------------------------------------------------------- 1 | ''' 2 | ref: https://jtemporal.com/kmeans-and-elbow-method/ 3 | ref: https://medium.com/@masarudheena/4-best-ways-to-find-optimal-number-of-clusters-for-clustering-with-python-code-706199fa957c 4 | ref: https://github.com/minddrummer/gap/edit/master/gap/gap.py 5 | ref: https://www.tandfonline.com/doi/pdf/10.1080/03610927408827101 6 | ref: https://www.sciencedirect.com/science/article/pii/S0952197618300629?casa_token=W6QEUM7YA2cAAAAA:jtbAvDYF8axr8ghhr92aCnhXJ71wtCJ1tEZFHAjBUBbLrbJ8wdLHG0d4HIhDN5ICZJmrEGQ71vQ 7 | ref: https://github.com/tirthajyoti/Machine-Learning-with-Python/blob/master/Clustering-Dimensionality-Reduction/Clustering_metrics.ipynb 8 | ''' 9 | 10 | from sklearn.cluster import KMeans 11 | from sklearn.mixture import GaussianMixture 12 | from math import sqrt 13 | from sklearn import metrics 14 | import numpy as np 15 | import random 16 | import pandas as pd 17 | import scipy 18 | import sys 19 | 20 | def min_clusters(points): 21 | k_list = all_methods(points) 22 | return min(k_list) 23 | 24 | def max_clusters(points): 25 | k_list = all_methods(points) 26 | return max(k_list) 27 | 28 | def median_clusters(points): 29 | k_list = all_methods(points) 30 | return int(np.median(np.array(k_list))) 31 | 32 | def majority_clusters(points): 33 | k_list = all_methods(points) 34 | return max(set(k_list), key = k_list.count) 35 | 36 | def all_methods(points): 37 | k_list = [0] * 6 38 | k_list[0] = ELBOW(points) 39 | k_list[1] = GAP_STATISTICS(points) 40 | k_list[2] = SC(points) 41 | k_list[3] = CH(points) 42 | k_list[4] = DB(points) 43 | k_list[5] = BIC(points) 44 | return k_list 45 | 46 | 47 | ### Calinski-Harabasz Index 48 | def CH(data): 49 | ch_max = 0 50 | ch_max_clusters = 2 51 | for n_clusters in range(2,10): 52 | model = KMeans(n_clusters = n_clusters) 53 | labels = model.fit_predict(data) 54 | ch_score = metrics.calinski_harabaz_score(data, labels) 55 | if ch_score > ch_max: 56 | ch_max = ch_score 57 | ch_max_clusters = n_clusters 58 | return ch_max_clusters 59 | ### END Calinski-Harabasz Index 60 | 61 | 62 | ### silhouette score 63 | def SC(data): 64 | sil_max = 0 65 | sil_max_clusters = 2 66 | for n_clusters in range(2,10): 67 | model = KMeans(n_clusters = n_clusters) 68 | labels = model.fit_predict(data) 69 | sil_score = metrics.silhouette_score(data, labels) 70 | if sil_score > sil_max: 71 | sil_max = sil_score 72 | sil_max_clusters = n_clusters 73 | return sil_max_clusters 74 | ### END silhouette score 75 | 76 | ### DB score 77 | def DB(data): 78 | db_min = sys.float_info.max 79 | db_min_clusters = 2 80 | for n_clusters in range(2,10): 81 | model = KMeans(n_clusters = n_clusters) 82 | labels = model.fit_predict(data) 83 | db_score = metrics.davies_bouldin_score(data, labels) 84 | if db_score < db_min: 85 | db_min = db_score 86 | db_min_clusters = n_clusters 87 | return db_min_clusters 88 | ### END DB score 89 | 90 | ### Bayesian Information Criterion 91 | def BIC(data): 92 | bic_max = 0 93 | bic_max_clusters = 2 94 | for n_clusters in range(2,10): 95 | gm = GaussianMixture(n_components=n_clusters,n_init=10,tol=1e-3,max_iter=1000).fit(data) 96 | bic_score = -gm.bic(data) 97 | if bic_score > bic_max: 98 | bic_max = bic_score 99 | bic_max_clusters = n_clusters 100 | return bic_max_clusters 101 | ### END Bayesian Information Criterion 102 | 103 | 104 | ### ELBOW 105 | def ELBOW(data): 106 | wcss = calculate_wcss(data) 107 | n_clusters = optimal_number_of_clusters(wcss) 108 | return n_clusters 109 | 110 | def optimal_number_of_clusters(wcss): 111 | x1, y1 = 2, wcss[0] 112 | x2, y2 = 20, wcss[len(wcss)-1] 113 | 114 | distances = [] 115 | for i in range(len(wcss)): 116 | x0 = i+2 117 | y0 = wcss[i] 118 | numerator = abs((y2-y1)*x0 - (x2-x1)*y0 + x2*y1 - y2*x1) 119 | denominator = sqrt((y2 - y1)**2 + (x2 - x1)**2) 120 | distances.append(numerator/denominator) 121 | 122 | return distances.index(max(distances)) + 2 123 | 124 | def calculate_wcss(data): 125 | wcss = [] 126 | for n in range(2, 10): 127 | kmeans = KMeans(n_clusters=n) 128 | kmeans.fit(X=data) 129 | wcss.append(kmeans.inertia_) 130 | return wcss 131 | ### END ELBOW 132 | 133 | ### gap statistics 134 | def GAP_STATISTICS(data): 135 | gaps, s_k, K = gap_statistic(data, refs=None, B=10, K=range(1,11), N_init = 10) 136 | bestKValue = find_optimal_k(gaps, s_k, K) 137 | 138 | return bestKValue 139 | 140 | def short_pair_wise_D(each_cluster): 141 | ''' 142 | this function computes the sum of the pairwise distance(repeatedly) of all points in one cluster; 143 | each pair be counting twice here; using the short formula below instead of the original meaning of pairwise distance of all points 144 | 145 | each_cluster: np.array, with containing all points' info within the array 146 | ''' 147 | mu = each_cluster.mean(axis = 0) 148 | total = sum(sum((each_cluster - mu)**2)) * 2.0 * each_cluster.shape[0] 149 | return total 150 | 151 | def compute_Wk(data, classfication_result): 152 | ''' 153 | this function computes the Wk after each clustering 154 | 155 | data:np.array, containing all the data 156 | classfication_result: np.array, containing all the clustering results for all the data 157 | ''' 158 | Wk = 0 159 | label_set = set(classfication_result.tolist()) 160 | for label in label_set: 161 | each_cluster = data[classfication_result == label, :] 162 | D = short_pair_wise_D(each_cluster) 163 | Wk = Wk + D/(2.0*each_cluster.shape[0]) 164 | return Wk 165 | 166 | def gap_statistic(X, refs=None, B=10, K=range(2,11), N_init = 10): 167 | ''' 168 | this function first generates B reference samples; for each sample, the sample size is the same as the original datasets; 169 | the value for each reference sample follows a uniform distribution for the range of each feature of the original datasets; 170 | using a simplify formula to compute the D of each cluster, and then the Wk; K should be a increment list, 1-10 is fair enough; 171 | the B value is about the number of replicated samples to run gap-statistics, it is recommended as 10, and it should not be changed/decreased that to a smaller value; 172 | 173 | X: np.array, the original data; 174 | refs: np.array or None, it is the replicated data that you want to compare with if there exists one; if no existing replicated/proper data, just use None, and the function 175 | will automatically generates them; 176 | B: int, the number of replicated samples to run gap-statistics; it is recommended as 10, and it should not be changed/decreased that to a smaller value; 177 | K: list type, the range of K values to test on; 178 | N_init: int, states the number of initial starting points for each K-mean running under sklearn, in order to get stable clustering result each time; 179 | you may not need such many starting points, so it can be reduced to a smaller number to fasten the computation; 180 | n_jobs below is not an argument for this function,but it clarifies the parallel computing, could fasten the computation, this can be only changed inside the script, not as an argument of the function; 181 | ''' 182 | shape = X.shape 183 | if refs==None: 184 | tops = X.max(axis=0) 185 | bots = X.min(axis=0) 186 | dists = scipy.matrix(scipy.diag(tops-bots)) 187 | rands = scipy.random.random_sample(size=(shape[0],shape[1],B)) 188 | for i in range(B): 189 | rands[:,:,i] = rands[:,:,i]*dists+bots 190 | else: 191 | rands = refs 192 | 193 | gaps = np.zeros(len(K)) 194 | Wks = np.zeros(len(K)) 195 | Wkbs = np.zeros((len(K),B)) 196 | 197 | for indk, k in enumerate(K): 198 | # #setup the kmean clustering instance 199 | #n_jobs set up for parallel:1 mean No Para-computing; -1 mean all parallel computing 200 | #n_init is the number of times each Kmeans running to get stable clustering results under each K value 201 | k_means = KMeans(n_clusters=k, init='k-means++', n_init=N_init, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1) 202 | k_means.fit(X) 203 | classfication_result = k_means.labels_ 204 | #compute the Wk for the classification result 205 | Wks[indk] = compute_Wk(X,classfication_result) 206 | 207 | # clustering on B reference datasets for each 'k' 208 | for i in range(B): 209 | Xb = rands[:,:,i] 210 | k_means.fit(Xb) 211 | classfication_result_b = k_means.labels_ 212 | Wkbs[indk,i] = compute_Wk(Xb,classfication_result_b) 213 | 214 | #compute gaps and sk 215 | gaps = (np.log(Wkbs)).mean(axis = 1) - np.log(Wks) 216 | sd_ks = np.std(np.log(Wkbs), axis=1) 217 | sk = sd_ks*np.sqrt(1+1.0/B) 218 | return gaps, sk, K 219 | 220 | def find_optimal_k(gaps, s_k, K): 221 | ''' 222 | this function is finding the best K value given the computed results of gap-statistics 223 | 224 | gaps: np.array, containing all the gap-statistics results; 225 | s_k: float, the baseline value to minus with; say reference paper for detailed meaning; 226 | K: list, containing all the tested K values; 227 | ''' 228 | gaps_thres = gaps - s_k 229 | below_or_above = (gaps[0:-1] >= gaps_thres[1:]) 230 | if below_or_above.any(): 231 | optimal_k = K[below_or_above.argmax()] 232 | else: 233 | optimal_k = K[-1] 234 | return optimal_k 235 | 236 | ### END gap statistics -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/seeds.csv: -------------------------------------------------------------------------------- 1 | 15.26,14.84,0.871,5.763,3.312,2.221,5.22 2 | 14.88,14.57,0.8811,5.554,3.333,1.018,4.956 3 | 14.29,14.09,0.905,5.291,3.337,2.699,4.825 4 | 13.84,13.94,0.8955,5.324,3.379,2.259,4.805 5 | 16.14,14.99,0.9034,5.658,3.562,1.355,5.175 6 | 14.38,14.21,0.8951,5.386,3.312,2.462,4.956 7 | 14.69,14.49,0.8799,5.563,3.259,3.586,5.219 8 | 14.11,14.1,0.8911,5.42,3.302,2.7,5 9 | 16.63,15.46,0.8747,6.053,3.465,2.04,5.877 10 | 16.44,15.25,0.888,5.884,3.505,1.969,5.533 11 | 15.26,14.85,0.8696,5.714,3.242,4.543,5.314 12 | 14.03,14.16,0.8796,5.438,3.201,1.717,5.001 13 | 13.89,14.02,0.888,5.439,3.199,3.986,4.738 14 | 13.78,14.06,0.8759,5.479,3.156,3.136,4.872 15 | 13.74,14.05,0.8744,5.482,3.114,2.932,4.825 16 | 14.59,14.28,0.8993,5.351,3.333,4.185,4.781 17 | 13.99,13.83,0.9183,5.119,3.383,5.234,4.781 18 | 15.69,14.75,0.9058,5.527,3.514,1.599,5.046 19 | 14.7,14.21,0.9153,5.205,3.466,1.767,4.649 20 | 12.72,13.57,0.8686,5.226,3.049,4.102,4.914 21 | 14.16,14.4,0.8584,5.658,3.129,3.072,5.176 22 | 14.11,14.26,0.8722,5.52,3.168,2.688,5.219 23 | 15.88,14.9,0.8988,5.618,3.507,0.7651,5.091 24 | 12.08,13.23,0.8664,5.099,2.936,1.415,4.961 25 | 15.01,14.76,0.8657,5.789,3.245,1.791,5.001 26 | 16.19,15.16,0.8849,5.833,3.421,0.903,5.307 27 | 13.02,13.76,0.8641,5.395,3.026,3.373,4.825 28 | 12.74,13.67,0.8564,5.395,2.956,2.504,4.869 29 | 14.11,14.18,0.882,5.541,3.221,2.754,5.038 30 | 13.45,14.02,0.8604,5.516,3.065,3.531,5.097 31 | 13.16,13.82,0.8662,5.454,2.975,0.8551,5.056 32 | 15.49,14.94,0.8724,5.757,3.371,3.412,5.228 33 | 14.09,14.41,0.8529,5.717,3.186,3.92,5.299 34 | 13.94,14.17,0.8728,5.585,3.15,2.124,5.012 35 | 15.05,14.68,0.8779,5.712,3.328,2.129,5.36 36 | 16.12,15,0.9,5.709,3.485,2.27,5.443 37 | 16.2,15.27,0.8734,5.826,3.464,2.823,5.527 38 | 17.08,15.38,0.9079,5.832,3.683,2.956,5.484 39 | 14.8,14.52,0.8823,5.656,3.288,3.112,5.309 40 | 14.28,14.17,0.8944,5.397,3.298,6.685,5.001 41 | 13.54,13.85,0.8871,5.348,3.156,2.587,5.178 42 | 13.5,13.85,0.8852,5.351,3.158,2.249,5.176 43 | 13.16,13.55,0.9009,5.138,3.201,2.461,4.783 44 | 15.5,14.86,0.882,5.877,3.396,4.711,5.528 45 | 15.11,14.54,0.8986,5.579,3.462,3.128,5.18 46 | 13.8,14.04,0.8794,5.376,3.155,1.56,4.961 47 | 15.36,14.76,0.8861,5.701,3.393,1.367,5.132 48 | 14.99,14.56,0.8883,5.57,3.377,2.958,5.175 49 | 14.79,14.52,0.8819,5.545,3.291,2.704,5.111 50 | 14.86,14.67,0.8676,5.678,3.258,2.129,5.351 51 | 14.43,14.4,0.8751,5.585,3.272,3.975,5.144 52 | 15.78,14.91,0.8923,5.674,3.434,5.593,5.136 53 | 14.49,14.61,0.8538,5.715,3.113,4.116,5.396 54 | 14.33,14.28,0.8831,5.504,3.199,3.328,5.224 55 | 14.52,14.6,0.8557,5.741,3.113,1.481,5.487 56 | 15.03,14.77,0.8658,5.702,3.212,1.933,5.439 57 | 14.46,14.35,0.8818,5.388,3.377,2.802,5.044 58 | 14.92,14.43,0.9006,5.384,3.412,1.142,5.088 59 | 15.38,14.77,0.8857,5.662,3.419,1.999,5.222 60 | 12.11,13.47,0.8392,5.159,3.032,1.502,4.519 61 | 11.42,12.86,0.8683,5.008,2.85,2.7,4.607 62 | 11.23,12.63,0.884,4.902,2.879,2.269,4.703 63 | 12.36,13.19,0.8923,5.076,3.042,3.22,4.605 64 | 13.22,13.84,0.868,5.395,3.07,4.157,5.088 65 | 12.78,13.57,0.8716,5.262,3.026,1.176,4.782 66 | 12.88,13.5,0.8879,5.139,3.119,2.352,4.607 67 | 14.34,14.37,0.8726,5.63,3.19,1.313,5.15 68 | 14.01,14.29,0.8625,5.609,3.158,2.217,5.132 69 | 14.37,14.39,0.8726,5.569,3.153,1.464,5.3 70 | 12.73,13.75,0.8458,5.412,2.882,3.533,5.067 71 | 17.63,15.98,0.8673,6.191,3.561,4.076,6.06 72 | 16.84,15.67,0.8623,5.998,3.484,4.675,5.877 73 | 17.26,15.73,0.8763,5.978,3.594,4.539,5.791 74 | 19.11,16.26,0.9081,6.154,3.93,2.936,6.079 75 | 16.82,15.51,0.8786,6.017,3.486,4.004,5.841 76 | 16.77,15.62,0.8638,5.927,3.438,4.92,5.795 77 | 17.32,15.91,0.8599,6.064,3.403,3.824,5.922 78 | 20.71,17.23,0.8763,6.579,3.814,4.451,6.451 79 | 18.94,16.49,0.875,6.445,3.639,5.064,6.362 80 | 17.12,15.55,0.8892,5.85,3.566,2.858,5.746 81 | 16.53,15.34,0.8823,5.875,3.467,5.532,5.88 82 | 18.72,16.19,0.8977,6.006,3.857,5.324,5.879 83 | 20.2,16.89,0.8894,6.285,3.864,5.173,6.187 84 | 19.57,16.74,0.8779,6.384,3.772,1.472,6.273 85 | 19.51,16.71,0.878,6.366,3.801,2.962,6.185 86 | 18.27,16.09,0.887,6.173,3.651,2.443,6.197 87 | 18.88,16.26,0.8969,6.084,3.764,1.649,6.109 88 | 18.98,16.66,0.859,6.549,3.67,3.691,6.498 89 | 21.18,17.21,0.8989,6.573,4.033,5.78,6.231 90 | 20.88,17.05,0.9031,6.45,4.032,5.016,6.321 91 | 20.1,16.99,0.8746,6.581,3.785,1.955,6.449 92 | 18.76,16.2,0.8984,6.172,3.796,3.12,6.053 93 | 18.81,16.29,0.8906,6.272,3.693,3.237,6.053 94 | 18.59,16.05,0.9066,6.037,3.86,6.001,5.877 95 | 18.36,16.52,0.8452,6.666,3.485,4.933,6.448 96 | 16.87,15.65,0.8648,6.139,3.463,3.696,5.967 97 | 19.31,16.59,0.8815,6.341,3.81,3.477,6.238 98 | 18.98,16.57,0.8687,6.449,3.552,2.144,6.453 99 | 18.17,16.26,0.8637,6.271,3.512,2.853,6.273 100 | 18.72,16.34,0.881,6.219,3.684,2.188,6.097 101 | 16.41,15.25,0.8866,5.718,3.525,4.217,5.618 102 | 17.99,15.86,0.8992,5.89,3.694,2.068,5.837 103 | 19.46,16.5,0.8985,6.113,3.892,4.308,6.009 104 | 19.18,16.63,0.8717,6.369,3.681,3.357,6.229 105 | 18.95,16.42,0.8829,6.248,3.755,3.368,6.148 106 | 18.83,16.29,0.8917,6.037,3.786,2.553,5.879 107 | 18.85,16.17,0.9056,6.152,3.806,2.843,6.2 108 | 17.63,15.86,0.88,6.033,3.573,3.747,5.929 109 | 19.94,16.92,0.8752,6.675,3.763,3.252,6.55 110 | 18.55,16.22,0.8865,6.153,3.674,1.738,5.894 111 | 18.45,16.12,0.8921,6.107,3.769,2.235,5.794 112 | 19.38,16.72,0.8716,6.303,3.791,3.678,5.965 113 | 19.13,16.31,0.9035,6.183,3.902,2.109,5.924 114 | 19.14,16.61,0.8722,6.259,3.737,6.682,6.053 115 | 20.97,17.25,0.8859,6.563,3.991,4.677,6.316 116 | 19.06,16.45,0.8854,6.416,3.719,2.248,6.163 117 | 18.96,16.2,0.9077,6.051,3.897,4.334,5.75 118 | 19.15,16.45,0.889,6.245,3.815,3.084,6.185 119 | 18.89,16.23,0.9008,6.227,3.769,3.639,5.966 120 | 20.03,16.9,0.8811,6.493,3.857,3.063,6.32 121 | 20.24,16.91,0.8897,6.315,3.962,5.901,6.188 122 | 18.14,16.12,0.8772,6.059,3.563,3.619,6.011 123 | 16.17,15.38,0.8588,5.762,3.387,4.286,5.703 124 | 18.43,15.97,0.9077,5.98,3.771,2.984,5.905 125 | 15.99,14.89,0.9064,5.363,3.582,3.336,5.144 126 | 18.75,16.18,0.8999,6.111,3.869,4.188,5.992 127 | 18.65,16.41,0.8698,6.285,3.594,4.391,6.102 128 | 17.98,15.85,0.8993,5.979,3.687,2.257,5.919 129 | 20.16,17.03,0.8735,6.513,3.773,1.91,6.185 130 | 17.55,15.66,0.8991,5.791,3.69,5.366,5.661 131 | 18.3,15.89,0.9108,5.979,3.755,2.837,5.962 132 | 18.94,16.32,0.8942,6.144,3.825,2.908,5.949 133 | 15.38,14.9,0.8706,5.884,3.268,4.462,5.795 134 | 16.16,15.33,0.8644,5.845,3.395,4.266,5.795 135 | 15.56,14.89,0.8823,5.776,3.408,4.972,5.847 136 | 15.38,14.66,0.899,5.477,3.465,3.6,5.439 137 | 17.36,15.76,0.8785,6.145,3.574,3.526,5.971 138 | 15.57,15.15,0.8527,5.92,3.231,2.64,5.879 139 | 15.6,15.11,0.858,5.832,3.286,2.725,5.752 140 | 16.23,15.18,0.885,5.872,3.472,3.769,5.922 141 | 13.07,13.92,0.848,5.472,2.994,5.304,5.395 142 | 13.32,13.94,0.8613,5.541,3.073,7.035,5.44 143 | 13.34,13.95,0.862,5.389,3.074,5.995,5.307 144 | 12.22,13.32,0.8652,5.224,2.967,5.469,5.221 145 | 11.82,13.4,0.8274,5.314,2.777,4.471,5.178 146 | 11.21,13.13,0.8167,5.279,2.687,6.169,5.275 147 | 11.43,13.13,0.8335,5.176,2.719,2.221,5.132 148 | 12.49,13.46,0.8658,5.267,2.967,4.421,5.002 149 | 12.7,13.71,0.8491,5.386,2.911,3.26,5.316 150 | 10.79,12.93,0.8107,5.317,2.648,5.462,5.194 151 | 11.83,13.23,0.8496,5.263,2.84,5.195,5.307 152 | 12.01,13.52,0.8249,5.405,2.776,6.992,5.27 153 | 12.26,13.6,0.8333,5.408,2.833,4.756,5.36 154 | 11.18,13.04,0.8266,5.22,2.693,3.332,5.001 155 | 11.36,13.05,0.8382,5.175,2.755,4.048,5.263 156 | 11.19,13.05,0.8253,5.25,2.675,5.813,5.219 157 | 11.34,12.87,0.8596,5.053,2.849,3.347,5.003 158 | 12.13,13.73,0.8081,5.394,2.745,4.825,5.22 159 | 11.75,13.52,0.8082,5.444,2.678,4.378,5.31 160 | 11.49,13.22,0.8263,5.304,2.695,5.388,5.31 161 | 12.54,13.67,0.8425,5.451,2.879,3.082,5.491 162 | 12.02,13.33,0.8503,5.35,2.81,4.271,5.308 163 | 12.05,13.41,0.8416,5.267,2.847,4.988,5.046 164 | 12.55,13.57,0.8558,5.333,2.968,4.419,5.176 165 | 11.14,12.79,0.8558,5.011,2.794,6.388,5.049 166 | 12.1,13.15,0.8793,5.105,2.941,2.201,5.056 167 | 12.44,13.59,0.8462,5.319,2.897,4.924,5.27 168 | 12.15,13.45,0.8443,5.417,2.837,3.638,5.338 169 | 11.35,13.12,0.8291,5.176,2.668,4.337,5.132 170 | 11.24,13,0.8359,5.09,2.715,3.521,5.088 171 | 11.02,13,0.8189,5.325,2.701,6.735,5.163 172 | 11.55,13.1,0.8455,5.167,2.845,6.715,4.956 173 | 11.27,12.97,0.8419,5.088,2.763,4.309,5 174 | 11.4,13.08,0.8375,5.136,2.763,5.588,5.089 175 | 10.83,12.96,0.8099,5.278,2.641,5.182,5.185 176 | 10.8,12.57,0.859,4.981,2.821,4.773,5.063 177 | 11.26,13.01,0.8355,5.186,2.71,5.335,5.092 178 | 10.74,12.73,0.8329,5.145,2.642,4.702,4.963 179 | 11.48,13.05,0.8473,5.18,2.758,5.876,5.002 180 | 12.21,13.47,0.8453,5.357,2.893,1.661,5.178 181 | 11.41,12.95,0.856,5.09,2.775,4.957,4.825 182 | 12.46,13.41,0.8706,5.236,3.017,4.987,5.147 183 | 12.19,13.36,0.8579,5.24,2.909,4.857,5.158 184 | 11.65,13.07,0.8575,5.108,2.85,5.209,5.135 185 | 12.89,13.77,0.8541,5.495,3.026,6.185,5.316 186 | 11.56,13.31,0.8198,5.363,2.683,4.062,5.182 187 | 11.81,13.45,0.8198,5.413,2.716,4.898,5.352 188 | 10.91,12.8,0.8372,5.088,2.675,4.179,4.956 189 | 11.23,12.82,0.8594,5.089,2.821,7.524,4.957 190 | 10.59,12.41,0.8648,4.899,2.787,4.975,4.794 191 | 10.93,12.8,0.839,5.046,2.717,5.398,5.045 192 | 11.27,12.86,0.8563,5.091,2.804,3.985,5.001 193 | 11.87,13.02,0.8795,5.132,2.953,3.597,5.132 194 | 10.82,12.83,0.8256,5.18,2.63,4.853,5.089 195 | 12.11,13.27,0.8639,5.236,2.975,4.132,5.012 196 | 12.8,13.47,0.886,5.16,3.126,4.873,4.914 197 | 12.79,13.53,0.8786,5.224,3.054,5.483,4.958 198 | 13.37,13.78,0.8849,5.32,3.128,4.67,5.091 199 | 12.62,13.67,0.8481,5.41,2.911,3.306,5.231 200 | 12.76,13.38,0.8964,5.073,3.155,2.828,4.83 201 | 12.38,13.44,0.8609,5.219,2.989,5.472,5.045 202 | 12.67,13.32,0.8977,4.984,3.135,2.3,4.745 203 | 11.18,12.72,0.868,5.009,2.81,4.051,4.828 204 | 12.7,13.41,0.8874,5.183,3.091,8.456,5 205 | 12.37,13.47,0.8567,5.204,2.96,3.919,5.001 206 | 12.19,13.2,0.8783,5.137,2.981,3.631,4.87 207 | 11.23,12.88,0.8511,5.14,2.795,4.325,5.003 208 | 13.2,13.66,0.8883,5.236,3.232,8.315,5.056 209 | 11.84,13.21,0.8521,5.175,2.836,3.598,5.044 210 | 12.3,13.34,0.8684,5.243,2.974,5.637,5.063 211 | -------------------------------------------------------------------------------- /EvoCluster/datasets/balance.csv: -------------------------------------------------------------------------------- 1 | 1,1,1,1,1 2 | 1,1,1,2,2 3 | 1,1,1,3,2 4 | 1,1,1,4,2 5 | 1,1,1,5,2 6 | 1,1,2,1,2 7 | 1,1,2,2,2 8 | 1,1,2,3,2 9 | 1,1,2,4,2 10 | 1,1,2,5,2 11 | 1,1,3,1,2 12 | 1,1,3,2,2 13 | 1,1,3,3,2 14 | 1,1,3,4,2 15 | 1,1,3,5,2 16 | 1,1,4,1,2 17 | 1,1,4,2,2 18 | 1,1,4,3,2 19 | 1,1,4,4,2 20 | 1,1,4,5,2 21 | 1,1,5,1,2 22 | 1,1,5,2,2 23 | 1,1,5,3,2 24 | 1,1,5,4,2 25 | 1,1,5,5,2 26 | 1,2,1,1,0 27 | 1,2,1,2,1 28 | 1,2,1,3,2 29 | 1,2,1,4,2 30 | 1,2,1,5,2 31 | 1,2,2,1,1 32 | 1,2,2,2,2 33 | 1,2,2,3,2 34 | 1,2,2,4,2 35 | 1,2,2,5,2 36 | 1,2,3,1,2 37 | 1,2,3,2,2 38 | 1,2,3,3,2 39 | 1,2,3,4,2 40 | 1,2,3,5,2 41 | 1,2,4,1,2 42 | 1,2,4,2,2 43 | 1,2,4,3,2 44 | 1,2,4,4,2 45 | 1,2,4,5,2 46 | 1,2,5,1,2 47 | 1,2,5,2,2 48 | 1,2,5,3,2 49 | 1,2,5,4,2 50 | 1,2,5,5,2 51 | 1,3,1,1,0 52 | 1,3,1,2,0 53 | 1,3,1,3,1 54 | 1,3,1,4,2 55 | 1,3,1,5,2 56 | 1,3,2,1,0 57 | 1,3,2,2,2 58 | 1,3,2,3,2 59 | 1,3,2,4,2 60 | 1,3,2,5,2 61 | 1,3,3,1,1 62 | 1,3,3,2,2 63 | 1,3,3,3,2 64 | 1,3,3,4,2 65 | 1,3,3,5,2 66 | 1,3,4,1,2 67 | 1,3,4,2,2 68 | 1,3,4,3,2 69 | 1,3,4,4,2 70 | 1,3,4,5,2 71 | 1,3,5,1,2 72 | 1,3,5,2,2 73 | 1,3,5,3,2 74 | 1,3,5,4,2 75 | 1,3,5,5,2 76 | 1,4,1,1,0 77 | 1,4,1,2,0 78 | 1,4,1,3,0 79 | 1,4,1,4,1 80 | 1,4,1,5,2 81 | 1,4,2,1,0 82 | 1,4,2,2,1 83 | 1,4,2,3,2 84 | 1,4,2,4,2 85 | 1,4,2,5,2 86 | 1,4,3,1,0 87 | 1,4,3,2,2 88 | 1,4,3,3,2 89 | 1,4,3,4,2 90 | 1,4,3,5,2 91 | 1,4,4,1,1 92 | 1,4,4,2,2 93 | 1,4,4,3,2 94 | 1,4,4,4,2 95 | 1,4,4,5,2 96 | 1,4,5,1,2 97 | 1,4,5,2,2 98 | 1,4,5,3,2 99 | 1,4,5,4,2 100 | 1,4,5,5,2 101 | 1,5,1,1,0 102 | 1,5,1,2,0 103 | 1,5,1,3,0 104 | 1,5,1,4,0 105 | 1,5,1,5,1 106 | 1,5,2,1,0 107 | 1,5,2,2,0 108 | 1,5,2,3,2 109 | 1,5,2,4,2 110 | 1,5,2,5,2 111 | 1,5,3,1,0 112 | 1,5,3,2,2 113 | 1,5,3,3,2 114 | 1,5,3,4,2 115 | 1,5,3,5,2 116 | 1,5,4,1,0 117 | 1,5,4,2,2 118 | 1,5,4,3,2 119 | 1,5,4,4,2 120 | 1,5,4,5,2 121 | 1,5,5,1,1 122 | 1,5,5,2,2 123 | 1,5,5,3,2 124 | 1,5,5,4,2 125 | 1,5,5,5,2 126 | 2,1,1,1,0 127 | 2,1,1,2,1 128 | 2,1,1,3,2 129 | 2,1,1,4,2 130 | 2,1,1,5,2 131 | 2,1,2,1,1 132 | 2,1,2,2,2 133 | 2,1,2,3,2 134 | 2,1,2,4,2 135 | 2,1,2,5,2 136 | 2,1,3,1,2 137 | 2,1,3,2,2 138 | 2,1,3,3,2 139 | 2,1,3,4,2 140 | 2,1,3,5,2 141 | 2,1,4,1,2 142 | 2,1,4,2,2 143 | 2,1,4,3,2 144 | 2,1,4,4,2 145 | 2,1,4,5,2 146 | 2,1,5,1,2 147 | 2,1,5,2,2 148 | 2,1,5,3,2 149 | 2,1,5,4,2 150 | 2,1,5,5,2 151 | 2,2,1,1,0 152 | 2,2,1,2,0 153 | 2,2,1,3,0 154 | 2,2,1,4,1 155 | 2,2,1,5,2 156 | 2,2,2,1,0 157 | 2,2,2,2,1 158 | 2,2,2,3,2 159 | 2,2,2,4,2 160 | 2,2,2,5,2 161 | 2,2,3,1,0 162 | 2,2,3,2,2 163 | 2,2,3,3,2 164 | 2,2,3,4,2 165 | 2,2,3,5,2 166 | 2,2,4,1,1 167 | 2,2,4,2,2 168 | 2,2,4,3,2 169 | 2,2,4,4,2 170 | 2,2,4,5,2 171 | 2,2,5,1,2 172 | 2,2,5,2,2 173 | 2,2,5,3,2 174 | 2,2,5,4,2 175 | 2,2,5,5,2 176 | 2,3,1,1,0 177 | 2,3,1,2,0 178 | 2,3,1,3,0 179 | 2,3,1,4,0 180 | 2,3,1,5,0 181 | 2,3,2,1,0 182 | 2,3,2,2,0 183 | 2,3,2,3,1 184 | 2,3,2,4,2 185 | 2,3,2,5,2 186 | 2,3,3,1,0 187 | 2,3,3,2,1 188 | 2,3,3,3,2 189 | 2,3,3,4,2 190 | 2,3,3,5,2 191 | 2,3,4,1,0 192 | 2,3,4,2,2 193 | 2,3,4,3,2 194 | 2,3,4,4,2 195 | 2,3,4,5,2 196 | 2,3,5,1,0 197 | 2,3,5,2,2 198 | 2,3,5,3,2 199 | 2,3,5,4,2 200 | 2,3,5,5,2 201 | 2,4,1,1,0 202 | 2,4,1,2,0 203 | 2,4,1,3,0 204 | 2,4,1,4,0 205 | 2,4,1,5,0 206 | 2,4,2,1,0 207 | 2,4,2,2,0 208 | 2,4,2,3,0 209 | 2,4,2,4,1 210 | 2,4,2,5,2 211 | 2,4,3,1,0 212 | 2,4,3,2,0 213 | 2,4,3,3,2 214 | 2,4,3,4,2 215 | 2,4,3,5,2 216 | 2,4,4,1,0 217 | 2,4,4,2,1 218 | 2,4,4,3,2 219 | 2,4,4,4,2 220 | 2,4,4,5,2 221 | 2,4,5,1,0 222 | 2,4,5,2,2 223 | 2,4,5,3,2 224 | 2,4,5,4,2 225 | 2,4,5,5,2 226 | 2,5,1,1,0 227 | 2,5,1,2,0 228 | 2,5,1,3,0 229 | 2,5,1,4,0 230 | 2,5,1,5,0 231 | 2,5,2,1,0 232 | 2,5,2,2,0 233 | 2,5,2,3,0 234 | 2,5,2,4,0 235 | 2,5,2,5,1 236 | 2,5,3,1,0 237 | 2,5,3,2,0 238 | 2,5,3,3,0 239 | 2,5,3,4,2 240 | 2,5,3,5,2 241 | 2,5,4,1,0 242 | 2,5,4,2,0 243 | 2,5,4,3,2 244 | 2,5,4,4,2 245 | 2,5,4,5,2 246 | 2,5,5,1,0 247 | 2,5,5,2,1 248 | 2,5,5,3,2 249 | 2,5,5,4,2 250 | 2,5,5,5,2 251 | 3,1,1,1,0 252 | 3,1,1,2,0 253 | 3,1,1,3,1 254 | 3,1,1,4,2 255 | 3,1,1,5,2 256 | 3,1,2,1,0 257 | 3,1,2,2,2 258 | 3,1,2,3,2 259 | 3,1,2,4,2 260 | 3,1,2,5,2 261 | 3,1,3,1,1 262 | 3,1,3,2,2 263 | 3,1,3,3,2 264 | 3,1,3,4,2 265 | 3,1,3,5,2 266 | 3,1,4,1,2 267 | 3,1,4,2,2 268 | 3,1,4,3,2 269 | 3,1,4,4,2 270 | 3,1,4,5,2 271 | 3,1,5,1,2 272 | 3,1,5,2,2 273 | 3,1,5,3,2 274 | 3,1,5,4,2 275 | 3,1,5,5,2 276 | 3,2,1,1,0 277 | 3,2,1,2,0 278 | 3,2,1,3,0 279 | 3,2,1,4,0 280 | 3,2,1,5,0 281 | 3,2,2,1,0 282 | 3,2,2,2,0 283 | 3,2,2,3,1 284 | 3,2,2,4,2 285 | 3,2,2,5,2 286 | 3,2,3,1,0 287 | 3,2,3,2,1 288 | 3,2,3,3,2 289 | 3,2,3,4,2 290 | 3,2,3,5,2 291 | 3,2,4,1,0 292 | 3,2,4,2,2 293 | 3,2,4,3,2 294 | 3,2,4,4,2 295 | 3,2,4,5,2 296 | 3,2,5,1,0 297 | 3,2,5,2,2 298 | 3,2,5,3,2 299 | 3,2,5,4,2 300 | 3,2,5,5,2 301 | 3,3,1,1,0 302 | 3,3,1,2,0 303 | 3,3,1,3,0 304 | 3,3,1,4,0 305 | 3,3,1,5,0 306 | 3,3,2,1,0 307 | 3,3,2,2,0 308 | 3,3,2,3,0 309 | 3,3,2,4,0 310 | 3,3,2,5,2 311 | 3,3,3,1,0 312 | 3,3,3,2,0 313 | 3,3,3,3,1 314 | 3,3,3,4,2 315 | 3,3,3,5,2 316 | 3,3,4,1,0 317 | 3,3,4,2,0 318 | 3,3,4,3,2 319 | 3,3,4,4,2 320 | 3,3,4,5,2 321 | 3,3,5,1,0 322 | 3,3,5,2,2 323 | 3,3,5,3,2 324 | 3,3,5,4,2 325 | 3,3,5,5,2 326 | 3,4,1,1,0 327 | 3,4,1,2,0 328 | 3,4,1,3,0 329 | 3,4,1,4,0 330 | 3,4,1,5,0 331 | 3,4,2,1,0 332 | 3,4,2,2,0 333 | 3,4,2,3,0 334 | 3,4,2,4,0 335 | 3,4,2,5,0 336 | 3,4,3,1,0 337 | 3,4,3,2,0 338 | 3,4,3,3,0 339 | 3,4,3,4,1 340 | 3,4,3,5,2 341 | 3,4,4,1,0 342 | 3,4,4,2,0 343 | 3,4,4,3,1 344 | 3,4,4,4,2 345 | 3,4,4,5,2 346 | 3,4,5,1,0 347 | 3,4,5,2,0 348 | 3,4,5,3,2 349 | 3,4,5,4,2 350 | 3,4,5,5,2 351 | 3,5,1,1,0 352 | 3,5,1,2,0 353 | 3,5,1,3,0 354 | 3,5,1,4,0 355 | 3,5,1,5,0 356 | 3,5,2,1,0 357 | 3,5,2,2,0 358 | 3,5,2,3,0 359 | 3,5,2,4,0 360 | 3,5,2,5,0 361 | 3,5,3,1,0 362 | 3,5,3,2,0 363 | 3,5,3,3,0 364 | 3,5,3,4,0 365 | 3,5,3,5,1 366 | 3,5,4,1,0 367 | 3,5,4,2,0 368 | 3,5,4,3,0 369 | 3,5,4,4,2 370 | 3,5,4,5,2 371 | 3,5,5,1,0 372 | 3,5,5,2,0 373 | 3,5,5,3,1 374 | 3,5,5,4,2 375 | 3,5,5,5,2 376 | 4,1,1,1,0 377 | 4,1,1,2,0 378 | 4,1,1,3,0 379 | 4,1,1,4,1 380 | 4,1,1,5,2 381 | 4,1,2,1,0 382 | 4,1,2,2,1 383 | 4,1,2,3,2 384 | 4,1,2,4,2 385 | 4,1,2,5,2 386 | 4,1,3,1,0 387 | 4,1,3,2,2 388 | 4,1,3,3,2 389 | 4,1,3,4,2 390 | 4,1,3,5,2 391 | 4,1,4,1,1 392 | 4,1,4,2,2 393 | 4,1,4,3,2 394 | 4,1,4,4,2 395 | 4,1,4,5,2 396 | 4,1,5,1,2 397 | 4,1,5,2,2 398 | 4,1,5,3,2 399 | 4,1,5,4,2 400 | 4,1,5,5,2 401 | 4,2,1,1,0 402 | 4,2,1,2,0 403 | 4,2,1,3,0 404 | 4,2,1,4,0 405 | 4,2,1,5,0 406 | 4,2,2,1,0 407 | 4,2,2,2,0 408 | 4,2,2,3,0 409 | 4,2,2,4,1 410 | 4,2,2,5,2 411 | 4,2,3,1,0 412 | 4,2,3,2,0 413 | 4,2,3,3,2 414 | 4,2,3,4,2 415 | 4,2,3,5,2 416 | 4,2,4,1,0 417 | 4,2,4,2,1 418 | 4,2,4,3,2 419 | 4,2,4,4,2 420 | 4,2,4,5,2 421 | 4,2,5,1,0 422 | 4,2,5,2,2 423 | 4,2,5,3,2 424 | 4,2,5,4,2 425 | 4,2,5,5,2 426 | 4,3,1,1,0 427 | 4,3,1,2,0 428 | 4,3,1,3,0 429 | 4,3,1,4,0 430 | 4,3,1,5,0 431 | 4,3,2,1,0 432 | 4,3,2,2,0 433 | 4,3,2,3,0 434 | 4,3,2,4,0 435 | 4,3,2,5,0 436 | 4,3,3,1,0 437 | 4,3,3,2,0 438 | 4,3,3,3,0 439 | 4,3,3,4,1 440 | 4,3,3,5,2 441 | 4,3,4,1,0 442 | 4,3,4,2,0 443 | 4,3,4,3,1 444 | 4,3,4,4,2 445 | 4,3,4,5,2 446 | 4,3,5,1,0 447 | 4,3,5,2,0 448 | 4,3,5,3,2 449 | 4,3,5,4,2 450 | 4,3,5,5,2 451 | 4,4,1,1,0 452 | 4,4,1,2,0 453 | 4,4,1,3,0 454 | 4,4,1,4,0 455 | 4,4,1,5,0 456 | 4,4,2,1,0 457 | 4,4,2,2,0 458 | 4,4,2,3,0 459 | 4,4,2,4,0 460 | 4,4,2,5,0 461 | 4,4,3,1,0 462 | 4,4,3,2,0 463 | 4,4,3,3,0 464 | 4,4,3,4,0 465 | 4,4,3,5,0 466 | 4,4,4,1,0 467 | 4,4,4,2,0 468 | 4,4,4,3,0 469 | 4,4,4,4,1 470 | 4,4,4,5,2 471 | 4,4,5,1,0 472 | 4,4,5,2,0 473 | 4,4,5,3,0 474 | 4,4,5,4,2 475 | 4,4,5,5,2 476 | 4,5,1,1,0 477 | 4,5,1,2,0 478 | 4,5,1,3,0 479 | 4,5,1,4,0 480 | 4,5,1,5,0 481 | 4,5,2,1,0 482 | 4,5,2,2,0 483 | 4,5,2,3,0 484 | 4,5,2,4,0 485 | 4,5,2,5,0 486 | 4,5,3,1,0 487 | 4,5,3,2,0 488 | 4,5,3,3,0 489 | 4,5,3,4,0 490 | 4,5,3,5,0 491 | 4,5,4,1,0 492 | 4,5,4,2,0 493 | 4,5,4,3,0 494 | 4,5,4,4,0 495 | 4,5,4,5,1 496 | 4,5,5,1,0 497 | 4,5,5,2,0 498 | 4,5,5,3,0 499 | 4,5,5,4,1 500 | 4,5,5,5,2 501 | 5,1,1,1,0 502 | 5,1,1,2,0 503 | 5,1,1,3,0 504 | 5,1,1,4,0 505 | 5,1,1,5,1 506 | 5,1,2,1,0 507 | 5,1,2,2,0 508 | 5,1,2,3,2 509 | 5,1,2,4,2 510 | 5,1,2,5,2 511 | 5,1,3,1,0 512 | 5,1,3,2,2 513 | 5,1,3,3,2 514 | 5,1,3,4,2 515 | 5,1,3,5,2 516 | 5,1,4,1,0 517 | 5,1,4,2,2 518 | 5,1,4,3,2 519 | 5,1,4,4,2 520 | 5,1,4,5,2 521 | 5,1,5,1,1 522 | 5,1,5,2,2 523 | 5,1,5,3,2 524 | 5,1,5,4,2 525 | 5,1,5,5,2 526 | 5,2,1,1,0 527 | 5,2,1,2,0 528 | 5,2,1,3,0 529 | 5,2,1,4,0 530 | 5,2,1,5,0 531 | 5,2,2,1,0 532 | 5,2,2,2,0 533 | 5,2,2,3,0 534 | 5,2,2,4,0 535 | 5,2,2,5,1 536 | 5,2,3,1,0 537 | 5,2,3,2,0 538 | 5,2,3,3,0 539 | 5,2,3,4,2 540 | 5,2,3,5,2 541 | 5,2,4,1,0 542 | 5,2,4,2,0 543 | 5,2,4,3,2 544 | 5,2,4,4,2 545 | 5,2,4,5,2 546 | 5,2,5,1,0 547 | 5,2,5,2,1 548 | 5,2,5,3,2 549 | 5,2,5,4,2 550 | 5,2,5,5,2 551 | 5,3,1,1,0 552 | 5,3,1,2,0 553 | 5,3,1,3,0 554 | 5,3,1,4,0 555 | 5,3,1,5,0 556 | 5,3,2,1,0 557 | 5,3,2,2,0 558 | 5,3,2,3,0 559 | 5,3,2,4,0 560 | 5,3,2,5,0 561 | 5,3,3,1,0 562 | 5,3,3,2,0 563 | 5,3,3,3,0 564 | 5,3,3,4,0 565 | 5,3,3,5,1 566 | 5,3,4,1,0 567 | 5,3,4,2,0 568 | 5,3,4,3,0 569 | 5,3,4,4,2 570 | 5,3,4,5,2 571 | 5,3,5,1,0 572 | 5,3,5,2,0 573 | 5,3,5,3,1 574 | 5,3,5,4,2 575 | 5,3,5,5,2 576 | 5,4,1,1,0 577 | 5,4,1,2,0 578 | 5,4,1,3,0 579 | 5,4,1,4,0 580 | 5,4,1,5,0 581 | 5,4,2,1,0 582 | 5,4,2,2,0 583 | 5,4,2,3,0 584 | 5,4,2,4,0 585 | 5,4,2,5,0 586 | 5,4,3,1,0 587 | 5,4,3,2,0 588 | 5,4,3,3,0 589 | 5,4,3,4,0 590 | 5,4,3,5,0 591 | 5,4,4,1,0 592 | 5,4,4,2,0 593 | 5,4,4,3,0 594 | 5,4,4,4,0 595 | 5,4,4,5,1 596 | 5,4,5,1,0 597 | 5,4,5,2,0 598 | 5,4,5,3,0 599 | 5,4,5,4,1 600 | 5,4,5,5,2 601 | 5,5,1,1,0 602 | 5,5,1,2,0 603 | 5,5,1,3,0 604 | 5,5,1,4,0 605 | 5,5,1,5,0 606 | 5,5,2,1,0 607 | 5,5,2,2,0 608 | 5,5,2,3,0 609 | 5,5,2,4,0 610 | 5,5,2,5,0 611 | 5,5,3,1,0 612 | 5,5,3,2,0 613 | 5,5,3,3,0 614 | 5,5,3,4,0 615 | 5,5,3,5,0 616 | 5,5,4,1,0 617 | 5,5,4,2,0 618 | 5,5,4,3,0 619 | 5,5,4,4,0 620 | 5,5,4,5,0 621 | 5,5,5,1,0 622 | 5,5,5,2,0 623 | 5,5,5,3,0 624 | 5,5,5,4,0 625 | 5,5,5,5,1 626 | -------------------------------------------------------------------------------- /EvoCluster/datasets/unsupervised/glass.csv: -------------------------------------------------------------------------------- 1 | 1.51793,12.79,3.5,1.12,73.03,0.64,8.77,0,0 2 | 1.51643,12.16,3.52,1.35,72.89,0.57,8.53,0,0 3 | 1.51793,13.21,3.48,1.41,72.64,0.59,8.43,0,0 4 | 1.51299,14.4,1.74,1.54,74.55,0,7.59,0,0 5 | 1.53393,12.3,0,1,70.16,0.12,16.19,0,0.24 6 | 1.51655,12.75,2.85,1.44,73.27,0.57,8.79,0.11,0.22 7 | 1.51779,13.64,3.65,0.65,73,0.06,8.93,0,0 8 | 1.51837,13.14,2.84,1.28,72.85,0.55,9.07,0,0 9 | 1.51545,14.14,0,2.68,73.39,0.08,9.07,0.61,0.05 10 | 1.51789,13.19,3.9,1.3,72.33,0.55,8.44,0,0.28 11 | 1.51625,13.36,3.58,1.49,72.72,0.45,8.21,0,0 12 | 1.51743,12.2,3.25,1.16,73.55,0.62,8.9,0,0.24 13 | 1.52223,13.21,3.77,0.79,71.99,0.13,10.02,0,0 14 | 1.52121,14.03,3.76,0.58,71.79,0.11,9.65,0,0 15 | 1.51665,13.14,3.45,1.76,72.48,0.6,8.38,0,0.17 16 | 1.51707,13.48,3.48,1.71,72.52,0.62,7.99,0,0 17 | 1.51719,14.75,0,2,73.02,0,8.53,1.59,0.08 18 | 1.51629,12.71,3.33,1.49,73.28,0.67,8.24,0,0 19 | 1.51994,13.27,0,1.76,73.03,0.47,11.32,0,0 20 | 1.51811,12.96,2.96,1.43,72.92,0.6,8.79,0.14,0 21 | 1.52152,13.05,3.65,0.87,72.22,0.19,9.85,0,0.17 22 | 1.52475,11.45,0,1.88,72.19,0.81,13.24,0,0.34 23 | 1.51841,12.93,3.74,1.11,72.28,0.64,8.96,0,0.22 24 | 1.51754,13.39,3.66,1.19,72.79,0.57,8.27,0,0.11 25 | 1.52058,12.85,1.61,2.17,72.18,0.76,9.7,0.24,0.51 26 | 1.51569,13.24,3.49,1.47,73.25,0.38,8.03,0,0 27 | 1.5159,12.82,3.52,1.9,72.86,0.69,7.97,0,0 28 | 1.51683,14.56,0,1.98,73.29,0,8.52,1.57,0.07 29 | 1.51687,13.23,3.54,1.48,72.84,0.56,8.1,0,0 30 | 1.5161,13.33,3.53,1.34,72.67,0.56,8.33,0,0 31 | 1.51674,12.87,3.56,1.64,73.14,0.65,7.99,0,0 32 | 1.51832,13.33,3.34,1.54,72.14,0.56,8.99,0,0 33 | 1.51115,17.38,0,0.34,75.41,0,6.65,0,0 34 | 1.51645,13.44,3.61,1.54,72.39,0.66,8.03,0,0 35 | 1.51755,13,3.6,1.36,72.99,0.57,8.4,0,0.11 36 | 1.51571,12.72,3.46,1.56,73.2,0.67,8.09,0,0.24 37 | 1.51596,12.79,3.61,1.62,72.97,0.64,8.07,0,0.26 38 | 1.5173,12.35,2.72,1.63,72.87,0.7,9.23,0,0 39 | 1.51662,12.85,3.51,1.44,73.01,0.68,8.23,0.06,0.25 40 | 1.51409,14.25,3.09,2.08,72.28,1.1,7.08,0,0 41 | 1.51797,12.74,3.48,1.35,72.96,0.64,8.68,0,0 42 | 1.51806,13,3.8,1.08,73.07,0.56,8.38,0,0.12 43 | 1.51627,13,3.58,1.54,72.83,0.61,8.04,0,0 44 | 1.5159,13.24,3.34,1.47,73.1,0.39,8.22,0,0 45 | 1.51934,13.64,3.54,0.75,72.65,0.16,8.89,0.15,0.24 46 | 1.51755,12.71,3.42,1.2,73.2,0.59,8.64,0,0 47 | 1.51514,14.01,2.68,3.5,69.89,1.68,5.87,2.2,0 48 | 1.51766,13.21,3.69,1.29,72.61,0.57,8.22,0,0 49 | 1.51784,13.08,3.49,1.28,72.86,0.6,8.49,0,0 50 | 1.52177,13.2,3.68,1.15,72.75,0.54,8.52,0,0 51 | 1.51753,12.57,3.47,1.38,73.39,0.6,8.55,0,0.06 52 | 1.51851,13.2,3.63,1.07,72.83,0.57,8.41,0.09,0.17 53 | 1.51743,13.3,3.6,1.14,73.09,0.58,8.17,0,0 54 | 1.51593,13.09,3.59,1.52,73.1,0.67,7.83,0,0 55 | 1.5164,14.37,0,2.74,72.85,0,9.45,0.54,0 56 | 1.51735,13.02,3.54,1.69,72.73,0.54,8.44,0,0.07 57 | 1.52247,14.86,2.2,2.06,70.26,0.76,9.76,0,0 58 | 1.52099,13.69,3.59,1.12,71.96,0.09,9.4,0,0 59 | 1.51769,13.65,3.66,1.11,72.77,0.11,8.6,0,0 60 | 1.51846,13.41,3.89,1.33,72.38,0.51,8.28,0,0 61 | 1.51848,13.64,3.87,1.27,71.96,0.54,8.32,0,0.32 62 | 1.51905,13.6,3.62,1.11,72.64,0.14,8.76,0,0 63 | 1.51567,13.29,3.45,1.21,72.74,0.56,8.57,0,0 64 | 1.52213,14.21,3.82,0.47,71.77,0.11,9.57,0,0 65 | 1.5232,13.72,3.72,0.51,71.75,0.09,10.06,0,0.16 66 | 1.51556,13.87,0,2.54,73.23,0.14,9.41,0.81,0.01 67 | 1.51926,13.2,3.33,1.28,72.36,0.6,9.14,0,0.11 68 | 1.52211,14.19,3.78,0.91,71.36,0.23,9.14,0,0.37 69 | 1.53125,10.73,0,2.1,69.81,0.58,13.3,3.15,0.28 70 | 1.52152,13.05,3.65,0.87,72.32,0.19,9.85,0,0.17 71 | 1.51829,14.46,2.24,1.62,72.38,0,9.26,0,0 72 | 1.51892,13.46,3.83,1.26,72.55,0.57,8.21,0,0.14 73 | 1.51888,14.99,0.78,1.74,72.5,0,9.95,0,0 74 | 1.51829,13.24,3.9,1.41,72.33,0.55,8.31,0,0.1 75 | 1.523,13.31,3.58,0.82,71.99,0.12,10.17,0,0.03 76 | 1.51652,13.56,3.57,1.47,72.45,0.64,7.96,0,0 77 | 1.51768,12.56,3.52,1.43,73.15,0.57,8.54,0,0 78 | 1.51215,12.99,3.47,1.12,72.98,0.62,8.35,0,0.31 79 | 1.51646,13.04,3.4,1.26,73.01,0.52,8.58,0,0 80 | 1.51721,12.87,3.48,1.33,73.04,0.56,8.43,0,0 81 | 1.51763,12.8,3.66,1.27,73.01,0.6,8.56,0,0 82 | 1.51742,13.27,3.62,1.24,73.08,0.55,8.07,0,0 83 | 1.52127,14.32,3.9,0.83,71.5,0,9.49,0,0 84 | 1.51779,13.21,3.39,1.33,72.76,0.59,8.59,0,0 85 | 1.52171,11.56,1.88,1.56,72.86,0.47,11.41,0,0 86 | 1.518,13.71,3.93,1.54,71.81,0.54,8.21,0,0.15 87 | 1.52777,12.64,0,0.67,72.02,0.06,14.4,0,0 88 | 1.5175,12.82,3.55,1.49,72.75,0.54,8.52,0,0.19 89 | 1.51764,12.98,3.54,1.21,73,0.65,8.53,0,0 90 | 1.52177,13.75,1.01,1.36,72.19,0.33,11.14,0,0 91 | 1.51645,14.94,0,1.87,73.11,0,8.67,1.38,0 92 | 1.51786,12.73,3.43,1.19,72.95,0.62,8.76,0,0.3 93 | 1.52152,13.12,3.58,0.9,72.2,0.23,9.82,0,0.16 94 | 1.51937,13.79,2.41,1.19,72.76,0,9.77,0,0 95 | 1.51514,14.85,0,2.42,73.72,0,8.39,0.56,0 96 | 1.52172,13.48,3.74,0.9,72.01,0.18,9.61,0,0.07 97 | 1.51732,14.95,0,1.8,72.99,0,8.61,1.55,0 98 | 1.5202,13.98,1.35,1.63,71.76,0.39,10.56,0,0.18 99 | 1.51605,12.9,3.44,1.45,73.06,0.44,8.27,0,0 100 | 1.51847,13.1,3.97,1.19,72.44,0.6,8.43,0,0 101 | 1.51761,13.89,3.6,1.36,72.73,0.48,7.83,0,0 102 | 1.51673,13.3,3.64,1.53,72.53,0.65,8.03,0,0.29 103 | 1.52365,15.79,1.83,1.31,70.43,0.31,8.61,1.68,0 104 | 1.51685,14.92,0,1.99,73.06,0,8.4,1.59,0 105 | 1.51658,14.8,0,1.99,73.11,0,8.28,1.71,0 106 | 1.51316,13.02,0,3.04,70.48,6.21,6.96,0,0 107 | 1.51709,13,3.47,1.79,72.72,0.66,8.18,0,0 108 | 1.51727,14.7,0,2.34,73.28,0,8.95,0.66,0 109 | 1.51898,13.58,3.35,1.23,72.08,0.59,8.91,0,0 110 | 1.51969,12.64,0,1.65,73.75,0.38,11.53,0,0 111 | 1.5182,12.62,2.76,0.83,73.81,0.35,9.42,0,0.2 112 | 1.51617,14.95,0,2.27,73.3,0,8.71,0.67,0 113 | 1.51911,13.9,3.73,1.18,72.12,0.06,8.89,0,0 114 | 1.51651,14.38,0,1.94,73.61,0,8.48,1.57,0 115 | 1.51694,12.86,3.58,1.31,72.61,0.61,8.79,0,0 116 | 1.52315,13.44,3.34,1.23,72.38,0.6,8.83,0,0 117 | 1.52068,13.55,2.09,1.67,72.18,0.53,9.57,0.27,0.17 118 | 1.51838,14.32,3.26,2.22,71.25,1.46,5.79,1.63,0 119 | 1.51818,13.72,0,0.56,74.45,0,10.99,0,0 120 | 1.51769,12.45,2.71,1.29,73.7,0.56,9.06,0,0.24 121 | 1.5166,12.99,3.18,1.23,72.97,0.58,8.81,0,0.24 122 | 1.51589,12.88,3.43,1.4,73.28,0.69,8.05,0,0.24 123 | 1.5241,13.83,2.9,1.17,71.15,0.08,10.79,0,0 124 | 1.52725,13.8,3.15,0.66,70.57,0.08,11.64,0,0 125 | 1.52119,12.97,0.33,1.51,73.39,0.13,11.27,0,0.28 126 | 1.51748,12.86,3.56,1.27,73.21,0.54,8.38,0,0.17 127 | 1.51653,11.95,0,1.19,75.18,2.7,8.93,0,0 128 | 1.51623,14.14,0,2.88,72.61,0.08,9.18,1.06,0 129 | 1.52101,13.64,4.49,1.1,71.78,0.06,8.75,0,0 130 | 1.51763,12.61,3.59,1.31,73.29,0.58,8.5,0,0 131 | 1.51596,13.02,3.56,1.54,73.11,0.72,7.9,0,0 132 | 1.51674,12.79,3.52,1.54,73.36,0.66,7.9,0,0 133 | 1.52065,14.36,0,2.02,73.42,0,8.44,1.64,0 134 | 1.51768,12.65,3.56,1.3,73.08,0.61,8.69,0,0.14 135 | 1.52369,13.44,0,1.58,72.22,0.32,12.24,0,0 136 | 1.51756,13.15,3.61,1.05,73.24,0.57,8.24,0,0 137 | 1.51754,13.48,3.74,1.17,72.99,0.59,8.03,0,0 138 | 1.51711,12.89,3.62,1.57,72.96,0.61,8.11,0,0 139 | 1.5221,13.73,3.84,0.72,71.76,0.17,9.74,0,0 140 | 1.51594,13.09,3.52,1.55,72.87,0.68,8.05,0,0.09 141 | 1.51784,12.68,3.67,1.16,73.11,0.61,8.7,0,0 142 | 1.51909,13.89,3.53,1.32,71.81,0.51,8.78,0.11,0 143 | 1.51977,13.81,3.58,1.32,71.72,0.12,8.67,0.69,0 144 | 1.51666,12.86,0,1.83,73.88,0.97,10.17,0,0 145 | 1.51631,13.34,3.57,1.57,72.87,0.61,7.89,0,0 146 | 1.51872,12.93,3.66,1.56,72.51,0.58,8.55,0,0.12 147 | 1.51708,13.72,3.68,1.81,72.06,0.64,7.88,0,0 148 | 1.52081,13.78,2.28,1.43,71.99,0.49,9.85,0,0.17 149 | 1.51574,14.86,3.67,1.74,71.87,0.16,7.36,0,0.12 150 | 1.51813,13.43,3.98,1.18,72.49,0.58,8.15,0,0 151 | 1.51131,13.69,3.2,1.81,72.81,1.76,5.43,1.19,0 152 | 1.52227,14.17,3.81,0.78,71.35,0,9.69,0,0 153 | 1.52614,13.7,0,1.36,71.24,0.19,13.44,0,0.1 154 | 1.51811,13.33,3.85,1.25,72.78,0.52,8.12,0,0 155 | 1.51655,13.41,3.39,1.28,72.64,0.52,8.65,0,0 156 | 1.51751,12.81,3.57,1.35,73.02,0.62,8.59,0,0 157 | 1.51508,15.15,0,2.25,73.5,0,8.34,0.63,0 158 | 1.51915,12.73,1.85,1.86,72.69,0.6,10.09,0,0 159 | 1.51966,14.77,3.75,0.29,72.02,0.03,9,0,0 160 | 1.51844,13.25,3.76,1.32,72.4,0.58,8.42,0,0 161 | 1.52664,11.23,0,0.77,73.21,0,14.68,0,0 162 | 1.52172,13.51,3.86,0.88,71.79,0.23,9.54,0,0.11 163 | 1.51602,14.85,0,2.38,73.28,0,8.76,0.64,0.09 164 | 1.51321,13,0,3.02,70.7,6.21,6.93,0,0 165 | 1.52739,11.02,0,0.75,73.08,0,14.96,0,0 166 | 1.52213,14.21,3.82,0.47,71.77,0.11,9.57,0,0 167 | 1.51747,12.84,3.5,1.14,73.27,0.56,8.55,0,0 168 | 1.51839,12.85,3.67,1.24,72.57,0.62,8.68,0,0.35 169 | 1.51646,13.41,3.55,1.25,72.81,0.68,8.1,0,0 170 | 1.51609,15.01,0,2.51,73.05,0.05,8.83,0.53,0 171 | 1.51667,12.94,3.61,1.26,72.75,0.56,8.6,0,0 172 | 1.51588,13.12,3.41,1.58,73.26,0.07,8.39,0,0.19 173 | 1.52667,13.99,3.7,0.71,71.57,0.02,9.82,0,0.1 174 | 1.51831,14.39,0,1.82,72.86,1.41,6.47,2.88,0 175 | 1.51918,14.04,3.58,1.37,72.08,0.56,8.3,0,0 176 | 1.51613,13.88,1.78,1.79,73.1,0,8.67,0.76,0 177 | 1.52196,14.36,3.85,0.89,71.36,0.15,9.15,0,0 178 | 1.51824,12.87,3.48,1.29,72.95,0.6,8.43,0,0 179 | 1.52151,11.03,1.71,1.56,73.44,0.58,11.62,0,0 180 | 1.51969,14.56,0,0.56,73.48,0,11.22,0,0 181 | 1.51618,13.01,3.5,1.48,72.89,0.6,8.12,0,0 182 | 1.51645,13.4,3.49,1.52,72.65,0.67,8.08,0,0.1 183 | 1.51796,13.5,3.36,1.63,71.94,0.57,8.81,0,0.09 184 | 1.52222,14.43,0,1,72.67,0.1,11.52,0,0.08 185 | 1.51783,12.69,3.54,1.34,72.95,0.57,8.75,0,0 186 | 1.51711,14.23,0,2.08,73.36,0,8.62,1.67,0 187 | 1.51736,12.78,3.62,1.29,72.79,0.59,8.7,0,0 188 | 1.51808,13.43,2.87,1.19,72.84,0.55,9.03,0,0 189 | 1.5167,13.24,3.57,1.38,72.7,0.56,8.44,0,0.1 190 | 1.52043,13.38,0,1.4,72.25,0.33,12.5,0,0 191 | 1.519,13.49,3.48,1.35,71.95,0.55,9,0,0 192 | 1.51778,13.21,2.81,1.29,72.98,0.51,9.02,0,0.09 193 | 1.51905,14,2.39,1.56,72.37,0,9.57,0,0 194 | 1.51531,14.38,0,2.66,73.1,0.04,9.08,0.64,0 195 | 1.51916,14.15,0,2.09,72.74,0,10.88,0,0 196 | 1.51841,13.02,3.62,1.06,72.34,0.64,9.13,0,0.15 197 | 1.5159,13.02,3.58,1.51,73.12,0.69,7.96,0,0 198 | 1.51593,13.25,3.45,1.43,73.17,0.61,7.86,0,0 199 | 1.5164,12.55,3.48,1.87,73.23,0.63,8.08,0,0.09 200 | 1.51663,12.93,3.54,1.62,72.96,0.64,8.03,0,0.21 201 | 1.5169,13.33,3.54,1.61,72.54,0.68,8.11,0,0 202 | 1.51869,13.19,3.37,1.18,72.72,0.57,8.83,0,0.16 203 | 1.51776,13.53,3.41,1.52,72.04,0.58,8.79,0,0 204 | 1.51775,12.85,3.48,1.23,72.97,0.61,8.56,0.09,0.22 205 | 1.5186,13.36,3.43,1.43,72.26,0.51,8.6,0,0 206 | 1.5172,13.38,3.5,1.15,72.85,0.5,8.43,0,0 207 | 1.51623,14.2,0,2.79,73.46,0.04,9.04,0.4,0.09 208 | 1.51618,13.53,3.55,1.54,72.99,0.39,7.78,0,0 209 | 1.51761,12.81,3.54,1.23,73.24,0.58,8.39,0,0 210 | 1.5161,13.42,3.4,1.22,72.69,0.59,8.32,0,0 211 | 1.51592,12.86,3.52,2.12,72.66,0.69,7.97,0,0 212 | 1.51613,13.92,3.52,1.25,72.88,0.37,7.94,0,0.14 213 | 1.51689,12.67,2.88,1.71,73.21,0.73,8.54,0,0 214 | 1.51852,14.09,2.19,1.66,72.67,0,9.32,0,0 215 | -------------------------------------------------------------------------------- /EvoCluster/datasets/seeds.csv: -------------------------------------------------------------------------------- 1 | 15.26,14.84,0.871,5.763,3.312,2.221,5.22,1 2 | 14.88,14.57,0.8811,5.554,3.333,1.018,4.956,1 3 | 14.29,14.09,0.905,5.291,3.337,2.699,4.825,1 4 | 13.84,13.94,0.8955,5.324,3.379,2.259,4.805,1 5 | 16.14,14.99,0.9034,5.658,3.562,1.355,5.175,1 6 | 14.38,14.21,0.8951,5.386,3.312,2.462,4.956,1 7 | 14.69,14.49,0.8799,5.563,3.259,3.586,5.219,1 8 | 14.11,14.1,0.8911,5.42,3.302,2.7,5,1 9 | 16.63,15.46,0.8747,6.053,3.465,2.04,5.877,1 10 | 16.44,15.25,0.888,5.884,3.505,1.969,5.533,1 11 | 15.26,14.85,0.8696,5.714,3.242,4.543,5.314,1 12 | 14.03,14.16,0.8796,5.438,3.201,1.717,5.001,1 13 | 13.89,14.02,0.888,5.439,3.199,3.986,4.738,1 14 | 13.78,14.06,0.8759,5.479,3.156,3.136,4.872,1 15 | 13.74,14.05,0.8744,5.482,3.114,2.932,4.825,1 16 | 14.59,14.28,0.8993,5.351,3.333,4.185,4.781,1 17 | 13.99,13.83,0.9183,5.119,3.383,5.234,4.781,1 18 | 15.69,14.75,0.9058,5.527,3.514,1.599,5.046,1 19 | 14.7,14.21,0.9153,5.205,3.466,1.767,4.649,1 20 | 12.72,13.57,0.8686,5.226,3.049,4.102,4.914,1 21 | 14.16,14.4,0.8584,5.658,3.129,3.072,5.176,1 22 | 14.11,14.26,0.8722,5.52,3.168,2.688,5.219,1 23 | 15.88,14.9,0.8988,5.618,3.507,0.7651,5.091,1 24 | 12.08,13.23,0.8664,5.099,2.936,1.415,4.961,1 25 | 15.01,14.76,0.8657,5.789,3.245,1.791,5.001,1 26 | 16.19,15.16,0.8849,5.833,3.421,0.903,5.307,1 27 | 13.02,13.76,0.8641,5.395,3.026,3.373,4.825,1 28 | 12.74,13.67,0.8564,5.395,2.956,2.504,4.869,1 29 | 14.11,14.18,0.882,5.541,3.221,2.754,5.038,1 30 | 13.45,14.02,0.8604,5.516,3.065,3.531,5.097,1 31 | 13.16,13.82,0.8662,5.454,2.975,0.8551,5.056,1 32 | 15.49,14.94,0.8724,5.757,3.371,3.412,5.228,1 33 | 14.09,14.41,0.8529,5.717,3.186,3.92,5.299,1 34 | 13.94,14.17,0.8728,5.585,3.15,2.124,5.012,1 35 | 15.05,14.68,0.8779,5.712,3.328,2.129,5.36,1 36 | 16.12,15,0.9,5.709,3.485,2.27,5.443,1 37 | 16.2,15.27,0.8734,5.826,3.464,2.823,5.527,1 38 | 17.08,15.38,0.9079,5.832,3.683,2.956,5.484,1 39 | 14.8,14.52,0.8823,5.656,3.288,3.112,5.309,1 40 | 14.28,14.17,0.8944,5.397,3.298,6.685,5.001,1 41 | 13.54,13.85,0.8871,5.348,3.156,2.587,5.178,1 42 | 13.5,13.85,0.8852,5.351,3.158,2.249,5.176,1 43 | 13.16,13.55,0.9009,5.138,3.201,2.461,4.783,1 44 | 15.5,14.86,0.882,5.877,3.396,4.711,5.528,1 45 | 15.11,14.54,0.8986,5.579,3.462,3.128,5.18,1 46 | 13.8,14.04,0.8794,5.376,3.155,1.56,4.961,1 47 | 15.36,14.76,0.8861,5.701,3.393,1.367,5.132,1 48 | 14.99,14.56,0.8883,5.57,3.377,2.958,5.175,1 49 | 14.79,14.52,0.8819,5.545,3.291,2.704,5.111,1 50 | 14.86,14.67,0.8676,5.678,3.258,2.129,5.351,1 51 | 14.43,14.4,0.8751,5.585,3.272,3.975,5.144,1 52 | 15.78,14.91,0.8923,5.674,3.434,5.593,5.136,1 53 | 14.49,14.61,0.8538,5.715,3.113,4.116,5.396,1 54 | 14.33,14.28,0.8831,5.504,3.199,3.328,5.224,1 55 | 14.52,14.6,0.8557,5.741,3.113,1.481,5.487,1 56 | 15.03,14.77,0.8658,5.702,3.212,1.933,5.439,1 57 | 14.46,14.35,0.8818,5.388,3.377,2.802,5.044,1 58 | 14.92,14.43,0.9006,5.384,3.412,1.142,5.088,1 59 | 15.38,14.77,0.8857,5.662,3.419,1.999,5.222,1 60 | 12.11,13.47,0.8392,5.159,3.032,1.502,4.519,1 61 | 11.42,12.86,0.8683,5.008,2.85,2.7,4.607,1 62 | 11.23,12.63,0.884,4.902,2.879,2.269,4.703,1 63 | 12.36,13.19,0.8923,5.076,3.042,3.22,4.605,1 64 | 13.22,13.84,0.868,5.395,3.07,4.157,5.088,1 65 | 12.78,13.57,0.8716,5.262,3.026,1.176,4.782,1 66 | 12.88,13.5,0.8879,5.139,3.119,2.352,4.607,1 67 | 14.34,14.37,0.8726,5.63,3.19,1.313,5.15,1 68 | 14.01,14.29,0.8625,5.609,3.158,2.217,5.132,1 69 | 14.37,14.39,0.8726,5.569,3.153,1.464,5.3,1 70 | 12.73,13.75,0.8458,5.412,2.882,3.533,5.067,1 71 | 17.63,15.98,0.8673,6.191,3.561,4.076,6.06,2 72 | 16.84,15.67,0.8623,5.998,3.484,4.675,5.877,2 73 | 17.26,15.73,0.8763,5.978,3.594,4.539,5.791,2 74 | 19.11,16.26,0.9081,6.154,3.93,2.936,6.079,2 75 | 16.82,15.51,0.8786,6.017,3.486,4.004,5.841,2 76 | 16.77,15.62,0.8638,5.927,3.438,4.92,5.795,2 77 | 17.32,15.91,0.8599,6.064,3.403,3.824,5.922,2 78 | 20.71,17.23,0.8763,6.579,3.814,4.451,6.451,2 79 | 18.94,16.49,0.875,6.445,3.639,5.064,6.362,2 80 | 17.12,15.55,0.8892,5.85,3.566,2.858,5.746,2 81 | 16.53,15.34,0.8823,5.875,3.467,5.532,5.88,2 82 | 18.72,16.19,0.8977,6.006,3.857,5.324,5.879,2 83 | 20.2,16.89,0.8894,6.285,3.864,5.173,6.187,2 84 | 19.57,16.74,0.8779,6.384,3.772,1.472,6.273,2 85 | 19.51,16.71,0.878,6.366,3.801,2.962,6.185,2 86 | 18.27,16.09,0.887,6.173,3.651,2.443,6.197,2 87 | 18.88,16.26,0.8969,6.084,3.764,1.649,6.109,2 88 | 18.98,16.66,0.859,6.549,3.67,3.691,6.498,2 89 | 21.18,17.21,0.8989,6.573,4.033,5.78,6.231,2 90 | 20.88,17.05,0.9031,6.45,4.032,5.016,6.321,2 91 | 20.1,16.99,0.8746,6.581,3.785,1.955,6.449,2 92 | 18.76,16.2,0.8984,6.172,3.796,3.12,6.053,2 93 | 18.81,16.29,0.8906,6.272,3.693,3.237,6.053,2 94 | 18.59,16.05,0.9066,6.037,3.86,6.001,5.877,2 95 | 18.36,16.52,0.8452,6.666,3.485,4.933,6.448,2 96 | 16.87,15.65,0.8648,6.139,3.463,3.696,5.967,2 97 | 19.31,16.59,0.8815,6.341,3.81,3.477,6.238,2 98 | 18.98,16.57,0.8687,6.449,3.552,2.144,6.453,2 99 | 18.17,16.26,0.8637,6.271,3.512,2.853,6.273,2 100 | 18.72,16.34,0.881,6.219,3.684,2.188,6.097,2 101 | 16.41,15.25,0.8866,5.718,3.525,4.217,5.618,2 102 | 17.99,15.86,0.8992,5.89,3.694,2.068,5.837,2 103 | 19.46,16.5,0.8985,6.113,3.892,4.308,6.009,2 104 | 19.18,16.63,0.8717,6.369,3.681,3.357,6.229,2 105 | 18.95,16.42,0.8829,6.248,3.755,3.368,6.148,2 106 | 18.83,16.29,0.8917,6.037,3.786,2.553,5.879,2 107 | 18.85,16.17,0.9056,6.152,3.806,2.843,6.2,2 108 | 17.63,15.86,0.88,6.033,3.573,3.747,5.929,2 109 | 19.94,16.92,0.8752,6.675,3.763,3.252,6.55,2 110 | 18.55,16.22,0.8865,6.153,3.674,1.738,5.894,2 111 | 18.45,16.12,0.8921,6.107,3.769,2.235,5.794,2 112 | 19.38,16.72,0.8716,6.303,3.791,3.678,5.965,2 113 | 19.13,16.31,0.9035,6.183,3.902,2.109,5.924,2 114 | 19.14,16.61,0.8722,6.259,3.737,6.682,6.053,2 115 | 20.97,17.25,0.8859,6.563,3.991,4.677,6.316,2 116 | 19.06,16.45,0.8854,6.416,3.719,2.248,6.163,2 117 | 18.96,16.2,0.9077,6.051,3.897,4.334,5.75,2 118 | 19.15,16.45,0.889,6.245,3.815,3.084,6.185,2 119 | 18.89,16.23,0.9008,6.227,3.769,3.639,5.966,2 120 | 20.03,16.9,0.8811,6.493,3.857,3.063,6.32,2 121 | 20.24,16.91,0.8897,6.315,3.962,5.901,6.188,2 122 | 18.14,16.12,0.8772,6.059,3.563,3.619,6.011,2 123 | 16.17,15.38,0.8588,5.762,3.387,4.286,5.703,2 124 | 18.43,15.97,0.9077,5.98,3.771,2.984,5.905,2 125 | 15.99,14.89,0.9064,5.363,3.582,3.336,5.144,2 126 | 18.75,16.18,0.8999,6.111,3.869,4.188,5.992,2 127 | 18.65,16.41,0.8698,6.285,3.594,4.391,6.102,2 128 | 17.98,15.85,0.8993,5.979,3.687,2.257,5.919,2 129 | 20.16,17.03,0.8735,6.513,3.773,1.91,6.185,2 130 | 17.55,15.66,0.8991,5.791,3.69,5.366,5.661,2 131 | 18.3,15.89,0.9108,5.979,3.755,2.837,5.962,2 132 | 18.94,16.32,0.8942,6.144,3.825,2.908,5.949,2 133 | 15.38,14.9,0.8706,5.884,3.268,4.462,5.795,2 134 | 16.16,15.33,0.8644,5.845,3.395,4.266,5.795,2 135 | 15.56,14.89,0.8823,5.776,3.408,4.972,5.847,2 136 | 15.38,14.66,0.899,5.477,3.465,3.6,5.439,2 137 | 17.36,15.76,0.8785,6.145,3.574,3.526,5.971,2 138 | 15.57,15.15,0.8527,5.92,3.231,2.64,5.879,2 139 | 15.6,15.11,0.858,5.832,3.286,2.725,5.752,2 140 | 16.23,15.18,0.885,5.872,3.472,3.769,5.922,2 141 | 13.07,13.92,0.848,5.472,2.994,5.304,5.395,0 142 | 13.32,13.94,0.8613,5.541,3.073,7.035,5.44,0 143 | 13.34,13.95,0.862,5.389,3.074,5.995,5.307,0 144 | 12.22,13.32,0.8652,5.224,2.967,5.469,5.221,0 145 | 11.82,13.4,0.8274,5.314,2.777,4.471,5.178,0 146 | 11.21,13.13,0.8167,5.279,2.687,6.169,5.275,0 147 | 11.43,13.13,0.8335,5.176,2.719,2.221,5.132,0 148 | 12.49,13.46,0.8658,5.267,2.967,4.421,5.002,0 149 | 12.7,13.71,0.8491,5.386,2.911,3.26,5.316,0 150 | 10.79,12.93,0.8107,5.317,2.648,5.462,5.194,0 151 | 11.83,13.23,0.8496,5.263,2.84,5.195,5.307,0 152 | 12.01,13.52,0.8249,5.405,2.776,6.992,5.27,0 153 | 12.26,13.6,0.8333,5.408,2.833,4.756,5.36,0 154 | 11.18,13.04,0.8266,5.22,2.693,3.332,5.001,0 155 | 11.36,13.05,0.8382,5.175,2.755,4.048,5.263,0 156 | 11.19,13.05,0.8253,5.25,2.675,5.813,5.219,0 157 | 11.34,12.87,0.8596,5.053,2.849,3.347,5.003,0 158 | 12.13,13.73,0.8081,5.394,2.745,4.825,5.22,0 159 | 11.75,13.52,0.8082,5.444,2.678,4.378,5.31,0 160 | 11.49,13.22,0.8263,5.304,2.695,5.388,5.31,0 161 | 12.54,13.67,0.8425,5.451,2.879,3.082,5.491,0 162 | 12.02,13.33,0.8503,5.35,2.81,4.271,5.308,0 163 | 12.05,13.41,0.8416,5.267,2.847,4.988,5.046,0 164 | 12.55,13.57,0.8558,5.333,2.968,4.419,5.176,0 165 | 11.14,12.79,0.8558,5.011,2.794,6.388,5.049,0 166 | 12.1,13.15,0.8793,5.105,2.941,2.201,5.056,0 167 | 12.44,13.59,0.8462,5.319,2.897,4.924,5.27,0 168 | 12.15,13.45,0.8443,5.417,2.837,3.638,5.338,0 169 | 11.35,13.12,0.8291,5.176,2.668,4.337,5.132,0 170 | 11.24,13,0.8359,5.09,2.715,3.521,5.088,0 171 | 11.02,13,0.8189,5.325,2.701,6.735,5.163,0 172 | 11.55,13.1,0.8455,5.167,2.845,6.715,4.956,0 173 | 11.27,12.97,0.8419,5.088,2.763,4.309,5,0 174 | 11.4,13.08,0.8375,5.136,2.763,5.588,5.089,0 175 | 10.83,12.96,0.8099,5.278,2.641,5.182,5.185,0 176 | 10.8,12.57,0.859,4.981,2.821,4.773,5.063,0 177 | 11.26,13.01,0.8355,5.186,2.71,5.335,5.092,0 178 | 10.74,12.73,0.8329,5.145,2.642,4.702,4.963,0 179 | 11.48,13.05,0.8473,5.18,2.758,5.876,5.002,0 180 | 12.21,13.47,0.8453,5.357,2.893,1.661,5.178,0 181 | 11.41,12.95,0.856,5.09,2.775,4.957,4.825,0 182 | 12.46,13.41,0.8706,5.236,3.017,4.987,5.147,0 183 | 12.19,13.36,0.8579,5.24,2.909,4.857,5.158,0 184 | 11.65,13.07,0.8575,5.108,2.85,5.209,5.135,0 185 | 12.89,13.77,0.8541,5.495,3.026,6.185,5.316,0 186 | 11.56,13.31,0.8198,5.363,2.683,4.062,5.182,0 187 | 11.81,13.45,0.8198,5.413,2.716,4.898,5.352,0 188 | 10.91,12.8,0.8372,5.088,2.675,4.179,4.956,0 189 | 11.23,12.82,0.8594,5.089,2.821,7.524,4.957,0 190 | 10.59,12.41,0.8648,4.899,2.787,4.975,4.794,0 191 | 10.93,12.8,0.839,5.046,2.717,5.398,5.045,0 192 | 11.27,12.86,0.8563,5.091,2.804,3.985,5.001,0 193 | 11.87,13.02,0.8795,5.132,2.953,3.597,5.132,0 194 | 10.82,12.83,0.8256,5.18,2.63,4.853,5.089,0 195 | 12.11,13.27,0.8639,5.236,2.975,4.132,5.012,0 196 | 12.8,13.47,0.886,5.16,3.126,4.873,4.914,0 197 | 12.79,13.53,0.8786,5.224,3.054,5.483,4.958,0 198 | 13.37,13.78,0.8849,5.32,3.128,4.67,5.091,0 199 | 12.62,13.67,0.8481,5.41,2.911,3.306,5.231,0 200 | 12.76,13.38,0.8964,5.073,3.155,2.828,4.83,0 201 | 12.38,13.44,0.8609,5.219,2.989,5.472,5.045,0 202 | 12.67,13.32,0.8977,4.984,3.135,2.3,4.745,0 203 | 11.18,12.72,0.868,5.009,2.81,4.051,4.828,0 204 | 12.7,13.41,0.8874,5.183,3.091,8.456,5,0 205 | 12.37,13.47,0.8567,5.204,2.96,3.919,5.001,0 206 | 12.19,13.2,0.8783,5.137,2.981,3.631,4.87,0 207 | 11.23,12.88,0.8511,5.14,2.795,4.325,5.003,0 208 | 13.2,13.66,0.8883,5.236,3.232,8.315,5.056,0 209 | 11.84,13.21,0.8521,5.175,2.836,3.598,5.044,0 210 | 12.3,13.34,0.8684,5.243,2.974,5.637,5.063,0 211 | --------------------------------------------------------------------------------