python做kmeans聚类并画图
时间: 2023-12-23 19:04:25 浏览: 37
以下是使用Python进行K-means聚类并绘制散点图的步骤和代码:
1.导入必要的库和数据
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 导入数据
data = pd.read_csv('data.csv')
```
2.数据预处理
```python
# 数据标准化
data = (data - data.mean()) / data.std()
```
3.确定最佳的K值
```python
# 通过手肘法确定最佳的K值
SSE = []
for k in range(1, 10):
estimator = KMeans(n_clusters=k)
estimator.fit(data)
SSE.append(estimator.inertia_)
X = range(1, 10)
plt.xlabel('K')
plt.ylabel('SSE')
plt.plot(X, SSE, 'o-')
plt.show()
```
4.进行K-means聚类
```python
# 进行K-means聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(data)
```
5.绘制散点图
```python
# 绘制散点图
colors = ['red', 'blue', 'green']
for i in range(3):
plt.scatter(data[kmeans.labels_ == i]['x'], data[kmeans.labels_ == i]['y'], c=colors[i])
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=200, c='black')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
```
其中,'data.csv'是包含数据的CSV文件,'x'和'y'是数据中的两个特征。