首页 > 网络 > 云计算 >

机器学习之K近邻算法简介

2017-04-08

机器学习之K近邻算法简介,KNN是常见的监督学习算法,用于判定输入的样本属于哪个类别。

描述

KNN是常见的监督学习算法,用于判定输入的样本属于哪个类别。
给定测试样本,基于某种距离计算方法,计算出与其距离最近的K个训练样本,根据多数表决方法判定属于哪个类别。
在回归中使用平均值作为返回结果。

典型的懒惰学习算法。在接受数据时,不做处理,当真正计算的时候才按照算法流程走。
泛化错误低
该算法要求训练样本足够大,才能在数据点附近找到需要的点。
在高维情况下出现的数据样本稀疏,距离计算困难等,是所有ml算法共同面临的问题。称为数灾难。这里需要根据具体需求,降维处理

算法构造

根据已知的实例作为参考 选择K(一般选择奇数) 计算所有样本与输入样本之间的关系(计算方法有许多种) 将距离排序,并选择最仅的K个实例 在K个样本中,根据多数表决(加权平均)原则把输入实例归结为该类

算法的流程比较简单,关键在于K的选择

如果选择较小的K值,学习的近似误差会缩小,估计误差会增大。 如果选择较大的K值,学习的估计误差会缩小,近似误差会增大。

评价

算法的复杂度高,需要大量空间预先存储实例
当某类数据占据较多的时候,容易把实例归纳为该类,产生误差

优化

 加权KNN

不是对元素简单的求平均,而是求他的加权平均
每一项的值*他的权重。

进阶

降维
距离计算的各种算法(欧氏距离,曼哈顿距离等)
KDTree
ballTree

相关文章
最新文章
热点推荐