''
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]#得到数组的行数,即知道有几个训练数据.
#tile:numpy中的函数.tile将原来的一个数组,扩充成了4个一样的数组.diffMat得到了目标与训练数值之间的差值.
diffMat = tile(inX, (dataSetSize,1)) - dataSet
sqDiffMat = diffMat**2#各个元素分别平方.
sqDistances = sqDiffMat.sum(axis=1)#对应列相乘,即得到了每一个距离的平方.
distances = sqDistances**<
KNN算法源码解析
最新推荐文章于 2025-11-05 16:50:26 发布


1147

被折叠的 条评论
为什么被折叠?



