Classifying with k-Nearest Neighbors (k-邻近算法)
本文我们要学习内容
- k-邻近分类算法
- 从文本文件中解析和导入数据
- 使用Matplotlib包创建扩散图
- 归一化数值
k-邻近分类算法
简单的货, k-近邻算法(kNN) 采用 测量不同特征值之间的距离的方法来进行分类。
例如:
对象 | 特征1 | 特征2 | 分类 |
A | 3 | 104 | 类别1 |
B | 2 | 100 | 类别1 |
C | 1 | 81 | 类别1 |
D | 101 | 10 | 类别2 |
E | 99 | 5 | 类别2 |
F | 98 | 2 | 类别2 |
unknow | 18 | 90 | 未知 |
即使不知道unkonw 是属于哪个分类,我们也可以通过某种方法计算出来。 首先计算unknow样本和样本集中的其他对象特征的距离,此处暂时不关心如何计算这些距离值,在具体的分类器中有具体的算法提供
对象 | 与unknown的距离 |
A | 20.5 |
B | 18.7 |
C | 19.2 |
D | 115.3 |
E | 117.4 |
F | 118.9 |
我们得到了unknown与其他样本的距离,排序后可以找到k个距离unknown最近的样本。假定k=3,则三个最靠近的样本风别是A,B,C k-近邻算法按照距离最近的三个样本的类型,决定unknown样本的类型为 类别1.
k-近邻算法的一般流程为
- 收集数据:可以使用任何方法
- 准备数据:距离计算所需要的数值,最好是结构化的数据格式。
- 分析数据:可以使用任何方法
- 训练算法:此步骤不适合k-近邻算法。
- 测试算法:计算错误率
- 使用算法:首先需要输入样本数据和结构化的速出结果,然后运行k-近邻算法判定输入数据分别独属于哪个分类,最后应用对计算出的分类执行后续的处理。