KNN分类器实战
KNN分类器原理
令 D D D 为一个包含 n n n 个点 x i ∈ R d x_{i}\in R^{d} xi∈Rd 的数据集,其中 D i D_{i} Di 为类标签为 c i c_i ci 的点的子集, n i = ∣ D i ∣ n_{i}=|D_i| ni=∣Di∣。
现给定一个测试点 x j ∈ R d x_{j}\in R^{d} xj∈Rd以及需要考虑的邻居节点数为 K K K,令 r r r 代表从 x j x_j xj 到它的第 K K K 个最近邻居的距离。
根据这个距离我们可以画出一个以测试点 x j x_j xj 为中心,半径为 r r r 的 d d d 维超球体,表示为
B d ( x j , r ) = { x i ∈ D ∣ δ ( x j , x m ) ⩽ r } B_{d}\left( x_{j},r\right) =\left\{ x_{i}\in D\mid \delta \left( x_{j},x_{m}\right) \leqslant r\right\} Bd(xj,r)={
xi∈D∣δ(xj,xm)⩽r} 本式中 δ ( x j , x m ) \delta \left( x_{j},x_{m}\right) δ(xj,xm) 表示测试点 x j x_j xj 到 集合 D D D 中的点 x m x_m xm 的距离。我们这里选取的是欧式距离,即 δ ( x j , x m ) = ∥ x j − x m ∥ 2 \delta \left( x_{j},x_{m}\right)=\parallel x_{j}-x_{m}\parallel_{2} δ(xj,xm)=∥xj−xm∥2。
令 K i K_i Ki 表示 x j x_j x