python用k-means算法对iris聚类
时间: 2024-03-13 13:21:25 浏览: 65
好的,让我们来用 Python 实现 k-means 算法对 iris 数据集进行聚类。
首先,我们需要导入必要的库和数据集:
```python
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
iris = load_iris()
X = iris.data
y = iris.target
```
接下来,我们可以使用 KMeans 类对数据进行聚类。这里我们选择将数据分为 3 类,即 n_clusters=3:
```python
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
```
现在,我们可以使用聚类结果对数据进行可视化。这里我们将每个数据点的颜色设置为其所属的聚类:
```python
colors = ['r', 'g', 'b']
for i in range(len(X)):
plt.scatter(X[i][0], X[i][1], c=colors[kmeans.labels_[i]])
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='black')
plt.show()
```
上述代码将每个数据点绘制为散点图,并使用不同的颜色表示其所属的聚类。此外,我们还绘制了聚类中心点,以星号表示。
完整代码如下:
```python
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
iris = load_iris()
X = iris.data
y = iris.target
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
colors = ['r', 'g', 'b']
for i in range(len(X)):
plt.scatter(X[i][0], X[i][1], c=colors[kmeans.labels_[i]])
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='black')
plt.show()
```
运行代码后,你将看到 iris 数据集被分为三个聚类,并且每个聚类的中心点被表示为星号。
阅读全文