K--近邻算法


Python语言不用考虑内存分配问题,在函数中传递的是列表的引用,在函数内部对列表对象的修改。将会影响该列表对象的整个生存周期

K—近邻算法(KNN)采用测量不同特征值之间的距离方法进行分类

优点:精度高,对异常值不敏感,无数据输入的假定

缺点:计算复杂度高,空间复杂度高

适用数据范围:数值型和标称型

工作原理:存在一个样本数据集,也称作训练样本集,并且样本集中每个数据都存在标签,即使我们知道样本集中每一数据与所属的分类的对应关系。输入没有标签的新数据后,将新数据的每一个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据的分类标签。

一般流程:(1)收集数据:可以使用任何方法

(2)准备数据:距离计算所需要的数值,最好是结构化的数据格式

(3)分析数据:可以使用任何方法

(4)训练算法:此步骤不适用于K—近邻算法

(5)测试数据:计算错误率

(6)使用算法:首先需要输入样本数据和结构化的输出结构,然后运行K-近邻算法判定输入数据分别属于哪一类,最后应用对计算出的分类执行后续的处理。

伪代码:

对未知类别属性的数据集中的每个点依次执行以下操作:

(1)计算已知类别数据集中的点与当前点之间的距离;

(2)按照距离递增次序排序

(3)选取与当前点距离最小的K个点

(4)确定前K个点所在类别的出现频率

(5)返回前K个点出现频率最高的类别作为当前点的预测分类

如果大家想要实战,可以参考《机器学习实战》。

猜你喜欢

转载自blog.csdn.net/qq_38354978/article/details/80301882