调用k-means算法对生成的数据集进行聚类,对聚类效果进行展示。 实验要求: (1)导入需要的库; (2)生成训练集; (3)用k-means算法将这些数据聚为3类,并绘制聚类效果; (4)输出k-means聚类的标签;
时间: 2024-10-20 16:02:26 浏览: 35
kmeans-and-spectral:使用K-means算法和Spectral Clusting算法对玩具数据集进行聚类
为了帮助您完成这个实验,我们首先需要导入必要的库,如`numpy`用于生成数据,`sklearn`中的`KMeans`类来进行聚类,以及`matplotlib`用于可视化结果。以下是一个示例代码:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# (1)导入需要的库
from sklearn.datasets import make_blobs
# (2)生成训练集 - 使用make_blobs函数创建简单数据集
n_samples, n_features = 500, 2
centers = [[1, 1], [-1, -1], [1, -1]]
X, y = make_blobs(n_samples=n_samples, centers=centers, cluster_std=1.0, random_state=42)
# (3)用k-means算法进行聚类
kmeans = KMeans(n_clusters=3, random_state=0) # 设置为3类
kmeans.fit(X)
# (4)获取聚类标签
labels = kmeans.labels_
# (5)绘制聚类效果
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.title('K-means Clustering Result')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.colorbar()
plt.show()
# 输出k-means聚类的标签
print("Cluster labels:", labels)
```
这段代码首先生成了一个包含3个中心点的数据集,然后使用K-means算法将其分为3类。然后我们将每个样本根据其所属的簇颜色标记在散点图上,展示了聚类的效果。最后,它打印出了每个样本的聚类标签。
阅读全文