机器学习——k近邻法
k k k近邻法( k k k-nearest neighber, k k k-NN)是一种基本分类与回归方法。
k k k近邻算法
输出:实例
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的类别
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 \left( y _ { i } = c _ { j } \right) , \quad i = 1,2 , \cdots , N ; j = 1,2 , \cdots , K
y=argcjmaxxi∈Nk(x)∑I(yi=cj),i=1,2,⋯,N;j=1,2,⋯,K
k k k近邻模型
距离度量
L
p
(
x
i
,
x
j
)
=
(
∑
l
=
1
n
∣
x
i
(
l
)
−
x
j
(
l
)
∣
p
)
1
p
L _ { p } \left( x _ { i } , x _ { j } \right) = \left( \sum _ { l = 1 } ^ { n } \left| x _ { i } ^ { ( l ) } - x _ { j } ^ { ( l ) } \right| ^ { p } \right) ^ { \frac { 1 } { p } }
Lp(xi,xj)=(l=1∑n∣∣∣xi(l)−xj(l)∣∣∣p)p1
当
p
=
2
p=2
p=2时,为欧式距离。当
p
=
1
p=1
p=1时,为曼哈顿距离。当
p
=
i
n
f
p=inf
p=inf时,是各个坐标距离的最大值,称为切比雪夫距离。
k k k值的选择
k k k值的减小意味着整体模型变得复杂,容易发生过拟合。 k k k值的增大就意味着整体的模型变得简单。通常采用交叉验证法来选取最优的 k k k值。
k d kd kd树
对训练数据进行快速
k
k
k近邻搜索可以采用
k
d
kd
kd树的方法。
k
d
kd
kd树是二叉树,构成一系列的
k
k
k维超矩形区域,每个结点对应于一个
k
k
k维超矩形区域。详细参见【数学】kd 树算法之详细篇。