- K近邻法模型的三要素:K值的选择、距离度量、分类决策规则(多数表决)
一、K近邻法模型(分类与回归方法)
- K值的选择:采用交叉验证法进行选取
- 若 k k k值过小,整体模型会复杂,容易发生过拟合
- 若 k k k值过大,输入实例较远的训练实例也会对其的预测起作用,使预测发生错误
- 距离度量:常用的距离公式如下图所示:
- 分类决策规则:多采用多数表决,即由输入实例的K个邻近的训练实例中的多数类决定输入实例的类
二、K近邻法的算法
- 输入:训练数据集 T = { ( x 1 , y 1 ) , ⋯ , ( x N , y N ) } T=\{(x_1,y_1),\cdots,(x_N,y_N)\} T={(x1,y1),⋯,(xN,yN)},其中 x i ∈ X = R n x_i\in\mathcal{X}=\pmb{R}^n xi∈X=RRRn为实例的特征向量, y i ∈ Y = { c 1 , ⋯ , c k } y_i\in\mathcal{Y}=\{c_1,\cdots,c_k\} yi∈Y={c1,⋯,ck}为实例的类别, i = 1 , 2 , ⋯ , N i=1,2,\cdots,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 = a r g m a x c j ∑ x i ∈ N k ( x ) I ( y i = c j ) y=arg\underset{c_j}{max}\sum_{x_i\in N_k(x)}I(y_i=c_j) y=argcjmaxxi∈Nk(x)∑I(yi=cj)其中 i = 1 , 2 , ⋯ , N i=1,2,\cdots,N i=1,2,⋯,N, j = 1 , 2 , ⋯ , K j=1,2,\cdots,K j=1,2,⋯,K, I I I为指示函数
三、K近邻法的实现: k d kd kd树
- 为减少计算距离的次数,考虑使用特殊的结构存储训练数据,其中之一: k d kd kd树方法,为二叉树
3.1 构造 k d kd kd树
- 构造根结点,使根节点对应于 k k k维空间中包含所有实例点的超矩形区域
- 通过递归方法,不断对
k
k
k维空间进行切分,生成子节点
- 终止的结点为叶结点
3.1.1 构造平衡 k d kd kd树的算法
3.1.2 k d kd kd树的最近邻搜索
参考:《统计学习方法》李航著