最近邻分类器
决策树和基于规则的分类器是 积极学习方法的例子,因为如果训练数据可用,衙门就开始学习从输入属性到类标号的映射模型。与之相反的策略是推迟对训练数据的建模,知道需要分类测试样例时再进行,采用这种策略的技术被称为 消极学习方法
消极学习方法的一个例子是Rote分类器,它记住整个训练数据,仅当测试实例的属性和某个训练样例完全匹配才进行分类
使用该方法更灵活的一个途径是找出和测试样例的属性相对接近的所有训练样例。给定样例 z z z的k-近邻是指和 z z z距离最近的k个数据点
1. 算法
一旦得到最近邻表,测试样例就会根据最近邻中的多数类进行分类:
多 数 表 决 : y ′ = a r g m a x v ∑ ( x i , y i ∈ D z ) I ( v = y i ) 多数表决:y' = \underset{v}{argmax} \sum_{(x_i,y_i \in D_z)}I(v=y_i) 多数表决:y′=vargmax∑(xi,yi∈Dz)I(v=yi)
v v v是类标号, y i y_i yi是一个最近邻的类标号, I ( ⋅ ) I(\cdot) I(⋅)是示性函数
每个近邻对分类的影响都一样,这使得算法对 k k k的选择很敏感。降低 k k k的影响的一种途径就是根据每个最近邻 x i x_i xi距离的不同对其作用加权: w = 1 d ( x ′ , x i ) 2 w=\frac{1}{d}(x',x_i)^2 w=d1(x′,xi)2. 结果使得远离 z z z的训练样例对分类的影响要比那些靠近 z z z的训练样例弱一些。使用距离加权表决方案,类标号可以由下面的公式确定
距 离 加 权 表 决 : y ′ = a r g m a x v ∑ ( x i , y i ∈ D z ) w i × I ( v = y i ) 距离加权表决:y' = \underset{v}{argmax} \sum_{(x_i,y_i \in D_z)}w_i\times I(v=y_i) 距离加权表决:y′=vargmax∑(xi,yi∈Dz)wi×I(v=yi)
2. 最近邻分类器的特征
- 最近邻分类属于一类更广泛的技术,这种技术称为基于实例的学习,他使用具体的训练实例进行预测,而不必维护源自数据的抽象(或模型)。基于实例的学习算法需要邻近性度量来确定实例间的相似性或距离,还需要分类函数根据测试实例与其他实例的近邻性返回测试实例的预测类标号
- 消极学习方法不需要建模,然而,分类测试样例的开销很大,需要逐个计算测试样例和训练样例之间的相似度
- KNN基于局部信息进行预测,正是因为这样的局部分类决策,KNN(尤其k很小时)对噪声非常敏感
- KNN的决策边界有很高的可变性,因为它们依赖于训练样例的组合,增加最近邻的数目可以降低这种可变性