# -*- coding: UTF-8 -*-
import numpy as np
import operator
from os import listdir
from sklearn.neighbors import KNeighborsClassifier as kNN
"""
函数说明:将32x32的二进制图像转换为1x1024向量。
Parameters:
filename - 文件名
Returns:
returnVect - 返回二进制图像的1x1024向量
"""
def img2vector(filename):
#创建1x1024零向量,np.zeros((a,b)),a代表第一层括号(最外层)看向元素个数,b代表第二层括号内向量元素个数即内层
#注意这里zeros(1,1024)产生的是二维数组[[0,0,....]]
return_vect = np.zeros((1, 1024)) # 数组的索引都是从0开始,但是size/shape中都是实际数目。
#打开文件
fr = open(filename)
#按行读取
for i in range(32):
#读一行数据
lineStr = fr.readline()
#每一行的前32个元素依次添加到returnVect中
for j in range(32): #range(32):0,1,2,....31
return_vect[0,32*i+j] = int(lineStr[j]) #0:向量第一层内的第一个分向量
#返回转换后的1x1024向量
return return_vect
"""
函数说明:手写数字分类测试
"""
def handwriting_Cla
机器学习实战SKlearn之KNN手写数字识别
最新推荐文章于 2024-08-18 09:00:00 发布
本文通过SKlearn库介绍如何运用K近邻(KNN)算法进行手写数字识别,详细讲解了数据预处理、模型训练与验证、以及模型评估等步骤,旨在帮助读者深入理解KNN算法的应用。
摘要由CSDN通过智能技术生成