最近看完了Machine Learning in Action对kNN的介绍,应该说是简单易懂的,在这里记录一些要点。
##kNN介绍
##kNN的特点
- 简单
- 有监督 分类算法
- 无须训练
- 数据需要归一化
- k最好取奇数,避免平等投票
- 如果样本和特征多的话,计算量大(导致预测速度慢)
- 数值和标称都可以用
##距离函数
-
欧氏距离(Euclidean distance)
-
曼哈顿距离(Manhattan distance)
两个向量的分量差的绝对值的总和 -
余弦距离(待研究)
-
汉明距离(待研究)
##改进算法
##实用性 这个算法给我最大的疑惑就是什么地方能派上用场,凭感觉只能用在一些很简单的场景。比如书上有个数字识别的例子,我手写了几个,放进去测试,结果很差。