将数据用kmeans算法聚类分为两类并作图显示,代码实现
时间: 2024-11-28 21:26:03 浏览: 22
在Python中,我们可以使用sklearn库中的KMeans算法来进行数据聚类,并通过matplotlib库将结果可视化。以下是一个基本的步骤和代码示例:
首先,确保安装了必要的库:
```bash
pip install numpy pandas scikit-learn matplotlib
```
然后,你可以按照以下代码编写:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# 创建随机数据集(假设我们有二维数据)
n_samples = 300
centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=n_samples, centers=centers, cluster_std=0.4,
random_state=0)
# 使用KMeans进行聚类
kmeans = KMeans(n_clusters=2) # 我们这里设定为两类
kmeans.fit(X)
# 获取聚类中心
centroids = kmeans.cluster_centers_
labels_pred = kmeans.labels_
# 绘制原始数据点以及聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels_pred, cmap='viridis')
plt.scatter(centroids[:, 0], centroids[:, 1], color='red', marker='x', s=200)
plt.title('K-means Clustering Result')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
```
在这个例子中,`make_blobs`函数生成了一些模拟的数据点,然后`KMeans`模型对它们进行聚类,最后我们用散点图展示原始数据点(根据聚类标签颜色区分)和找到的两个簇的中心点。
阅读全文