knn算法之数字识别

这篇博客详细介绍了如何运用knn算法进行数字识别,包括从读取和处理32x32像素的数字图像数据,转换为1024维特征向量,构建训练集,最终进行测试并评估准确率。作者强调了在数据处理和转换过程中的关键步骤,如将字符串转换为二维数组,并探讨了如何确定最终数组的行下标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

(一)训练集文件列表

(二)拿文件,读原数据 

 (三)数据处理

(四)将上一步的一行1024个0,1赋值给最终的数组(knn计算的数组)

(五)将最终数组进行保存为训练集的训练结果(分类器)

(六)训练集完成(分类器)

(七)测试集制作

(八)进行测试(knn算法)


数字识别所用文件来源:https://download.youkuaiyun.com/download/sinat_38068807/11212863

(一)训练集文件列表

           32行32列

(二)拿文件,读原数据 

这一步的目标是:读取每一个txt,得到原数据

(1)读取小提示

 输出:

 默认读出的是科学计数法的数字,我们要得到原来的数据,则在加载文件时加上dtype为str

结果(原txt文件里每行数据时隔以为列表):

 (三)数据处理

这一步的目标是:每一个txt的数据(即上图的一维数组)处理为一行1024,即32x32个数字,并且转为int方便knn计算

(1)将上图变成二维数组再展平就是一行了

问题:1、这里一串字符串要变成二维数组的一行,怎么转?

          解法:拿到这个红框,用list(map(int,红框))   ----》[0,0,0,0,0,0,0,0,0]

          2、二维数组的第二行以及往下多行怎么赋值?

          解法:用上图列表的下标作为二维数组的行坐标

实践:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值