机器学习实战SKlearn之KNN手写数字识别

# -*- 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
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值