[机器学习笔记]kNN进邻算法
K-近邻算法 一、算法概述 采用测量不同特征值之间的距离方法进行分类 优点: 精度高、对异常值不敏感、无数据输入假定。 缺点: 计算复杂度高、空间复杂度高。 二、实施kNN算法 2.1 伪代码 计算法已经类别数据集中的点与当前点之间的距离 按照距离递增次序排序 选取与但前点距离最小的k个点 确定前k个点所在类别的出现频率 返回前k个点出现频率最高的类别作为当前点的预测分类 2.2 实际代码 def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = 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 =