根据《机器学习实战》一书来实现KNN算法:
一、确定K邻近算法
不过这个方法没有用kd树进行存储,搜索效率较低。
二、例1:使用KNN算法改进配对效果
2.1 准备数据
先来看看原始数据:
这是一个文本文件,每一行都是字符串,需要对其进行分割,然后分别构造数据矩阵和标注向量。
2.2 数据预处理
由于我们得到的数据都是正数,所以可以采用归一化进行标准化:
x
∗
=
x
−
min
max
−
min
x^* = \frac{x - \min}{\max - \min}
x∗=max−minx−min
2.3 验证分类器准确率
三、小结
k近邻算法的优点在于简单有效,主要是发现样本之间蕴含的关系。它的缺点是必须保存全部的数据集,需要大量的存储空间,此外也会非常耗时。
K近邻算法的另一个缺点是它不能给出数据的基础结构信息,相对地,决策树可以解决这个问题,而且决策树还能节省存储空间和计算时间。