KNN 的全称是 K Nearest Neighbors,意思是 K 个最近的邻居
KNN算法具体步骤:
(1)计算已知类别数据集中的点与当前点之间的距离;
(2)按照距离递增次序排序;
(3)选取与当前点距离最小的K个点;
(4)确定前K个点所在类别的出现频率;
(5)返回前K个点出现频率最高的类别作为当前点的预测分类。
在训练分类器时使用交叉验证,其基本思想是将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来作为评价分类器的性能指标。
常做K折交叉验证,将数据集分成K份,轮流将其中K-1份做训练,1份做验证,多次的结果的均值作为对算法精度的估计,以求更精确一点。
距离度量是指算法使用样本间的距离作为样本之间的相似性指标,常用欧氏距离或曼哈顿距离。
需要用到的第三方库有:pandas、sklearn
具体实现的步骤有:数据加载、数据预处理(删除重复数据、错误数据、填补空缺值、数据分割、标准化处理)、模型训练(构建模型、模型训练、参数调优)
在编写代码过程中需要注意的是在读入需要预测的数据之后,也要将其与之前的训练数据一样的标准化。
可以看一下别人用KNN是怎么做的: