def cluster(self):
        l_method = agglomerative_l_method(self.X)

        suggest_n = len(l_method.cluster_centers_)
        agg = AgglomerativeClustering(suggest_n)
        agg.fit(np.array(self.X, copy=True))
        # agg.fit(self.X)

        # agg_labels = agg.labels_
        # l_method_labels = l_method.labels_
        #
        # print('agg_labels:', agg_labels)
        # print('l_method_labels:', l_method_labels)

        # first tier clustering, using agglomerative clustering
        self.clustering_model = DividableClustering()
        self.clustering_model.fit(self.X, l_method.labels_)
from agglomerative_clustering import AgglomerativeClusteringMaxMergeDist, AgglomerativeClustering
from dataset import *

dataset = get_iris()

print("dataset size:", len(dataset.X))
#
# agg = AgglomerativeClusteringMaxMergeDist()
# centroids, cluster_member_cnt = agg.fit(dataset.X, 0.2)
#
# print('grouped size:', len(centroids))

agg = AgglomerativeClustering(3)
agg.fit(dataset.X)

predict_X = agg.predict(dataset.X)
print("predict_X:", predict_X)