. 2D数据聚类:读取二维坐标数据,通过k-means算法将其聚类,并随机着色可视化输出聚类结果的算法
时间: 2024-05-04 18:19:14 浏览: 17
以下是Python实现K-Means算法进行2D数据聚类的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans
# 读取数据
data = np.loadtxt('data.txt', delimiter=',')
# 聚类数
k = 3
# 进行K-Means聚类
kmeans = KMeans(n_clusters=k)
kmeans.fit(data)
# 输出聚类结果
labels = kmeans.labels_
centers = kmeans.cluster_centers_
print('Labels:', labels)
print('Centers:', centers)
# 可视化输出聚类结果
colors = ['r', 'g', 'b', 'c', 'm', 'y', 'k']
for i in range(len(data)):
plt.scatter(data[i][0], data[i][1], c=colors[labels[i]])
for i in range(k):
plt.scatter(centers[i][0], centers[i][1], c=colors[i], marker='x')
plt.show()
```
其中,`data.txt`是二维坐标数据文件,每行代表一个样本,第一列为横坐标,第二列为纵坐标。`KMeans`类是sklearn库中的聚类算法类,`n_clusters`参数设置聚类数。`labels_`属性表示每个样本所属的聚类类别,`cluster_centers_`属性表示聚类中心。最后,用`matplotlib`库可视化输出聚类结果。