用西瓜数据集完成K均值聚类
时间: 2023-07-15 22:12:38 浏览: 53
好的,首先要明确K均值聚类的步骤:
1. 选择K个初始聚类中心
2. 将数据点分配到离它们最近的聚类中心
3. 重新计算每个聚类的中心
4. 重复步骤2和3,直到聚类中心不再发生变化或达到预定的迭代次数
接下来,我们将使用Python中的sklearn库完成K均值聚类的实现,以西瓜数据集为例:
```python
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler
# 加载数据集
data = pd.read_csv('watermelon.csv')
# 选择需要聚类的特征列
features = ['density', 'sugar_content']
# 数据归一化
scaler = MinMaxScaler()
data[features] = scaler.fit_transform(data[features])
# 初始化聚类模型
kmeans = KMeans(n_clusters=3, random_state=42)
# 训练模型
kmeans.fit(data[features])
# 获取每个样本所属的聚类标签
labels = kmeans.labels_
# 打印聚类结果
print(labels)
```
以上代码中,我们首先使用pandas库加载西瓜数据集,然后选择需要聚类的特征列。为了避免不同特征之间的量纲不同导致的问题,我们使用了MinMaxScaler对数据进行归一化处理。
接着,我们使用sklearn库中的KMeans算法初始化聚类模型,并训练模型。最后,我们获取每个样本所属的聚类标签,并打印聚类结果。
运行以上代码后,控制台会输出每个样本所属的聚类标签,例如:
```
[0 0 2 2 1 1 0 2 0 1 1 2 2 0 2]
```
这里,0、1、2分别表示3个不同的聚类标签。