1. k邻近算法原理:
存在一个样本数据集,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据(最邻近)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k邻近算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
2. 分析的一般流程:
1)收集数据:可以使用任何方法;
2)准备数据:距离计算所需要的数值,最好是结构化的数据格式;
对于一条数据的多个特征,如果某个特征影响比较大,已经掩盖了其它特征的作用,需要对每一个特征列数据进行归一化。
归一化公式: newValue = (oldValue - min)/ (max - min),例子:
3)分析数据:可以使用任何方法;(可使用matplotlib创建散点图)
a)计算已知类别数据集中的点雨当前点之间的距离;(距离通过欧氏距离公式进行计算,相当于平面坐标点距离的计算)
通过矩阵具有维度的特点,将数据的计算变成矩阵的计算。
b)按照距离递增次序排序;
c)选取与当前点距离最小的k个点;
d)确定前k个点所在类别的出现频率;
e)返回前k个点出现频率最高的类别作为当前点的预测分类;
4)训练算法:此步骤不适用k邻近算法;
5)测试算法:计算错误率;
6)使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k邻近算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。
3. 应用:
约会网站配对;
手写识别系统;