以欧几里得距离度量样本间的相似程度。对于一个测试样本首先计算该样本与每个训练样本间的距离,然后按距离值对训练样本进行升序排序,排序后前K个样本进行投票,即哪个标签出现的次数多,就将测试样例划为该类。
程序使用数据来源http://yann.lecun.com/exdb/mnist/。预先将数据处理为图片,标签信息转化为txt文档。
from numpy import *
import numpy as np
from PIL import Image
import operator
def createDataSet(): #加载图像数据,标检数据
ldata=[]
filepath='D:\\dataset\\handwritting\\train-images-idx3-ubyte\\image\\'
for i in range(1,10001):
filename= 'image'+str(i)+'.jpg'
image=Image.open(filepath+filename)
l=list(image.getdata())
ldata.append(l)
filepath='D:\\dataset\\handwritting\\train-labels-idx1-ubyte\\label.txt'
f=open(filepath,'r')
llabel=[]
for line in f.readlines