KNN算法 总结
来源:互联网 发布:知乎经历最多的人 编辑:程序博客网 时间:2024/06/06 03:45
KNN算法 总结
总结
KNN K-Nearest-Neighbor Algorithm,从算法名称来看一个待测点只要看周围K个邻居是什么就行了,符合中国一句谚语,物以类聚,人以群分。KNN算法实际就是上述谚语的数学描述,算法是现实世界的数字化。KNN既可以用于cluster也可以用于classification,对于cluster而言,KNN就是将物以类聚,其中K代表多少个类,对于classification而言,K是多少个邻居,就是根据K个邻居判断未知物属于哪个类。
KNN 算法
KNN算法核心是如何计算和Neighbor的距离,就是如何判定邻居之间的距离,如何用量化的数据描述,我和你很近,我和你很远等非数字化的语言。
距离计算
下面多种距离的判断方式
1. 欧式距离
2. 曼哈顿距离
3. 切比雪夫距离(L∞度量
等价公式
4. 闽科夫斯基距离
其中P为参数
当p=1时,就是曼哈顿距离
当p=2时,就是欧式距离
当p→∞时,就是切比雪夫距离
5. 标准化欧式距离
标准化欧式距离是针对普通欧式距离标准化
样本的均值为m,标准差为s
6. 马氏距离
有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
(协方差矩阵中每个元素是各个矢量元素之间的协方差Cov(X,Y),Cov(X,Y) = E{ [X-E(X)] [Y-E(Y)]},其中E为数学期望)
而其中向量Xi与Xj之间的马氏距离定义为:
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:
也就是欧氏距离了。
若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离
7. 巴氏距离
8. 汉明距离
9. 夹角余弦
10. 杰卡德相似系数
11. 皮尔逊系数
KNN算法实现
KNN算法实现
4.1 暴力手段,就是计算待测项与所有的训练集的点,判断待测项最近的邻居,即缺点显而易见,慢,如果待测项有1K多的维度,则计算量则是一个天文数字。
4.2 使用KD树,先将训练集的数据构造成KD树,判断测试集时,时间大大缩短。其缺点是构造KD树时比较慢,但是构造完KD树后查询很快。
0 0
- KNN算法总结
- KNN算法总结
- KNN算法 总结
- KNN算法总结
- KNN算法的总结
- KNN算法学习总结
- KNN近邻算法总结
- 学习KNN算法体会和总结
- KNN算法
- KNN算法
- KNN算法
- KNN算法
- kNN算法
- KNN算法
- KNN算法
- KNN算法
- KNN算法
- knn算法
- 线性可分支持向量机笔记
- 批量插入
- java的for下标循环遍历和foreach循环遍历测试
- 关于css的float
- Android之SD卡插拔广播
- KNN算法 总结
- 程序员久坐伤身,站起来,走出去,别回来
- 三点求圆心模板
- 打印基-3D打印社区之旅
- Android Framework中的Application Framework层介绍
- HALCON学习之算子大全
- Hadoop集群完全分布式模式环境部署和管理的5大工具
- apache下用expires_module让浏览器缓存静态文件
- CEF3 概览及一般使用方法