使用k均值算法进行聚类(预期聚类数量为4),并可视化结果的代码
时间: 2024-11-27 16:21:25 浏览: 9
使用Python的Scikit-learn库来进行k-means聚类分析,并通过matplotlib进行可视化,下面是一个简单的例子。假设我们有一个二维数据集,我们将对它进行4类的聚类:
```python
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# 创建样本数据
n_samples, n_features = 100, 2
X, _ = make_blobs(n_samples=n_samples, centers=4, random_state=42)
# 使用KMeans进行聚类
kmeans = KMeans(n_clusters=4, random_state=42)
y_pred = kmeans.fit_predict(X)
# 可视化聚类结果
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='viridis')
plt.title("K-Means Clustering (4 clusters)")
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
# 显示聚类中心
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], s=300, c='red', label='Centroids')
plt.legend()
plt.show()
```
这段代码首先生成了一个包含4个簇的随机数据,然后创建KMeans模型并设置簇的数量为4。`fit_predict`函数用于拟合数据并预测每个点的所属簇。最后,我们使用matplotlib绘制了数据点的颜色编码,表示它们所在的簇,以及聚类中心。
阅读全文