根据 import numpy as np import operator from os import listdir def classify0(inX, da数据点(8,7)、(10,2)的标签类别taSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize, 1)) - 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(voteIlabel, 0) + 1 sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] def createDataSet(): group = np.array([[1.0, 5.0], [2.0, 2.0], [3.0, 1.0], [4.0, 6.0], [6.0, 8.0], [6.0, 5.0], [7.0, 9.0], [9.0, 8.0]]) labels = ['A', 'A', 'B', 'B', 'A', 'B', 'A', 'B'] return group, labels def loadDataSet(fileName): # general function to parse tab -delimited floats dataMat = [] datalabel = [] # assume last column is target value fr = open(fileName) for line in fr.readlines(): curLine = line.strip().split('\t') fltLine = list(map(float, curLine[0:2])) # map all elements to float() fltLine1 = list(map(int, curLine[2])) dataMat.append(fltLine) datalabel.append(fltLine1) return dataMat, datalabel group,labels=createDataSet() 求
时间: 2024-04-28 21:23:51 浏览: 161
这段代码实现的是 k-近邻算法的分类器。其中 createDataSet() 函数用于生成一个示例数据集,loadDataSet() 函数用于从文件中读取数据集。classify0() 函数是 k-近邻分类器的实现,它接受一个测试数据点 inX 和一个数据集 dataSet,以及对应的标签类别 labels 和 k 值,返回测试数据点的类别。具体实现过程是:首先计算测试数据点与数据集中所有点的距离,然后选取距离最近的 k 个点,统计它们的类别出现次数,最后返回出现次数最多的类别作为测试数据点的预测类别。
阅读全文