概述
k text{k} k 近邻法( k-nearest neighbor text{k-nearest neighbor} k-nearest neighbor) 是一种基于分类和回归的方法,这里我们只讨论分类问题的 k text{k} k 近邻法。 k text{k} k 近邻输入为实例点的特征向量,输出为实例所属类别。 k text{k} k 近邻假定给定了一个训练数据集,其中的实例类别已经确定。分类时,对新的实例,根据其 k text{k} k 个最近的训练实例的类别,通过多数表决等方式进行预测。
1. 算法描述
Input:
textbf{Input:}
Input:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
T={ (x_1,y_1),(x_2,y_2),ldots,(x_N,y_N) }
T={(x1,y1),(x2,y2),…,(xN,yN)}
其中,
x
i
∈
X
⊆
R
n
x_i in X subseteq bf{R^n}
xi∈X⊆Rn 为实例的特征向量,
y
i
∈
Y
=
{
c
1
,
c
2
,
…
,
c
K
}
y_i in Y={ c_1,c_2,ldots,c_K }
yi∈Y={c1,c2,…,cK}为实例的类别,
i
=
1
,
2
,
…
,
N
i=1,2,ldots,N
i=1,2,…,N;
Output:
textbf{Output:}
Output:
y
=
arg
max
c
j
∑
x
i
∈
N
k
(
x
)
I
(
y
i
=
c
j
)
,
i
=
1
,
2
,
…
,
N
;
j
=
1
,
2
,
…
,
K
y=argunderset{c_j}{max}sum_{x_iin N_kleft( x right)}{Ileft( y_i=c_j right) , i=1,2,ldots,N; j=1,2,ldots,K}
y=argcjmaxxi∈Nk(x)∑I(yi=cj), i=1,2,…,N; j=1,2,…,K
其中,
N
k
(
x
)
N_k(x)
Nk(x) 为涵盖最近的
k
text{k}
k 个点的邻域;
I
text{I}
I 为指示函数,即当
y
i
=
c
j
y_i=c_j
yi=cj 时为1,否则为0。通过分类决策规则(多数表决)决定
x
x
x 的类别
y
y
y。
2. 距离向量
特征空间中两个实例点的距离是两个样本相似程度的反映。
k
text{k}
k 近邻模型使用的距离一般是欧式空间的欧氏距离,但也可以是其它距离,如一般的
L
p
L_p
Lp距离(
L
p
distance
L_p text{ distance}
Lp distance)或者
Minkowski
text{Minkowski}
Minkowski 距离(
Minkowski distance
text{Minkowski distance}
Minkowski distance)。
设特征空间
X
X
X 是
n
n
n 维实数向量空间
R
n
bf{R^n}
Rn,
x
i
,
x
j
∈
X
,
x
i
=
(
x
i
(
1
)
,
x
i
(
2
)
,
…
,
x
i
(
n
)
)
x_i,x_j in X, x_i=(x_i^{(1)},x_i^{(2)},dots,x_i^{(n)})
xi,xj∈X,xi=(xi(1),xi(2),…,xi(n)),
x
i
,
x
j
x_i,x_j
xi,xj 的
L
p
L_p
Lp 定义为:
L
p
(
x
i
,
x
j
)
=
(
∑
i
=
1
n
∥
x
i
(
l
)
−
x
j
(
l
)
∥
p
)
1
p
L_p(x_i,x_j)=(sum_{i=1}^{n}{Vert x_i^{(l)}-x_j^{(l)} Vert}^p)^{frac{1}{p}}
Lp(xi,xj)=(i=1∑n∥xi(l)−xj(l)∥p)p1
这里
p
≥
1
p ge 1
p≥1,当
n
=
2
n=2
n=2 时,就成为欧氏距离,即
L
p
(
x
i
,
x
j
)
=
(
∑
i
=
1
n
∥
x
i
(
l
)
−
x
j
(
l
)
∥
2
)
1
2
L_p(x_i,x_j)=(sum_{i=1}^{n}{Vert x_i^{(l)}-x_j^{(l)} Vert}^2)^{frac{1}{2}}
Lp(xi,xj)=(i=1∑n∥xi(l)−xj(l)∥2)21
当
p
=
1
p=1
p=1 时,称为曼哈顿距离,即
L
p
(
x
i
,
x
j
)
=
∑
i
=
1
n
∥
x
i
(
l
)
−
x
j
(
l
)
∥
L_p(x_i,x_j)=sum_{i=1}^{n}{Vert x_i^{(l)}-x_j^{(l)} Vert}
Lp(xi,xj)=i=1∑n∥xi(l)−xj(l)∥
当
p
=
∞
p=infty
p=∞ 时,它是各个坐标距离的最大值,即
L
p
(
x
i
,
x
j
)
=
max
i
∥
x
i
(
l
)
−
x
j
(
l
)
∥
L_p(x_i,x_j)=underset{i}{max}Vert x_i^{(l)}-x_j^{(l)} Vert
Lp(xi,xj)=imax∥xi(l)−xj(l)∥
3. k text{k} k 值选择
k text{k} k 值的选取会对最终分类结果产生较大的影响。
- 如果 k text{k} k 值过小,则学习的近似误差会下降,只有更输入实例相近的实例点才会起预测作用。但缺点是学习的估计误差会增大,预测结果对近邻的实例点非常敏感,如果实例点恰好是噪声,预测就会出错。容易发生过拟合。
- 如果 k text{k} k 值过大,优点是可以减少学习的估计误差,但缺点是会造成近似误差的增大。这使与输入实例较远的训练实例也会对预测起作用,使预测发生错误。
因此,需要多次尝试不同 k text{k} k 值,然后选取最佳 k text{k} k 值。通常做法是 使用交叉验证来选取最优 k text{k} k 值。
最后
以上就是传统芝麻为你收集整理的K-NN Algorithm(K-NN算法原理)的全部内容,希望文章能够帮你解决K-NN Algorithm(K-NN算法原理)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复