读书笔记-统计学习方法-k近邻法

读书笔记-统计学习方法- k k k近邻法

k k k近邻

算法:

​ 输入:训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y ( N ) ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y(N))\} T={(x1,y1),(x2,y2),...,(xN,y(N))}
其中, x i ∈ X ⊆ R n x_i \in \mathcal{X} \sube \bold R^n xiXRn为实例的特征向量, y i ∈ Y = { c 1 , c 2 , . . . , c K } y_i \in \mathcal{Y} =\{c_1,c_2,...,c_K\} yiY={c1,c2,...,cK}为实例的类别, i = 1 , 2 , . . . , N i = 1,2,...,N i=1,2,...,N;实例特征向量 x x x

​ 输出:实例 x x x所属的类 y y y

(1)根据给定的距离度量,在训练集 T T T中找出与 x x x最邻近的 k k k个点,涵盖这 k k k个点的 x x x的邻域记作 N k ( x ) N_k(x) Nk(x)

(2)在 N k ( x ) N_k(x) Nk(x)中根据分类决策规则(如多数表决)决定 x x x的类别 y y y:
y = arg ⁡ max ⁡ c j ∑ x i ∈ N k ( x ) I ( y i = c j ) , i = 1 , 2 , . . . , N ; j = 1 , 2 , . . . , K y = \arg \max_{c_j} \sum_{x_i \in N_k(x)} I(y_i = c_j),i=1,2,...,N;j=1,2,...,K y=argcjmaxxiNk(x)I(yi=cj),i=1,2,...,N;j=1,2,...,K
式(2)中, I I I为指示函数,即当 y i = c j y_i = c_j yi=cj I I I 1 1 1,否则 I I I 0 0 0

k = 1 k=1 k=1时为最近邻算法。

k k k近邻法三要素:

  • k k k值的选择

    k k k值减小,近似误差减小,估计误差增大,模型变复杂,容易过拟合

    k k k值增大,近似误差增大,估计误差增大,模型变简单。

    一般选较小的 k k k值。通常采用交叉验证法选取最优的 k k k

  • 距离度量
    L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_p(x_i,x_j) = \big(\sum_{l=1}^{n}|x_i^{(l)}-x_j^{(l)}|^p\big)^{\frac{1}{p}} Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1
    p ≥ 1 p \ge 1 p1。当 p = 2 p =2 p=2时,称为欧氏距离;当 p = 1 p=1 p=1时,称为曼哈顿距离; p = ∞ p=\infty p=时,它是各个坐标距离的最大值。

  • 分类决策规则

    多数表决等价于经验风险最小化


    k d kd kd

    k k k近邻法最简单的实现方法是线性扫描,这时计算输入实例与每一个训练实例的距离。

    k d kd kd树是一种对 k k k维空间的实例点进行存储以便对其进行快速检索的树形数据结构

    算法:

    ​ 输入: k k k维空间数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y ( N ) ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y(N))\} T={(x1,y1),(x2,y2),...,(xN,y(N))},其中 x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( k ) T , i = 1 , 2 , . . . , N x_i = (x_i^{(1)},x_i^{(2)},...,x_i^{(k})^T,i=1,2,...,N xi=(xi(1),xi(2),...,xi(k)T,i=1,2,...,N

    ​ 输出: k d kd kd

    ​ (1)开始,构造根节点,根节点对应于包含 T T T k k k维空间的超矩形区域。

    ​ 构造根节点,使根节点对应于 k k k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对 k k k维空间进行切分,生成子结点。在超矩形区域(结点)上选择一个坐标轴和在此坐标轴上的一个切分点(中位数),确定一个超平面,这个超平面通过选定的切分点并垂直于选定的坐标轴,将当前超矩形区域切分为左右两个子区域(子结点);这时实例被分到两个子区域。这个过程直到子区域内没有实例时终止(终止时的结点为叶结点)。在此过程中,将实例保存在相应的结点上。

    ​ 搜索 k d kd kd树:给定一个目标点,搜索其最近邻。首先依构造 k d kd kd树的坐标轴切分找到包含目标点的叶结点;然后以此叶结点的实例点作为当前最近点,以目标点为球心,当前最近点为半斤构造超球体,返回当前节点的父结点,如果父结点的另一节点的超矩形区域与超球体相交,那么在相交区域寻找与目标点更近的实例点。如果存在这样的点,将此点作为新的当前最近点。算法转到更高一级的父结点。如果父结点的另一节点的超矩形区域与超球体不相交,或不存在比当前最近点更近的点,则停止搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值