编辑:dick7
时间:2015-08-12
关键词:k-Nearest Neighbors,k个最临近的邻居
问题模型
下面是一幅手写数字的位图
将这幅位图图片转化为数字的函数代码:
def img2vector(filename):
returnVect = zeros((1,1024))
fr = open(filename)
for i in range(32):
lineStr = fr.readline()
for j in range(32):
returnVect[0,32*i+j] = int(lineStr[j])
return returnVect
接下来就是让机器去判断类似的“图案”到底是什么东西。
要实现这个功能,首先要让机器“学”,然后才能让机器“回答”。这个“学”的过程,就是要给机器“一些例子”,让机器去按照 kNN:k-Nearest Neighbors 算法进行“训练”。当机器根据已经归类好的“一些”例子,“训练”好之后,就可以让“训练”好的系统对新输入的“图案”,进行归类。
从以上,可以看出算法具有概率性。检验算法好坏的指标就是“一些例子”的多少,和机器判断的正确率。
算法描述
所用工具
python, numpy, matlibplot
图形结果
目录切换好以后,在命令提示符下,输入指令 python,出现“>>>”提示符后,再输入“import kNN”。然后就能运行算法程序了
结果显示
训练样本个数为:1934
测试样本个数为:946
测试错误个数为:11
测试错误率为:0.011628