Код: Выделить всё
liste = [ (1, ["A",1,"C"]) , (3, ["A",1,"C"]) , (1000.256, ["B",1,"C"]) , (1002, ["C",1,"C"]) , (5, ["D",1,"C"]) , (999.3, ["E",1,"C"]) , (2.5, ["F",1,"C"])]
xxx=np.array(liste,dtype=object)
best_n_clusters,best_silhouette_score=None,-1
range_n_clusters=[2,3,4,5,6,7,8,9,10,11]
for n_clusters in range_n_clusters:
clusterer=KMeans(n_clusters=n_clusters)
cluster_labels=clusterer.fit(xxx)
silhouette_avg=silhouette_score(xxx,cluster_labels)
if silhouette_avg>best_silhouette_score:
best_silhouettescore=silhouette_avg
best_n_clusters=n_clusters
kmeans=KMeans(n_clusters=best_n_clusters)
cluster_labels=kmeans.fit(xxx)
for r in range(best_n_clusters):
group=xxx[cluster_labels==i]
print(f"Groupe {r+1} : {group}")
Здесь, в этом примере, мне нужны 2 списка при выходе при печати:
- [ (1, ["A",1,"C"]) , (3, ["A",1,"C"]) , (5, ["D",1,"C"]) , (2.5, ["F",1,"C"])]
- [ (1000.256, [" B",1,"C"]) , (1002, ["C",1,"C"]) , (999.3, ["E",1,"C"])].
У меня проблема в том, что структура, которую я даю для этого, "clusterer.fit(xxx)" возвращает ошибку: "установка элемента массива с помощью последовательности".
Как я могу решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/787 ... ber-in-pos