任意生成平面上的100个点,用K-means算法将100个点分为两类。 输出最后的disp数组元素 上传源代码和运行结果截图
时间: 2024-09-25 22:19:16 浏览: 28
K-means_kmeans两类_k-means_k-means算法_数字聚类_K._
对不起,由于这里是文本交互环境,并不能直接生成随机点、应用K-means算法,也无法显示源代码和运行结果截图。但我可以向你解释如何在Python中使用sklearn库进行这个操作:
首先,你需要安装必要的库,如`numpy`和`sklearn`。然后,你可以按照以下步骤进行:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成100个随机点
np.random.seed(0) # 设置随机种子保证每次结果一致
points = np.random.rand(100, 2)
# 初始化K-means模型,选择两个聚类中心(k=2)
kmeans = KMeans(n_clusters=2)
# 拟合数据
kmeans.fit(points)
# 获取聚类标签
labels = kmeans.labels_
# 获取聚类中心,即disp数组
centroids = kmeans.cluster_centers_
# 可视化结果
plt.scatter(points[:, 0], points[:, 1], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], s=300, c='red') # 红色标记聚类中心
plt.show()
# disp数组就是cluster_centers_,这里包含了每个类别的中心点坐标
disp = centroids
```
运行这段代码后,你会得到一个二维散点图,其中颜色表示类别,红色圆圈表示聚类中心,disp数组就是`centroids`变量。
请注意,实际运行以上代码需要在支持图形展示的环境中,并且可能会因为随机初始化的原因导致不同的聚类结果。
阅读全文