• 大小:
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-23
  • 语言: 其他
  • 标签: kNN  

资源简介

机器学习实战之K邻近算法

资源截图

代码片段和文件信息

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(‘\t‘)
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  kNN\datingTestSet2.txt
     文件      739988  2011-05-04 15:43  kNN\digits.zip
     文件        4297  2017-04-10 17:05  kNN\kNN.py
     文件        4765  2017-02-27 20:58  kNN\kNN.pyc
     文件       27136  2016-06-16 04:21  kNN\python.exe
     目录           0  2011-05-05 07:37  kNN\testDigits\
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_0.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_1.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_10.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_11.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_12.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_13.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_14.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_15.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_16.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_17.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_18.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_19.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_2.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_20.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_21.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_22.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_23.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_24.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_25.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_26.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_27.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_28.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_29.txt
     文件        1088  2010-10-07 21:35  kNN\testDigits\0_3.txt
............此处省略2860个文件信息

评论

共有 条评论