Sklearn中的make_blobs的方法生成数据,用K-Means聚类并可视化
时间: 2024-09-10 09:22:01 浏览: 69
`make_blobs`是`sklearn.datasets`模块中提供的一个函数,用于生成用于聚类分析的多维高斯分布的随机数据。通常,这些数据可以用于机器学习中的聚类算法,如K-Means聚类算法。
在使用`make_blobs`方法生成数据后,可以利用`sklearn.cluster.KMeans`类来实现K-Means聚类算法。最后,使用绘图库如`matplotlib`来可视化生成的数据点以及聚类的结果。
下面是一个使用`make_blobs`生成数据,应用K-Means聚类,并进行可视化的基本示例:
```python
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
# 生成数据集
X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)
# 应用K-Means算法进行聚类
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis') # 使用聚类结果着色
# 绘制聚类中心点
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75, marker='X')
plt.show()
```
在这个示例中,首先生成了300个样本,分布在4个中心点上,每个中心点的分布标准差为0.60。然后使用K-Means算法将这些数据点聚成4个类别,并将聚类结果用不同颜色绘制在图中。最后,使用红色的'X'标记将聚类中心点标出。
阅读全文