怎么用K-means算法实现在MNIST数据集上的聚类实现,写出python代码
时间: 2024-02-11 19:05:29 浏览: 185
深大计软_最优化方法_实验1:K-Means聚类之Python实现手写数字图像MNIST分类
5星 · 资源好评率100%
好的,以下是使用K-means算法实现在MNIST数据集上的聚类的Python代码:
``` python
from sklearn.cluster import KMeans
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
# 加载MNIST数据集
digits = load_digits()
# 使用K-means算法进行聚类
kmeans = KMeans(n_clusters=10, random_state=0)
clusters = kmeans.fit_predict(digits.data)
# 绘制聚类结果
fig, ax = plt.subplots(2, 5, figsize=(8, 3))
centers = kmeans.cluster_centers_.reshape(10, 8, 8)
for axi, center in zip(ax.flat, centers):
axi.set(xticks=[], yticks=[])
axi.imshow(center, interpolation='nearest', cmap=plt.cm.binary)
# 输出聚类结果
print("聚类结果:")
for i in range(10):
idx = clusters == i
print(f"聚类{i}包含的样本数:{idx.sum()}")
```
这段代码使用了scikit-learn库中的KMeans算法进行聚类,并使用matplotlib库绘制了聚类结果。聚类结果也会在控制台输出。在这里,我们将MNIST数据集中的手写数字分为10类。
阅读全文