MNIST手写数字识别实验(KNN)

本文介绍了使用KNN算法进行MNIST手写数字识别的实验过程。数据预处理后,发现未经优化的KNN计算量巨大。通过采样降低计算复杂性,但即便如此,不同k值下的正确率仅达到20%左右。引入二值化处理后,正确率显著提升至96.3%,但k值对结果的影响不明显。
摘要由CSDN通过智能技术生成

数据集:MINST
数据预处理参考了https://blog.csdn.net/simple_the_best/article/details/75267863
处理出来有用的信息也就是 28 × 28 28 \times 28 28×28的矩阵和Label信息。
KNN的实现:

def KNN(train_dataset, train_labels, input_vec, distance, k=1):
    dis_labels = []
    n = len(train_dataset)
    for i in range(n):
        vec = train_dataset[i]
        label = train_labels[i]
        dis_labels.append([distance(vec, input_vec), label])
    dis_labels.sort
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值