k均值导入西瓜数据集
时间: 2023-07-02 21:04:23 浏览: 100
好的,首先我们需要安装一些必要的库,包括 pandas、numpy、matplotlib 和 sklearn。你可以在命令行中执行以下命令来安装这些库:
```
pip install pandas numpy matplotlib scikit-learn
```
接下来,我们可以从UCI Machine Learning Repository下载西瓜数据集,或者使用已经下载好的数据集文件。这里我们使用第二种方式。
首先,我们需要导入pandas库并读取数据集文件。
```python
import pandas as pd
data = pd.read_csv('watermelon.csv')
X = data.iloc[:, 1:3].values
```
这里我们只选择了数据集文件中的前两列作为特征,即密度和含糖率,忽略了其他列。为了方便,我们将数据存储在一个名为X的变量中。
接下来,我们可以使用sklearn库中的KMeans类来实现K均值聚类算法。
```python
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
```
这里我们指定了聚类数为3,即将数据集分成3类。通过KMeans类的fit方法,我们可以对数据进行聚类,并且得到每个样本所属的簇。
最后,我们可以将聚类结果可视化。
```python
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='r')
plt.show()
```
这里我们使用scatter方法绘制散点图,并指定每个样本所属的簇。另外,我们还使用scatter方法绘制聚类中心,用星号表示,并且将颜色设置为红色。
完整代码如下所示:
```python
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
data = pd.read_csv('watermelon.csv')
X = data.iloc[:, 1:3].values
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='r')
plt.show()
```
阅读全文