我一般来说对Python还是很陌生。我要写的是一个优化的嵌套“ for”循环,该循环将能够检查k个均值的五十次迭代,这些迭代正在运行中查找它们的平均兰德分值,然后挑选出k的最佳结果指调整后的rand和共同信息得分,并存储该最佳迭代的聚类信息。
下面是平均50次kmeans迭代的代码:
import nltk
from nltk.cluster.kmeans import KMeansClusterer
NUM_CLUSTERS = 5
ars=0
amis=0
data=variables_X
for i in range(50):
kclusterer = KMeansClusterer(NUM_CLUSTERS, distance=nltk.cluster.util.cosine_distance, repeats=10)
kmeans.fit(variables_X)
labels = kclusterer.cluster(data, assign_clusters=True)
ars=ars+adjusted_rand_score(true_labels.values.flatten(), labels)
amis=amis+adjusted_mutual_info_score(true_labels.values.flatten(), labels)
av_ars=ars/50
av_amis=amis/50
print(av_ars)
print(av_amis)