Kmeans算法读取多维csv数据集分类并且可视化
时间: 2023-12-18 19:47:09 浏览: 106
Kmeans算法是一种常用的聚类算法,它可以将数据集划分为若干个簇,每个簇中的数据点彼此相似,而不同簇中的数据点差异较大。下面是用Python实现Kmeans算法读取多维csv数据集分类并且可视化的步骤:
1. 导入需要的库
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
```
2. 读取csv数据集
```python
data=pd.read_csv('data.csv')
```
3. 数据预处理
```python
#将数据集中的特征数据提取出来,存储在X中
X=data.iloc[:,[0,1,2,3]].values
```
4. Kmeans聚类
```python
#设置簇的个数为3
kmeans=KMeans(n_clusters=3)
#训练模型
y_kmeans=kmeans.fit_predict(X)
```
5. 可视化结果
```python
#可视化结果,用不同的颜色标记不同的簇
plt.scatter(X[y_kmeans==0,0],X[y_kmeans==0,1],s=100,c='red',label='Cluster1')
plt.scatter(X[y_kmeans==1,0],X[y_kmeans==1,1],s=100,c='blue',label='Cluster2')
plt.scatter(X[y_kmeans==2,0],X[y_kmeans==2,1],s=100,c='green',label='Cluster3')
#标记聚类中心
plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],s=300,c='yellow',label='Centroids')
plt.title('Kmeans Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()
```
完整代码如下:
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
data=pd.read_csv('data.csv')
X=data.iloc[:,[0,1,2,3]].values
kmeans=KMeans(n_clusters=3)
y_kmeans=kmeans.fit_predict(X)
plt.scatter(X[y_kmeans==0,0],X[y_kmeans==0,1],s=100,c='red',label='Cluster1')
plt.scatter(X[y_kmeans==1,0],X[y_kmeans==1,1],s=100,c='blue',label='Cluster2')
plt.scatter(X[y_kmeans==2,0],X[y_kmeans==2,1],s=100,c='green',label='Cluster3')
plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],s=300,c='yellow',label='Centroids')
plt.title('Kmeans Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()
```
运行以上代码,即可得到可视化的Kmeans聚类结果。
阅读全文