对鸢尾花iris数据集前两列进行k-mean实验,分别设置2个聚类、3个聚类、4个聚类,并可视化。
时间: 2024-09-19 20:01:43 浏览: 50
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
对鸢尾花(Iris)数据集进行K-means聚类分析通常用于探索数据的自然分组。这个经典的数据集包含三种不同的鸢尾花品种,每种都有四列特征,包括花萼长度、花萼宽度、花瓣长度和花瓣宽度。
首先,你需要加载iris数据集,比如在Python中可以使用scikit-learn库的load_iris函数:
```python
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 加载数据
iris = datasets.load_iris()
X = iris.data[:, :2] # 取出前两列作为输入特征,通常是考虑降维展示
```
接下来,你可以设置不同的聚类数k,分别为2、3和4,然后运行K-means算法并可视化结果:
1. **对于两个聚类** (k=2):
```python
kmeans_2 = KMeans(n_clusters=2)
labels_2 = kmeans_2.fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=labels_2, cmap='viridis')
plt.title('K-means with 2 clusters')
```
2. **对于三个聚类** (k=3):
```python
kmeans_3 = KMeans(n_clusters=3)
labels_3 = kmeans_3.fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=labels_3, cmap='viridis')
plt.title('K-means with 3 clusters')
```
3. **对于四个聚类** (k=4):
```python
kmeans_4 = KMeans(n_clusters=4)
labels_4 = kmeans_4.fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=labels_4, cmap='viridis')
plt.title('K-means with 4 clusters')
```
最后别忘了显示和保存图表:
```python
plt.show()
```
每个图会展示数据点如何被分配到不同的聚类中心,颜色表示所属的簇。你可以通过观察各个聚类的形状和分布来判断选择的聚类数是否合适。
阅读全文