数据集生成:
- 使用 make_blobs 函数生成包含300个样本的数据集,设定聚类中心为4个,聚类标准差为0.60,随机种子 random_state = 0 保证每次运行生成的数据相同。
K - 均值模型:
-
初始化 KMeans 类,设置聚类数 n_clusters = 4 ,并使用 random_state = 0 确保每次运行结果一致。
-
使用 fit 方法将模型拟合到生成的数据集 X 上。
获取结果:
-
通过 labels_ 属性获取每个样本的聚类标签。
-
通过 cluster_centers_ 属性获取聚类中心的坐标。
可视化:
- 使用 matplotlib 库进行可视化。将样本点根据其聚类标签用不同颜色绘制,聚类中心用红色的 x 标记绘制
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
生成自定义数据集
X, _ = make_blobs(n_samples = 300, centers = 4,
cluster_std = 0.60, random_state = 0)
初始化并拟合K - 均值模型
kmeans = KMeans(n_clusters = 4, random_state = 0)
kmeans.fit(X)
获取聚类标签
labels = kmeans.labels_
获取聚类中心
cluster_centers = kmeans.cluster_centers_
可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c = labels, cmap='viridis')
plt.scatter(cluster_centers[:, 0], cluster_centers[:, 1], marker='x', s=200, linewidths = 3, color='r')
plt.title('K - Means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()