机器学习--kNN算法

来源:互联网 发布:网络授权和用户授权 编辑:程序博客网 时间:2024/05/22 17:16

最近看完了Machine Learning in Action对kNN的介绍,应该说是简单易懂的,在这里记录一些要点。

kNN介绍

参看Wiki

kNN的特点

  • 简单
  • 有监督 分类算法
  • 无须训练
  • 数据需要归一化
  • k最好取奇数,避免平等投票
  • 如果样本和特征多的话,计算量大(导致预测速度慢)
  • 数值和标称都可以用

距离函数

  • 欧氏距离(Euclidean distance)

  • 曼哈顿距离(Manhattan distance)
    两个向量的分量差的绝对值的总和

  • 余弦距离(待研究)

  • 汉明距离(待研究)

改进算法

  • KD树
  • Ball树

实用性

这个算法给我最大的疑惑就是什么地方能派上用场,凭感觉只能用在一些很简单的场景。比如书上有个数字识别的例子,我手写了几个,放进去测试,结果很差。

参考资料

- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

0 0