资源简介
kNN(python实现)http://blog.csdn.net/u011067360/article/details/45937327
代码片段和文件信息
#-*-coding:utf-8-*-
from numpy import *
import operator
from os import listdir
def classify0(inX dataSet labels k):
dataSetSize = dataSet.shape[0]
#tile(A(mn))
#print dataSet
#print “----------------“
#print tile(inX (dataSetSize1))
#print “----------------“
diffMat = tile(inX (dataSetSize1)) - dataSet
#print diffMat
sqDiffMat = diffMat**2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort()
classCount={}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]
classCount[voteIlabel] = classCount.get(voteIlabel0) + 1
sortedClassCount = sorted(classCount.iteritems() key=operator.itemgetter(1) reverse=True)
return sortedClassCount[0][0]
def img2vector(filename):
returnVect = zeros((11024))
fr = open(filename)
for i in range(32):
lineStr = fr.readline()
for j in range(32):
returnVect[032*i+j] = int(lineStr[j])
return returnVect
def handwritingClassTest():
hwLabels = []
trainingFileList = listdir(‘trainingDigits‘)
print trainingFileList
m = len(trainingFileList)
trainingMat = zeros((m1024))
for i in range(m):
fileNameStr = trainingFileList[i]
fileStr = fileNameStr.split(‘.‘)[0]
classNumStr = int(fileStr.split(‘_‘)[0])
hwLabels.append(classNumStr)
#print hwLabels
#print fileNameStr
trainingMat[i:] = img2vector(‘trainingDigits/%s‘ % fileNameStr)
#print trainingMat[i:]
#print len(trainingMat[i:])
testFileList = listdir(‘testDigits‘)
errorCount = 0.0
mTest = len(testFileList)
for i in range(mTest):
fileNameStr = testFileList[i]
fileStr = fileNameStr.split(‘.‘)[0]
classNumStr = int(fileStr.split(‘_‘)[0])
vectorUnderTest = img2vector(‘testDigits/%s‘ % fileNameStr)
classifierResult = classify0(vectorUnderTest trainingMat hwLabels 3)
print “the classifier came back with: %d the real answer is: %d“ % (classifierResult classNumStr)
if (classifierResult != classNumStr): errorCount += 1.0
print “\nthe total number of errors is: %d“ % errorCount
print “\nthe total error rate is: %f“ % (errorCount/float(mTest))
handwritingClassTest()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2464 2015-05-23 21:28 kNN.py
文件 1056 2015-05-10 16:26 testDigits\0_1.txt
文件 1056 2015-05-10 16:26 testDigits\0_2.txt
文件 1056 2015-05-10 16:26 testDigits\0_3.txt
文件 1056 2015-05-10 16:26 testDigits\0_4.txt
文件 1056 2015-05-10 16:26 testDigits\0_5.txt
文件 1056 2015-05-10 16:26 testDigits\1_1.txt
文件 1056 2015-05-10 16:26 testDigits\1_2.txt
文件 1056 2015-05-10 16:26 testDigits\1_3.txt
文件 1056 2015-05-10 16:26 testDigits\1_4.txt
文件 1056 2015-05-10 16:26 testDigits\1_5.txt
文件 1056 2015-05-10 16:26 testDigits\2_1.txt
文件 1056 2015-05-10 16:26 testDigits\2_2.txt
文件 1056 2015-05-10 16:26 testDigits\2_3.txt
文件 1056 2015-05-10 16:26 testDigits\2_4.txt
文件 1056 2015-05-10 16:26 testDigits\2_5.txt
文件 1056 2015-05-10 16:26 testDigits\3_1.txt
文件 1056 2015-05-10 16:26 testDigits\3_2.txt
文件 1056 2015-05-10 16:26 testDigits\3_3.txt
文件 1056 2015-05-10 16:26 testDigits\3_4.txt
文件 1056 2015-05-10 16:26 testDigits\3_5.txt
文件 1056 2015-05-10 16:26 testDigits\4_1.txt
文件 1056 2015-05-10 16:26 testDigits\4_2.txt
文件 1056 2015-05-10 16:26 testDigits\4_3.txt
文件 1056 2015-05-10 16:26 testDigits\4_4.txt
文件 1056 2015-05-10 16:26 testDigits\4_5.txt
文件 1056 2015-05-10 16:26 testDigits\5_1.txt
文件 1056 2015-05-10 16:26 testDigits\5_2.txt
文件 1056 2015-05-10 16:26 testDigits\5_3.txt
文件 1056 2015-05-10 16:26 testDigits\5_4.txt
文件 1056 2015-05-10 16:26 testDigits\5_5.txt
............此处省略120个文件信息
相关资源
- openCV+PYTHON实现的knn算法手写数字识别
- 集成k-最近邻(k-NN)、朴素贝叶斯、
- KNN实现鸢尾花分类
- 基于SKLearn的KNN分类
- python实现KNN手写字体识别Demo
- 最近邻kNN-python3源码和数据
- 基于KNN实现“手写识别”
- KNN算法的代码实现
- 机器学习之KNN识别验证码
- KNN算法的Python实现(datingrecd.ipynb)
- knn和贝叶斯算法 比较
- knn最近邻算法与数据集
- KNN文本聚类代码
- 正向最大匹配分词算法及KNN文本分类
- 基于kNN方法的MNIST手写数字识别Tenso
- python kNN算法实现MNIST数据集分类 k值
- KNN(python)实现-鸢尾花
- KNN-mnist识别
- python数据挖掘之KNN算法
评论
共有 条评论