本文系原书笔记,用于记录笔记和理解
- k近邻算法
存在一个样本数据集合,利用样本数据集合中已经分类的数据的特征,将没有分类的新数据的每个特征和样本数据集合中已经分类的数据对应的特征比较,从而选择出最相似(最近邻)的类别标签。将样本数据集合中的每个特征设置成一个向量分量,则新数据的所有特征可以用多个向量分量描述,从而定量计算。根据特征的向量指,从而标定出数据点。这些数据点和样本数据点比对(计算距离),选出最近的k个数据划分到相同的类型。
- k近邻算法的流程
- 收集数据
- 准备数据:计算与样本点的距离所需要的数值,最好是结构化的数据格式
- 分析数据
- 训练算法:此步骤在此算法中不需要
- 测试算法:计算错误率
- 使用算法:首先需要输入样本点数据和结构化的输出结果,然后运行k近邻算法判定输入数据属于哪个分类,最后应用对计算出的分类执行后续的处理
- 第一个分类器
使用python导入数据
保存为KNN.py模块<span style="font-size:18px;">from numpy import * #导入numpy计算包 import operator #导入运算符模块 def creatDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) #样本点集合 labels = ['A','A','B','B'] #类别A,B类 return group,labels </span>
从文本文件中解析数据
伪代码:1.计算全部样本点与输入的当前点之间的距离;2.按照距离递增排序样本点3.选取与当前点距离最小的k个样本点4.确定这k个样本点所在类别的频率5.返回前k个点出现频率最高的类别作为当前点的预测分类(未完)