一、数据准备
我们这里准备的是已经处理好的手写数字图像为32*32的二进制图像。
首先,我们需要将32*32的二进制图像矩阵转化为1*1024的向量,这里我们通过函数img2vector实现。
# 将text文件里面32*32的矩阵转化为1*1024的向量
def img2vector(filename):
returnVector = np.zeros((1, 1024))
fr = open(filename)
for i in range(32):
lineStr = fr.readline()
for j in range(32):
returnVector[0, 32 * i + j] = int(lineStr[j])
return returnVector
我们通过循环矩阵,将矩阵的每一行拼接在一起,得到一个1*1024的向量。每个二进制32*32图像如图所示。




本文介绍了一个使用kNN算法对手写数字进行识别的项目。首先,将32*32的二进制图像矩阵转换为1*1024的向量。然后,利用sklearn库实现kNN分类器,对训练集和测试集进行处理,最终得到约1.27%的错误率。
最低0.47元/天 解锁文章
699

被折叠的 条评论
为什么被折叠?



