def get_initial_clustering(service, metadata, metrics):
s_score, cluster_metrics = msu.get_cluster_metrics(metadata, service)
if not cluster_metrics:
return None
common_metrics_all = set()
initial_idx = np.zeros(len(metrics), dtype=np.int)
for key, value in cluster_metrics.iteritems():
other_metrics = value['other_metrics']
common_metrics = set(metrics) & set(other_metrics)
for metric in list(common_metrics):
initial_idx[list(metrics).index(metric)] = int(key)
common_metrics_all = (common_metrics_all | common_metrics)
# assign remaining metrics to a new cluster (if any)
remaining_metrics = list(metrics - common_metrics_all)
remaining_cluster = max(initial_idx) + 1
if remaining_metrics:
for metric in remaining_metrics:
initial_idx[list(metrics).index(metric)] = remaining_cluster
return initial_idx
评论列表
文章目录