K近邻算法(简称KNN)学习是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常在分类任务中可以使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可以使用“平均法”,即将这个k个样本的实值输出标记的平均值作为预测结果。
from numpy import *
import operator
def createDataSet(): #创建一个数据集
group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) #作为训练集的数据,该数据集有4个样本,每一个样本是一个二维坐标
labels=['A','A','B','B'] #上面的样本数据所对应的标记
return group,labels
def classify0(inX,dataSet,labels,k): #classify0()函数有4个输入参数,inX是用于分类的输入向量,dataSet是上面函数中的训练数据集,
#label是上面的训练数据集中的样本的标记,k是KNN选择的大小
dataSetSize=dataSet.shape[0] #dataSetSize是上面的训练数据集的大小
diffMat=tile(inX,(dataSetSize,1))-dat