コード例 #1
0
#mass = gen.strip_data()
sample = mass[:sample_N]
smpl = data_gen(center, sample_N, K)
smpl.mass = sample
s_edges = smpl.get_edges()
s_edges.sort()
mst = m.get_MST(s_edges)
km_obj = k_means(mass, K)
#mass = gen.strip_data()
#convex = ch.convex_hull(result[0])
#dr.draw_MST(mst, mass)
#dr.draw_data(mass)

sample_clusters = m.get_clusters(
    sample)  # get clusters from hierarchical clustering
centroids = m.get_centroids()  # get center of clusters
res = 0

# nesting check
for k in range(K):
    convex = ch.convex_hull(sample_clusters[k])
    for i in centroids:
        if len(convex) != 0:
            if ch.is_inside(i, convex):
                res += 1
if res <= K:  # data is not nested we use k-means algorithm
    print("k-means")
    result = km_obj._k_means()
    dr.draw_clusters(result)
    for k in range(K):
        convex = ch.convex_hull(result[k])