第三章 K邻近法
算法流程
输入:训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) }
其中
xi∈Rn x i ∈ R n 为实例的特征向量
yi∈{c1,c2,⋯,cK},i=1,2,⋯,N y i ∈ { c 1 , c 2 , ⋯ , c K } , i = 1 , 2 , ⋯ , N 为实例的类别
输出:实例
x x 所属的类
y y
(1)根据给定的距离度量,在训练集
T T 中找出与
x x 最邻近的
k k 个点,涵盖着
k k 个点的
x x 的邻域记做
Nk(x) N k ( x )
(2)在
Nk(x) N k ( x ) 中根据分类决策规则(如多数表决)决定
x x 的类别
y y :
y=argmaxcj∑xi∈Nk(x)I(yi=cj),i=1,2,⋯,N;j=1,2,⋯,K y = a r g max c j ∑ x i ∈ N k ( x ) I ( y i = c j ) , i = 1 , 2 , ⋯ , N ; j = 1 , 2 , ⋯ , K
其中
I I 为指示函数,当
yi=cj y i = c j 的时候等于1,否则为0
距离度量
一般为 Lp L p 距离,设特征空间 X X 是 n n 维实数向量空间 Rn R n , xi,xj∈X,xi=(xi(1),xi(2),⋯,xi(n))T,xj=(xj(1),xj(2),⋯,xj(n))T x i , x j ∈ X , x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T , x j = ( x j ( 1 ) , x j ( 2 ) , ⋯ , x j ( n ) ) T
xi,xj x i , x j 的 Lp L p 距离定义为
Lp(xi,xj)=(∑l=1n|x(l)i−x(l)j|p)1p L p ( x i , x j ) = ( ∑ l = 1 n | x i ( l ) − x j ( l ) | p ) 1 p
当
p=2 p = 2 时,称为欧氏距离
L2(xi,xj)=(∑l=1n|x(l)i−x(l)j|2)12 L 2 ( x i , x j ) = ( ∑ l = 1 n | x i ( l ) − x j ( l ) | 2 ) 1 2
当
p=1 p = 1 时,称为曼哈顿距离
L1(xi,xj)=∑l=1n|x(l)i−x(l)j| L 1 ( x i , x j ) = ∑ l = 1 n | x i ( l ) − x j ( l ) |
当
p=∞ p = ∞ 时,为各坐标距离的最大值
L∞(xi,xj)=maxl|x(l)i−x(l)j| L ∞ ( x i , x j ) = max l | x i ( l ) − x j ( l ) |
K值的选择
选择较小的K值相当于用较小的领域中的训练实例进行预测,近似误差会减小但是估计误差会增大
选择较大的K值近似误差会增大但是估计误差会减小
分类决策规则
一般采用多数表决规则