第3章 k近邻法
k近邻是一种基本分类与回归方法。k近邻法的输入为实例的特征向量面对英语特征空间的点;输出为实例的类别,可以取多类。k近邻法假设给定一个训练数据集,其中实例类别已定。分类时,对新的实例,根据其k个最近邻的训练示例的类别,通过多数表决等方式进行预测。因此,k近邻法不具有显式的学习过程。k近邻法实际上利用训练数据集对特征空间进行划分,并作为其分类的“模型”。k值的选择、距离度量及分类决策是k近邻法的三个基本要素。
本章首先叙述k近邻算法,然后讨论k近邻法的模型以及三个基本要素,最后讲述k近邻法的一个实现方法----kd树,介绍构造kd树和搜索kd树的算法
3.1 k近邻算法
k近邻算法简单、直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。
算法 3.1 (k近邻法)
输入:训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={
(x1,y1),(x2,y2),...,(xN,yN)}
其中, x i ∈ χ ⊆ R n x_i \in \chi \subseteq R^n xi∈χ⊆Rn为实例的特征向量, y i ∈ Y = { c 1 , c 2 , . . . , c K } y_i \in Y = \{c_1,c_2,...,c_K\} yi∈Y={
c1,c2,...,cK}为实例的类别, i = 1 , 2 , . . . , N ; i=1,2,...,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的类别y;
y = a r g max c i ∑ x i ∈ N k ( x ) I ( y i = c i ) i = 1 , 2 , . . . , K y=arg \max_{c_i} \sum_{x_i \in N_k(x)}I(y_i=c_i) i=1,2,...,K y=argcimaxx