如何使用K-means对MNIST数据集进行聚类分析

之前做过一个使用K-means对MNIST数据集进行聚类分析的简单练习,但最近在CSDN上搜索发现许多相关内容是过于复杂,不便于初学者理解,因此在这里提供一种较为简单的聚类方法。
当然MNIST数据集较大,传统聚类不一定能取得较好效果,还是建议使用深度聚类算法对该数据集进行聚类分析。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.metrics import accuracy_score
# 加载MNIST数据集
digits = load_digits()
X = digits.data
y = digits.target

# 数据归一化处理
X_norm = (X - np.min(X)) / (np.max(X) - np.min(X))

# 使用PCA降维到2维方便可视化
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_norm)
# K-means进行聚类
kmeans = KMeans(n_clusters=10, random_state=42)
y_pred = kmeans.fit_predict(X_norm)
# 可视化聚类结果
labels = kmeans.labels_
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=labels, cmap='viridis')
plt.title("K-means Clustering of MNIST Data")
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.colorbar(label="Cluster")
plt.show()

在这里插入图片描述

# 输出分类准确度
accuracy = accuracy_score(y, y_pred)
print("分类准确度:", accuracy)
分类准确度: 0.18697829716193656
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值