python利用k-mean聚类数据,得到10各类别中距离聚类中心最近的点
时间: 2024-04-08 16:33:51 浏览: 11
可以使用sklearn库中的KMeans类来实现K均值聚类算法。以下是一个示例代码,用于聚类数据并找到每个聚类中距离聚类中心最近的点:
```python
from sklearn.cluster import KMeans
import numpy as np
# 生成示例数据
data = np.random.rand(100, 2)
# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=10)
kmeans.fit(data)
# 获取每个样本所属的聚类标签
labels = kmeans.labels_
# 获取每个聚类的中心点
centers = kmeans.cluster_centers_
# 计算每个聚类中心与该聚类中最近的样本的距离
distances = []
for i in range(10):
cluster_data = data[labels == i] # 获取属于当前聚类的数据点
distances.append(np.min(np.linalg.norm(cluster_data - centers[i], axis=1)))
# 打印每个聚类中距离聚类中心最近的点
for i, distance in enumerate(distances):
closest_point = data[np.argmin(np.linalg.norm(data - centers[i], axis=1))]
print(f"Cluster {i+1}: Closest point - {closest_point}, Distance - {distance}")
```
这段代码首先生成了一个包含100个样本的二维数据集。然后使用KMeans算法将数据集聚类为10个类别。接下来,通过遍历每个聚类,计算每个聚类中心与该聚类中最近的样本的距离,并打印出结果。
请注意,这只是一个示例代码,实际使用时需要根据自己的数据集和需求进行适当的调整。