KNN原理及python实现(kd树)
来源:互联网 发布:linux nagios 编辑:程序博客网 时间:2024/04/28 03:51
- 前面说的话
觉得自己完全看懂和做出来是两回事,希望自己可以坚持将机器学习算法基本都复现出来,并有时间进行时间空间复杂度的优化,用matlab梳理完思路后有时间再用python写一遍,毕竟我是一个厉害的小女子哈哈哈。
如果你阅读我的文章有什么疑问,或是任何学术讨论,欢迎和我交流:shitianqi1994@163.com
- k近邻法原理
训练集是很多有特征有label的数据,当送进来一个没有label的数据需要判断时,选训练集中k个和这个数据最相似的数据,再将这k个数据的label以某种规则赋值给这个测试数据(比如规则为出现最多的label)。
这里的“相似“就是用距离进行度量。(欧式距离,曼哈顿距离等等)使用不同的距离确定的最近邻点是不同的,最后得到的label肯定也是不同的。
所以我们可以总结出,knn算法的三个基本要素是:
- k值的选取
- 距离的度量方式
- 分类决策规则
当这三个要素确定之后,模型完全确定,对于任何一个新的输入实例,它所属的类唯一确定。
k值的选择
k值的选取对knn的结果造成了较大的影响,如果k取的很小,那么只有和测试数据非常近的数据才能对结果产生影响,对近邻数据点非常敏感,但是如果此时近邻数据是噪声,那么就会造成过拟合。
也就是说,k值越小,建立的模型越复杂,越容易发生过拟合,k值越大,建立的模型越简单,即会选择性地丢掉一些信息,k值最大就是选取整个训练数据集中数据个数N,这时不管测试数据是什么都会被判定为训练数据集中最多label 的那个(假设决策规则是少数服从多数原则),这时的模型过于简单,完全没有考虑到值得考虑的因素。
在实际中,k一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值。
- k近邻法的实现:kd树
kd树的构建和搜索
这篇博文写的非常清楚。
- 使用kd树结构完成knn算法matlab实现
- KNN原理及python实现(kd树)
- KNN之KD树实现
- KNN算法,KD树实现
- Knn原理及Python实现、数据展示
- KNN原理-python实现
- KNN原理+python实现
- kd-tree实现KNN
- KNN及python实现
- 统计学习方法(3)——KNN,KD树及其Python实现
- KNN-KD树
- KNN && KD树
- 机器学习笔记——kd树及python实现
- python实现KD树模型
- kd树的实现(python)
- KD树+BBF+KNN使用C#实现(1)
- KD树+BBF+KNN使用C#实现(2)
- KD树+BBF+KNN使用C#实现(3)
- K 近邻算法(KNN)与KD 树实现
- UNIX网络编程卷1:套接字联网-第3章:套接字编程-套接字地址结构和值结果参数
- 代码重构
- 你了解软件的生命周期吗?!
- SwipeToLoadLayout布局中添加自定义控件仿美团、饿了吗等下拉效果
- Android Studio gradle 文件中 ${supportLibVersion} 用法
- KNN原理及python实现(kd树)
- 查询总成绩排名前三的学生成绩信息
- JVM学习10:异常处理(持续更新)
- iReport和JasperReport
- 分针网——每日分享:一小时包教会 —— webpack 入门指南
- Linux common clock framework(2)_clock provider
- 深入理解C++的静态绑定和动态绑定
- tensorflow的android demo环境搭建
- 创建守护进程