机器学习系列-最近邻分类器
最近邻分类器
消极学习方法
一般的分类器,比如决策树和支撑向量机,只要有训练数据可用,它们就开始学习从输入属性到类标号的映射模型,这类学习策略被称为积极学习方法。与之相对的是消极学习算法,它的策略是推迟对训练数据的建模,在需要分类测试样例时再进行。消极学习的一个例子是Rote分类器,它记住整个训练集,只有当测试样例和某个训练样例完全匹配时才进行分类。这个分类算法有个明显的缺陷就是经常会出现测试样例不能被分类的情况,因为没有任何训练样例与它们匹配。
最近邻分类器
对Rote分类器稍加改进就可以使其更具灵活性,那就是找出和测试样例属性比较接近的所有训练样例,这些训练样例被称为最近邻,可以用来确定测试样例的类标号。这和“物以类聚,人以群分”是一个道理。最近邻分类器把每个训练样例看做\(d\)维空间上的一个点,其中\(d\)是属性个数,给定一个测试样例\(z\),计算\(z\)与每个训练样例的邻近度,找出与之最近的\(k\)个训练样例,将这\(k\)个训练样例中出现最多的类标号赋给\(z\)。
显然,这里\(k\)的取值对分类结果的影响很大:如果\(k\)太小,最近邻分类器容易受到训练样例中的噪声而产生过拟合的影响;如果\(k\)太大,最近邻分类器容易误分类,因为最近邻列表中可能包含远离近邻的数据点。
要降低\(k\)的选择造成的影响,一种途径就是根据每个最近邻\(x_i\)距离的不同对其作用加权:\(w_i=\frac{1}{d(x_i,z)^2}\),这样,距离较远的最近邻对分类结果的影响就相对较小。
最近邻分类器的优缺点
最近邻分类器的优点
- 不需要为训练集建立模型。
- 最近邻分类器可以生成任何形状的决策边界。
最近邻分类器的缺点
- 容易受到噪声的影响。
- 往往需要对训练集进行预处理才能使用。
- 每一次分类耗时长。