K近邻(KNN)算法
来源:互联网 发布:matlab 优化 线性规划 编辑:程序博客网 时间:2024/06/06 21:38
一、k近邻
三大要素:距离判别公式、k的选取、分类决策
1、距离度量
2、k取值
取值小,结构复杂,相似误差小,但容易过拟合;
取值大,结构简单,相似误差大。
二、kd树
思想:通过不断比较父节点分割线与目标点的距离与 已经找到的点与目标点的距离,进行比较,来确定要不要对该父节点下的数据进行搜索。
举个例子,设我们想查询的点为 p=(−1,−5),设距离函数是普通的
距离,我们想找距离问题点最近的 k=3 个点。如下:
步骤:1、先分别从X、Y轴来比较目标点坐标的大小,找到底层的节点;
2、然后,我们可以算出节点与目标点的距离L,并把该节点纳入最邻近点Dot1;
3、向父节点找,纳入KNN的Dot2;
4、向父节点找,把(1.24,-2.86)纳入Dot3,三个邻点已经找到,但还需要验证;
5、分别计算与Doti的距离,并与最远的父节点的分割线距离比较,发现与分割线距离小于与max(|x-doti|),说明搜索还不能结束;
6、那么,这时根据1的做法,先找到最远父节点的底层节点;
7、分别计算节点(1.75,)、(-2.96,),再和3个Dot比较距离,更新Dot点;
8、在(-2.96,)节点上,在来比较分割线与目标点的距离与目标点与Dot的最大距离的值,看要不要搜索左叉树;
9、计算目标点X和上父节点(6.27,)的距离及对应分割线的距离。
只有在满足分割线的距离比目标点与邻点距离还要大,才停止搜索。
(注,个人感觉,可以先算目标点与分割线的距离,比较Max(distance(|x-L|)),再计算目标点与父节点距离)。
参考:https://zhuanlan.zhihu.com/p/23966698
- K-近邻算法(KNN)
- k近邻算法(kNN)
- KNN(K近邻算法)
- K-近邻算法(KNN)
- K-近邻算法(KNN)
- KNN(K-近邻算法)
- K-近邻算法(KNN)
- kNN(k近邻算法)
- k-近邻算法(kNN)
- k近邻算法(KNN)
- K近邻(KNN)算法
- K近邻(KNN)算法
- K-近邻(KNN)算法
- K-近邻(KNN)算法
- K-近邻算法(KNN)
- k-近邻(KNN)算法
- k-近邻算法(kNN)
- k近邻算法(KNN)
- Greendao+多线程断点续传
- AngularJS各搜索,排序
- python3射线法判断点是否在多边形内
- 临时表查询
- ViewPager+Fragment取消预加载
- K近邻(KNN)算法
- winform .exe程序打包修改注册表使其可通过网页触发启动并传入参数
- 蓝牙BT射频测试
- 详解Java中的时区类TimeZone的用法
- eclipse连接MySQL数据库
- 仅有三条语句的文件管理程序.轻量却功能强大.
- 【Python】WSGI接口
- java.sql.SQLException: ORA-01810: 格式代码出现两次
- 购物车:增删改插,隔行换色