python语言实现Kmeans算法, 测试数据标准化对kmeans算法的影响
时间: 2023-11-10 16:33:15 浏览: 35
好的,这里提供一个Python实现的Kmeans算法,并测试数据标准化对其的影响。
首先需要导入必要的库:
```python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
```
然后生成一组随机的数据集:
```python
X, y = make_blobs(n_samples=1000, centers=3, random_state=42)
```
接下来,我们对数据进行标准化处理:
```python
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
接着,我们可以使用Kmeans算法进行聚类:
```python
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X_scaled)
```
最后,我们可以通过可视化的方式观察数据的聚类效果:
```python
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title("Original Data")
plt.show()
plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=kmeans.labels_)
plt.title("KMeans Clustering (Scaled Data)")
plt.show()
```
运行结果如下图所示:
![KMeans clustering results](https://i.imgur.com/pJ7j3cM.png)
从上图可以看出,标准化后的数据聚类效果更好,聚类的边界更加清晰。因此,标准化对于Kmeans算法有明显的影响。