您的位置:首页 > 其它

关于kNN的思考(二)

2017-07-05 11:37 239 查看
kNN优缺点

从上节的实验中我们可以发现:

优点:简单,易于理解,易于实现,对异常值不敏感,适合分类问题,尤其合适多分类问题(对象具有多个类别标签)

缺点:懒惰算法,时间和空间复杂度高

k值的选取

k对分类有着很大的影响,k太小意味着模型变的复杂,容易发生过拟合,易受异常点的影响。k值较大,易受其他类别的数据干扰,影响分类效果。

所以k值一般选取一个较小的值(经验值,小于类别的平方根),或通过交叉验证法进行选取。

相似性的度量

1.常用的Lp距离

两个n维变量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:



其中p是一个变参数。

当p=1时,就是曼哈顿距离

当p=2时,就是欧氏距离

当p→∞时,就是切比雪夫距离

2.马氏距离



S位数据的协方差矩阵。

马氏距离不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准数据和中心化数据计算出。排除了变量之间的相关性干扰。

3.余弦相似性



夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。

4.皮尔逊系数



决策规则

根据问题的不同,分类问题有投票法,加权投票法。回归问题为平均法。

kNN的实现kd树

kd树是一种对k维空间中的实例点进行存储以便对其进行快速搜索的树形数据结构,是平衡二叉树。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间进行分割,构成一系列的k维超矩形区域。是一种递归的构造算法。

搜索过程中,通过二叉搜索,顺着搜索路径找到最近的近似点。为了找到真正的最邻近,需要进行回溯,查询点圆域内,找到距离距离最近的点。

参考:http://blog.csdn.net/suibianshen2012/article/details/51234596
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: