K近邻算法

《统计学习方法》

读李航老师之《统计学习方法》一书乃做此笔记。强烈推荐此书,对于从事机器学习、人工智能等计算机热门领域的学者定会受益颇深。


K近邻法

概论k近邻法(k-nearest neighbor,k-NN)是一种分类与回归方法。分类时对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方法进行预测。其核心就是利用训练数据集对特征向量空间进行划分


K近邻算法

定义:
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例多数属于那个类,就把该输入实例分为这个类。

K近邻法:

	输入:训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)}。其中x为特征向量,y为实例的类别。
	输出:实例x所属的类y.
		(1)根据给定的距离度量,在训练集T中找到K个最邻近的点,涵盖这k个点的x的邻域记作Nk(x);
		(2)根据分类决策规则决定x的类别y:(公式如下面图所示)
		(3)选取包含类别的数量最多的一个类别。

分类决策规则决定x的类别y:
在这里插入图片描述


K邻近模型

模型的三个基本要素:距离度量、k值的选择、分类决策规则
距离度量:
两个实例点的距离是两个实例点相似程度的反映。
xi,yi的Lp距离定义:
在这里插入图片描述
这里,当p=2时,称为欧式距离;当P=1时,称为曼哈顿距离

K值的选择:

K值近似误差(approximation error)估计误差(extimation error)模型
较小减小增大复杂,容易发生过拟合
较大增大减小简单

K值一般取一个较小的值,采用交叉验证来选取最优K值。

分类决策规则:
往往是多数表决,由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。多数表决等价于经验风险最小化


Kd树

定义:
对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构较小计算距离的次数,降低耗时)。
构造kd树:

构造平衡kd树:
输入:k维空间数据集T={x1,x2,x3,…,xN},
输出:kd树
(1)构造根节点(包含T的k维空间的超矩形区域):选择x为坐标轴,以T中所有实例的中位数(后者中间右边的数)为切分点,将根节点对应的超矩形区域切分为两个子区域(通过切分点垂直于X轴切分)。
(2)重复(1)
(3)直到两个子区域没有实例存在时停止。

用kd树的最近邻搜索:

	输入:已构造的kd树;目标点x;
	输出:x的最近邻.
	(1)在kd树中找出包含目标点x的叶结点:从根节点出发,递归的向下访问kd树。若目标点x当前维的坐标小于切分点的坐标,则移动到左子结点,反之亦然。直到子结点为叶结点为止。
	(2)以此叶结点为”当前最近点“。
	(3)递归的向上回退,在每个结点进行一下操作:
		A,如果该结点保存的实例点比当前最近点距离目标点更近,则以该实例点为“当前最近点”;
		B,检查另一子结点对应的区域是否与以目标点为球心,以目标点与“当前最近点”间的距离为半径的超球体相交。如果相交,可能在另一个子结点对应的区域内存在距离目标点更近的点,移动到另一个子结点;如果不相交,向上回退;
	(4)当回退到根节点时,搜索结束。最后的”当前最近点“即为x的最近邻点。

"I'm not afraid when the rain won't stop" --Flashlight

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值