补档最后一个例子
识别手写数字
前面KNN算法已经写好了,这个栗子也没有用到归一化处理
我们的数据集、测试集是3232的文本文档,用0/1表示
文件名0-1.txt代表数字0的第一个数据,因此可以通过字符串切片来获得label标签
处理有两部分:
1.将图像格式化处理为一个向量
把3232的向量变成1*1024
'''
来解决手写识别系统部分
把32*32处理成1*1024的向量
'''
def getfile2(filename):
returnVect = np.zeros((1,1024))
fr=open(filename)
for i in range(32):
linestr = fr.readline()
for j in range(32):
returnVect[0,i*32+j]=int(linestr[j])
return returnVect
2.将大批量的文件导入,形成np.matrix类型的训练集和测试集
这里用到了os模块中的listdir函数,作用是获得该目录下的所有的文件名
from os import listdir
总体的代码如下
import numpy as np
import matplotlib.pyplot as plt
import operator
from os import listdir
'''
K近邻算法实现
inX:用于分类的向量
dataSet数据集
labels标签
k 就是取前K个
'''
def calssify0(inX, dataSet, labe