机器学习实战之K邻近算法
机器学习实战之K邻近算法
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-27 20:58 kNN
文件 27067 2012-03-01 15:39 kNNdatingTestSet2.txt
文件 739988 2011-05-04 15:43 kNNdigits.zip
文件 4297 2017-04-10 17:05 kNNkNN.py
文件 4765 2017-02-27 20:58 kNNkNN.pyc
文件 27136 2016-06-16 04:21 kNNpython.exe
目录 0 2011-05-05 07:37 kNN estDigits
文件 1088 2010-10-07 21:35 kNN estDigits _0.txt
文件 1088 2010-10-07 21:35 kNN estDigits _1.txt
文件 1088 2010-10-07 21:35 kNN estDigits _10.txt
文件 1088 2010-10-07 21:35 kNN estDigits _11.txt
文件 1088 2010-10-07 21:35 kNN estDigits _12.txt
文件 1088 2010-10-07 21:35 kNN estDigits _13.txt
文件 1088 2010-10-07 21:35 kNN estDigits _14.txt
文件 1088 2010-10-07 21:35 kNN estDigits _15.txt
文件 1088 2010-10-07 21:35 kNN estDigits _16.txt
文件 1088 2010-10-07 21:35 kNN estDigits _17.txt
文件 1088 2010-10-07 21:35 kNN estDigits _18.txt
文件 1088 2010-10-07 21:35 kNN estDigits _19.txt
文件 1088 2010-10-07 21:35 kNN estDigits _2.txt
文件 1088 2010-10-07 21:35 kNN estDigits _20.txt
文件 1088 2010-10-07 21:35 kNN estDigits _21.txt
文件 1088 2010-10-07 21:35 kNN estDigits _22.txt
文件 1088 2010-10-07 21:35 kNN estDigits _23.txt
文件 1088 2010-10-07 21:35 kNN estDigits _24.txt
文件 1088 2010-10-07 21:35 kNN estDigits _25.txt
文件 1088 2010-10-07 21:35 kNN estDigits _26.txt
文件 1088 2010-10-07 21:35 kNN estDigits _27.txt
文件 1088 2010-10-07 21:35 kNN estDigits _28.txt
文件 1088 2010-10-07 21:35 kNN estDigits _29.txt
文件 1088 2010-10-07 21:35 kNN estDigits _3.txt
............此处省略2860个文件信息
from numpy import *
import operator
from os import listdir
import matplotlib.pyplot as plt
def createDataSet():
group = array([[1.01.1][1.01.0][00][00.1]])
labels = [‘A‘‘A‘‘B‘‘B‘]
return grouplabels
def classify0(inXdataSetlabelsk):
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 file2matrix(filename):
fr = open(filename)
arrayOLines = fr.readlines()
numberOfLines = len(arrayOLines)
returnMat = zeros((numberOfLines3))
classLabelVector = []
index = 0
for line in arrayOLines:
line = line.strip()
listFromLine = line.split(‘ ‘)
returnMat[index:] = listFromLine[0:3]
classLabelVector.append(int(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))
return normDataSetrangesminVals
def datingClassTest():
hoRatio = 0.10
datingDataMatdatingLabels = file2matrix(‘datingTestSet2.txt‘)
normMatrangesminVals = 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:%dthe real answer is:%d“%(classifierResult datingLabels[i])
if (classifierResult != datingLabels[i]):errorCount += 1.0
print “the total error rate is: %f“ % (errorCount/float(numTestVecs))
def classifyPerson():
resultList = [‘not at all‘‘in small doses‘‘in large doses‘]
percentTats = float(raw_input(“percentage of time spent playing video games?“))
ffMiles = float(raw_input(“frequent flier miles earned per year?“))
iceCream = float(raw_input(“liters of icecream consumed per year?“))
datingDataMatdatingLabels = file2matrix(‘datingTestSet2.txt‘)
normMatrangesminVals = autoNorm(datingDataMat)
inArr = array([ffMilespercentTatsiceCream])
classifierResult = classify0((inArr-minVals)/ranges normMat datingLabels 3)
print “You will probably like this person:“resultList[classifierResult-1]
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 = []
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-27 20:58 kNN
文件 27067 2012-03-01 15:39 kNNdatingTestSet2.txt
文件 739988 2011-05-04 15:43 kNNdigits.zip
文件 4297 2017-04-10 17:05 kNNkNN.py
文件 4765 2017-02-27 20:58 kNNkNN.pyc
文件 27136 2016-06-16 04:21 kNNpython.exe
目录 0 2011-05-05 07:37 kNN estDigits
文件 1088 2010-10-07 21:35 kNN estDigits _0.txt
文件 1088 2010-10-07 21:35 kNN estDigits _1.txt
文件 1088 2010-10-07 21:35 kNN estDigits _10.txt
文件 1088 2010-10-07 21:35 kNN estDigits _11.txt
文件 1088 2010-10-07 21:35 kNN estDigits _12.txt
文件 1088 2010-10-07 21:35 kNN estDigits _13.txt
文件 1088 2010-10-07 21:35 kNN estDigits _14.txt
文件 1088 2010-10-07 21:35 kNN estDigits _15.txt
文件 1088 2010-10-07 21:35 kNN estDigits _16.txt
文件 1088 2010-10-07 21:35 kNN estDigits _17.txt
文件 1088 2010-10-07 21:35 kNN estDigits _18.txt
文件 1088 2010-10-07 21:35 kNN estDigits _19.txt
文件 1088 2010-10-07 21:35 kNN estDigits _2.txt
文件 1088 2010-10-07 21:35 kNN estDigits _20.txt
文件 1088 2010-10-07 21:35 kNN estDigits _21.txt
文件 1088 2010-10-07 21:35 kNN estDigits _22.txt
文件 1088 2010-10-07 21:35 kNN estDigits _23.txt
文件 1088 2010-10-07 21:35 kNN estDigits _24.txt
文件 1088 2010-10-07 21:35 kNN estDigits _25.txt
文件 1088 2010-10-07 21:35 kNN estDigits _26.txt
文件 1088 2010-10-07 21:35 kNN estDigits _27.txt
文件 1088 2010-10-07 21:35 kNN estDigits _28.txt
文件 1088 2010-10-07 21:35 kNN estDigits _29.txt
文件 1088 2010-10-07 21:35 kNN estDigits _3.txt
............此处省略2860个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)