def main(): test = False heuristic = 'Centroid' reader = DataReader() data = reader.loadData() dataArray = reader.getDataArray() if test == True: clusters = [ Cluster(dataPoint, data[dataPoint]) for dataPoint in list(data.keys())[:5] ] else: clusters = [ Cluster(dataPoint, data[dataPoint]) for dataPoint in list(data.keys())[:] ] Cluster.generateInitialDistanceMatrix(test) Uni = UnionTracker(len(clusters)) # print('') iteration = 0 while (Cluster.currentClusterCount() > 1): clsA, clsB, dist = Cluster.findMinDistance() mergedRC = min(clsA, clsB) toDelete = max(clsA, clsB) newIDm, newIDd, pts, factor = Cluster.mergeSimilarClusters( mergedRC, toDelete, iteration, dist, heuristic=heuristic) Uni.union(newIDd, newIDm, dist, pts, iteration) iteration += 1 labels = list(data.keys()) drawDendrogram(Uni, labels, heuristic)
def main(): test = False # heuristic = 'Centroid' # heuristic = 'Min' # heuristic = 'Max' # heuristic = parser2() parser = argparse.ArgumentParser() parser.add_argument("echo", help="Please give arguments as 'Centroid','Min','Max'") args = parser.parse_args() heuristic = args.echo reader = DataReader() data = reader.loadData() dataArray = reader.getDataArray() if test == True: clusters = [ Cluster(dataPoint, data[dataPoint]) for dataPoint in list(data.keys())[:5] ] else: clusters = [ Cluster(dataPoint, data[dataPoint]) for dataPoint in list(data.keys())[:] ] Cluster.generateInitialDistanceMatrix(test) Uni = UnionTracker(len(clusters)) print('') iteration = 0 while (Cluster.currentClusterCount() > 1): clsA, clsB, dist = Cluster.findMinDistance() mergedRC = min(clsA, clsB) toDelete = max(clsA, clsB) newIDm, newIDd, pts, factor = Cluster.mergeSimilarClusters( mergedRC, toDelete, iteration, dist, heuristic=heuristic) Uni.union(newIDd, newIDm, dist, pts, iteration) iteration += 1 labels = list(data.keys()) # print(len(linkage_matrix)) print("Clustering Done!!") drawDendrogram(Uni, labels, heuristic) print("Output file stored in data/results")