机器学习—— k-近邻算法

来源:互联网 发布:现在最流行的网络语言 编辑:程序博客网 时间:2024/05/22 14:38

一.k-近邻算法概述:

简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。

k-近邻算法(KNN),它的工作原理是:存在一个样本数据集,也称训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将数据的每个特征与样本集合中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的数据,作为新数据的分类。


二,KNN的优缺点:

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

缺点:计算复杂度高,空间复杂度高,无法给出任何数据的基础结构信息

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


三.KNN的伪代码:

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

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

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

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

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

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


四.利用到的一些公式

计算已知类别数据集中的点与当前点之间的距离就有以下几种方式:

1.欧式距离公式

比如计算a(x1,y1)和b(x2,y2)这两个点的距离

 

2.曼哈顿距离

 

注意:如果不同特征的数据数量级别差别比较大,会导致,数量级别大的那个特征所占的权重比较重,这时我们可以归一化处理:

newValue = (oldValue - min) / (max - min)


参考文献:机器学习实战

0 0
原创粉丝点击