资源简介
整合了KNN算法与Tensorflow对手写识别系统的实现代码,以及训练与测试数据集
代码片段和文件信息
‘‘‘
Created on Sep 16 2010
kNN: k Nearest Neighbors
Input: inX: vector to compare to existing dataset (1xN)
dataSet: size m data set of known vectors (NxM)
labels: data set labels (1xM vector)
k: number of neighbors to use for comparison (should be an odd number)
Output: the most popular class label
@author: pbharrin
‘‘‘
from numpy import *
import operator
from os import listdir
def classify0(inX dataSet labels k):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX (dataSetSize1)) - dataSet
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 createDataSet():
group = array([[1.01.1][1.01.0][00][00.1]])
labels = [‘A‘‘A‘‘B‘‘B‘]
return group labels
def file2matrix(filename):
love_dictionary={‘largeDoses‘:3 ‘smallDoses‘:2 ‘didntLike‘:1}
fr = open(filename)
arrayOLines = fr.readlines()
numberOfLines = len(arrayOLines) #get the number of lines in the file
returnMat = zeros((numberOfLines3)) #prepare matrix to return
classLabelVector = [] #prepare labels return
index = 0
for line in arrayOLines:
line = line.strip()
listFromLine = line.split(‘\t‘)
returnMat[index:] = listFromLine[0:3]
if(listFromLine[-1].isdigit()):
classLabelVector.append(int(listFromLine[-1]))
else:
classLabelVector.append(love_dictionary.get(listFromLine[-1]))
index += 1
return returnMatclassLabelVector
def autoNorm(dataSet):
minVals = dataSet.min(0)
maxVals = dataSet.max(0)
ranges = maxVals - minVals
normDataSet = zeros(shape(dataSet))
m = dataSet.shape[0]
normDataSet = dataSet - tile(minVals (m1))
normDataSet = normDataSet/tile(ranges (m1)) #element wise divide
return normDataSet ranges minVals
def datingClassTest():
hoRatio = 0.50 #hold out 10%
datingDataMatdatingLabels = file2matrix(‘datingTestSet2.txt‘) #load data setfrom file
normMat ranges minVals = autoNorm(datingDataMat)
m = normMat.shape[0]
numTestVecs = int(m*hoRatio)
errorCount = 0.0
for i in range(numTestVecs):
classifierResult = classify0(normMat[i:]normMat[numTestVecs:m:]datingLabels[numTestVecs:m]3)
print “the classifier came back with: %d the real answer is: %d“ % (classifierResult datingLabels[i])
if (classifierResult != datingLabels[i]): errorCount += 1.0
print “the total
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-11 16:35 Ch02\
文件 300040 2017-12-11 15:34 Ch02\testY
文件 30110934 2017-12-11 15:34 Ch02\testX
文件 613237 2017-12-11 15:34 Ch02\trainY
文件 61541556 2017-12-11 15:34 Ch02\trainX
文件 5353 2017-11-26 11:10 Ch02\kNN.pyc
文件 5350 2017-11-26 09:46 Ch02\kNN.py
文件 739988 2017-09-18 14:58 Ch02\digits.zip
文件 27067 2017-09-18 14:58 Ch02\datingTestSet2.txt
文件 35725 2017-09-18 14:58 Ch02\datingTestSet.txt
文件 242 2017-09-18 14:58 Ch02\README.txt
文件 3937 2017-12-11 16:35 Ch02\tensorForDigits.py
目录 0 2011-05-04 08:38 Ch02\trainingDigits\
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_139.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_136.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_135.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_133.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_132.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_129.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_128.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_127.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_126.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_124.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_122.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_120.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_12.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_118.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_116.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_114.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_111.txt
文件 1088 2010-10-06 11:32 Ch02\trainingDigits\1_108.txt
............此处省略2875个文件信息
- 上一篇:数据恢复实验
- 下一篇:Linux 目录结构及文件基本操作
相关资源
- crack detection
- 机器学习那些事.pdf
- 《Neural Networks and Deep Learning》中文版
- 吴恩达LogisticRegression识别猫数据集
- PRML课后习题及答案
- 国科大模式识别机器学习15-19期末试题
- 机器学习中科院北航西电期末卷复习
- 机器学习-Mitchell-中文-完整高清版
- 一种基于层次分析法的改进KNN算法
- 机器学习 Jason Brownlee
- Pattern Recognition and Machine Learning 课后习
- 斯坦福大学机器学习所有习题及答案
- 评估机器学习的模型
- 中科大机器学习期末试卷
- 国科大中科院模式识别与机器学习期
- 2019年北航机器学习研究生期末考试往
- Science 杂志综述长文——Machine learni
- XGBoost论文原文+翻译
- 机器学习实验(Lasso求解算法预测波士
- UCI数据集
- 机器学习ppt
- BAT机器学习面试1000题系列
- machine learning ex4
- 阿里云机器学习组件PAI用户手册
- 斯坦福大学机器学习课程
- PDF已勘误经典书籍PRML马春鹏译版_模式
- PRML最最最完整版答案
- 北航机器学习期末考试往年试题
- 模式识别与机器学习 国科大 黄庆明
- Algorithms for Reinforcement Learning 强化学习
评论
共有 条评论