目录
一,k近邻算法
k近邻法三要素
- 距离度量
- k值的选择
- 分类决策规则
二,k近邻模型
1.模型![](https://i-blog.csdnimg.cn/blog_migrate/7c5588d8f88a8dc83a3d43c1b1acfac6.png)
2.距离度量![](https://i-blog.csdnimg.cn/blog_migrate/2f0de52e6cf82a302afc43a80ff0c91e.png)
- |xi(1)|-|xi(2)|=1
- sqrt(xi(1)**2+x2**2)=1(对应圆形)
p取不同值时,最近邻点是不同的。
3.k值的选择![](https://i-blog.csdnimg.cn/blog_migrate/310503590c26d574fd00d9b517d2558b.png)
4.分类决策规则![](https://i-blog.csdnimg.cn/blog_migrate/44d5e87304200580cd8913dcf2b08cd9.png)
Y真实输出
f(x)预测输出
经验风险最小化就是多数表决规则
三,k近邻法的实现:kd树![](https://i-blog.csdnimg.cn/blog_migrate/0d92ab976027de2aaa3d4cfce560e5b2.png)
1.构造kd树
(1)构造根节点:
选择第一个特征作为坐标轴
将第一个特征所对应的特征值进行排序,选择中位数——作为切分点
由根节点输出的就是深度为1的左右子节点——左节点对应坐标小于切分点
(2)重复
重复过程中直到两个子区域没有实例时停止
实例讲解
7对应的坐标是2,那么我们让(7,2)作为切分点
我们根据第二个特征进行划分
我们再以第一个特征作为坐标轴进行划分
2.搜索kd树
回溯就是从叶子节点取寻找根节点的一个过程
例题解说:
我们需要取寻找(2.1,3.1)
首先确定根节点维(7,2)在左子树里面
这个区域在(5,4)确定的左子数里面
最后(2,3)的右子树中,那么最近邻点就是(2,3)
回溯过程就是到父辈,祖辈
下面我们再来看一个复杂的:
目标点位于(4,7)所确定的左子树里面
但是(2,3)点在这个区域的超平面内
这就是回溯的作用,回溯过程发现有其他的点距离目标点更近
(画出超球面)