1、使用pandas读取wine.csv,赋给数据框wine_data 2、wine_data中Class列为酒的类别,其余列为酒的相应成分 3、构建K-Means模型,聚集成3个簇
时间: 2024-03-20 20:45:30 浏览: 19
好的,下面是实现的代码:
```python
import pandas as pd
from sklearn.cluster import KMeans
# 读取wine.csv文件,赋给数据框wine_data
wine_data = pd.read_csv('wine.csv')
# 分离出特征和目标列
X = wine_data.iloc[:, 1:]
y = wine_data['Class']
# 构建K-Means模型,聚集成3个簇
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
# 输出聚类结果
labels = kmeans.labels_
wine_data['Cluster'] = labels
print(wine_data)
```
首先,我们使用pandas库的read_csv()函数读取wine.csv文件,并将数据赋值给wine_data数据框。
然后,我们将特征列和目标列分别赋值给变量X和y。
接着,我们使用sklearn库的KMeans()函数构建K-Means模型,并将聚成3个簇。
然后,我们使用fit()函数对模型进行训练,然后使用labels_属性获取聚类结果。
最后,我们将聚类结果添加到数据框中,并输出结果。
希望对您有帮助。
相关问题
利用k-means算法对UCI数据库中wine数据集聚类的代码
以下是利用k-means算法对UCI数据库中wine数据集聚类的Python代码:
```python
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 读取数据集
data = pd.read_csv('wine.data', header=None)
data.columns = ['class', 'Alcohol', 'Malic acid', 'Ash', 'Alcalinity of ash', 'Magnesium', 'Total phenols',
'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins', 'Color intensity', 'Hue',
'OD280/OD315 of diluted wines', 'Proline']
# 分离特征和标签
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values
# 标准化特征
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# 输出聚类结果
print(kmeans.labels_)
```
其中,'wine.data'是wine数据集的文件名。在代码中,先用Pandas库读取数据集,然后将特征和标签分离。接着,使用StandardScaler将特征进行标准化处理。最后使用sklearn库中的KMeans算法进行聚类。聚类时选择3个簇,输出聚类结果。
对UCI数据库中wine数据集用k-means算法聚类并可视化的代码
以下是对UCI数据库中wine数据集用k-means算法聚类并可视化的Python代码:
```python
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv('wine.data', header=None)
data.columns = ['class', 'Alcohol', 'Malic acid', 'Ash', 'Alcalinity of ash', 'Magnesium', 'Total phenols',
'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins', 'Color intensity', 'Hue',
'OD280/OD315 of diluted wines', 'Proline']
# 分离特征和标签
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values
# 标准化特征
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.xlabel('Alcohol')
plt.ylabel('Malic acid')
plt.show()
```
在代码中,首先读取数据集,分离特征和标签,标准化特征,然后使用KMeans聚类算法聚类。最后,使用Matplotlib库进行可视化,将聚类结果用散点图表示。其中,散点图的x轴是Alcohol特征,y轴是Malic acid特征,每个点的颜色代表该点的聚类类别。