根据相似度进行k-means聚类可视化代码
时间: 2024-04-24 22:25:59 浏览: 83
要根据相似度进行 K-means 聚类的可视化,您可以使用以下代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 定义样本数据和相似度矩阵
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
similarity_matrix = np.array([[1, 0.8, 0.2, 0.1, 0.9, 0.3],
[0.8, 1, 0.5, 0.3, 0.7, 0.2],
[0.2, 0.5, 1, 0.9, 0.3, 0.6],
[0.1, 0.3, 0.9, 1, 0.4, 0.7],
[0.9, 0.7, 0.3, 0.4, 1, 0.5],
[0.3, 0.2, 0.6, 0.7, 0.5, 1]])
# 使用 K-means 进行聚类
k = 2
kmeans = KMeans(n_clusters=k).fit(similarity_matrix)
# 获取聚类结果和对应的标签
labels = kmeans.labels_
# 绘制可视化结果
colors = ['r', 'g', 'b', 'c', 'm', 'y']
for i in range(len(X)):
plt.scatter(X[i][0], X[i][1], c=colors[labels[i]])
plt.xlabel('X')
plt.ylabel('Y')
plt.title('K-means Clustering based on Similarity')
plt.show()
```
这段代码使用了`sklearn`库中的`KMeans`类来进行 K-means 聚类。您需要提供样本数据 `X` 和相似度矩阵 `similarity_matrix`。根据相似度矩阵,我们可以使用 K-means 对样本进行聚类,并获得每个样本的标签。
最后,我们可以根据每个样本的标签,使用不同的颜色将样本在二维空间中进行可视化。请根据您的实际需求修改样本数据和相似度矩阵,并调整参数来获得更好的聚类可视化效果。
阅读全文