K近邻作为基本的分类和回归方法。在分类中,对新的实例,根据k个最近邻得训练实例的类别,通过多数表决进行预测。

一、算法

输入:统计学习笔记之K近邻法统计学习笔记之K近邻法为实例的特征向量,统计学习笔记之K近邻法为实例的类别。

输出:实例的统计学习笔记之K近邻法的所属的类y。

(1)根据给定距离度量,在训练集中找出与统计学习笔记之K近邻法最近邻的k个点,涵盖这k个点的x的领域记作统计学习笔记之K近邻法

(2)在统计学习笔记之K近邻法 根据分类决策规则(类似多数投票)决定x属于哪一类。

二、相关概念

值得一提的是关于距离度量的几个概念。

距离通式:

                                                统计学习笔记之K近邻法

欧式距离,p=2,即

                                               统计学习笔记之K近邻法

曼哈顿距离,p=1,即

                                               统计学习笔记之K近邻法

 

各个坐标距离的最大值统计学习笔记之K近邻法,即

                                               统计学习笔记之K近邻法

下图直观展示了三种不同度量方式在表示到原点距离是1的点画出的图像:

                                                 统计学习笔记之K近邻法

 

三、kd树

KNN在对数据进行k近邻搜索的时候,有时因为数据量较大,搜索开销是个值得思考的问题。于是,kd树的思想应运而生。实际上,kd树是二叉树,是考虑将k维空间实例点进行存储和便于快速检索的树形数据结构。

算法

输入:k维空间数据集统计学习笔记之K近邻法

输出:kd树

(1)构造根节点,包含T的k维空间的超矩形区域。

(2)选择统计学习笔记之K近邻法的坐标轴,以T中的所有实例的统计学习笔记之K近邻法坐标的中位数作为切分点,通过切分点并于坐标轴统计学习笔记之K近邻法垂直作超平面,将超矩形区域分成两个子区域。以此生成深度为1的左右两个结点,左结点表示统计学习笔记之K近邻法小于切分点的子区域,右结点表示统计学习笔记之K近邻法大于切分点的子区域。

(3)重复(2)操作,直至两个子区域没有实例存在为止。

可以借用《统计学习》有道例题理解:

统计学习笔记之K近邻法

 

统计学习笔记之K近邻法

 

kd树最近邻搜索算法

输入:已构造好kd树,目标点为统计学习笔记之K近邻法.

输出:统计学习笔记之K近邻法的最近邻点.

(1)递归搜索包含目标结点的叶结点。

(2)设叶结点为最近点。

(3)递归回退,对于每个结点如果比当前最近点距离更小,则以该点为最近点。对于每个结点的兄弟结点也要进行遍历,判断是否更新最近点。

(4)当回退到根结点,搜索结束。最后的最近点即为所求。

 

 

 

 

 

相关文章: