K近邻法
k近邻法是一种基本分类(定性)与回归(定量)方法,它通过选择目标实例的k个最近邻实例,使用多数表决(定性分类)或均值计算(定量回归)等方法对目标实例进行预测。k近邻的回归是在分类基础上的拓展,因此我们仅对分类法进行分析。
上述内容可以说明k近邻法的几个关键问题
- k值的选择,即选择几个最近邻进行判断合适
- 距离度量,即怎样算最近邻实例
- 分类决策规则,即为什么要使用多数表决方法
- k-d树,数据的组织与查找算法。通过上述内容可以发现,k近邻法没有明显的函数可以利用实例的特征向量将实例映射到特定类别中,因此需要维护大量数据并进行实时处理,这要求我们对数据的组织与处理进行合理安排
k值的选择
k值通常采用交叉验证法来确定。交叉验证法将样本随机划分为训练集和测试集,通过对比不同k值时测试集的分类准确率来确定k值。一般k值取一个比较小的数值(3~10)。
距离度量
距离度量的选择有很多,对模型的准确率有很大的影响,应该根据实际情况进行选择。常见的距离度量方法
- 欧式距离:适用于低维数据且向量大小非常重要时
- 曼哈顿距离:当数据集具有离散或二进制属性时
分类决策规则
分类决策规则一般采用多数表决法,多数表决法的数学原理如下所示
设分类的损失函数为0-1损失函数,分类函数为 f ( X ) f(X) f(X),那么误分类的概率为
P ( Y ≠ f ( X ) ) = 1 − P ( Y = f ( X ) ) (1) P(Y\neq f(X))=1-P(Y=f(X)) \tag 1 P(Y=f(X))=1−P(Y=f(X))(1)
目标实例的k个最近邻构成集合 N k ( x ) N_k(x) Nk(x),设涵盖该集合的区域所属类别为 c j c_j cj,那么对k个最近邻的误分类率为
1 / k ∑ x i ∈ N k ( x ) I ( y i ≠ c j ) = 1 − 1 / k ∑ x i ∈ N k ( x ) I ( y i = c j )