<p>你的解决方案是正确的</p>
<p>您将获得以下群集:</p>
<ul>
<li>簇<strong>1</strong>,元素<em>ind4</em>、<em>ind5</em>、<em>ind6</em>和<em>ind9</em>(彼此之间的距离为0)</李>
<li>带有元素<em>ind1</em></li>
<li>带有元素<em>ind7</em></li>
<li>带有元素<em>ind8</em></li>
<li>带有元素<em>ind2</em></li>
<li>带有元素<em>ind3</em></li>
</ul>
<p>根据需要,只有距离为0的图元才会聚集在簇1中。簇2到簇6是<em>简并</em>簇,具有单个孤立元素</p>
<p>让我们修改距离,以便创建更合适的簇:</p>
<pre><code>X = np.array([ 0, 27, 1, 2, 1, 2, 1, 1,
2, 30, 31, 29, 31, 30, 30,
28, 29, 27, 29, 28, 28,
0, 0, 1, 2, 0,
0, 2, 2, 1,
1, 2, 0,
0, 1,
2])
Z = linkage(X, 'single')
max_d = 0
clusters = fcluster(Z, max_d, criterion='distance')
print("Clusters:", clusters)
for cluster_id in np.unique(clusters):
members = np.where(clusters == cluster_id)[0]
print(f"Cluster {cluster_id} has members {members}")
</code></pre>
<p>获取:</p>
<pre><code>Clusters: [2 2 4 3 3 3 1 1 3]
Cluster 1 has members [6 7]
Cluster 2 has members [0 1]
Cluster 3 has members [3 4 5 8]
Cluster 4 has members [2]
</code></pre>