1.分类器的种类
考虑其输出特性:
二分类和多分类
二分类器将每个数据实例分配给2种可能的标签中的一种。
如果有2个以上的可用标签,称为多分类器。
确定性分类与概率性分类
确定性分类器对每个它分类的数据实例产生一个离散值标签,而
概率性分类器分配一个0到1之间的连续的分数来表示特定标签的可能性,其中各个分类下的概率分数总和为1。包括:朴素贝叶斯分类器、贝叶斯网络和logistic回归。
另一种方法是,根据分类器如何区分不同类中的实例的技术来对分类器进行类型划分。
线性分类器与非线性分类器
线性分类器用一个线性分类超平面来区分不同类别中的实例。
非线性分类器能够构造更复杂的、非线性的决策表面。
全局分类与局部分类
全局分类器用单个模型拟合整个数据集。
局部分类器将输入空间划分为更小的区域,并将不同的模型拟合于每个区域的训练实例。K近邻分类器是一个经典案例。
尽管局部分类器在拟合复杂决策边界时更具灵活性,但它们也更容易受到模型过拟合问题的影响(特别是局部区域不包含训练实例时)。
生成分类器和判别分类器 在预测类别标签的过程中,学习每个类的生成模型的分类器称为
生成分类器。生成分类器包括:朴素贝叶斯分类器和贝叶斯网络。
判别分类器是在没有明确描述每个类别分布的情况下,直接预测类别标签。判别分类器包括:决策树、基于规则的分类器、最近邻分类器、人工神经网络和支持向量机等。
2.最近邻分类器
找到与测试实例的属性相对相似的所有训练实例,这些实例称为最近邻 (nearest neighbor) 。
最近邻分类器将每个样本表示为d维空间中的数据点,其中d是属性数目。给定一个测试实例,根据邻近度度量来计算其接近训练实例的距离。给定测试实例z的k近邻指的是与z最接近的k个训练实例。
如果实例的1-近邻是一个负类,那么实例将分配给负类;
如果最近邻的数目为3,邻域包含两个正类和一个负类实例,使用多数表决方案,实例被分配给正类。
k值选择的重要性
- 如果k太小,那么最近邻分类器可能容易受到噪声的过拟合,如训练数据中错误标记;
- 如果k太大,则最近邻分类器可能错误地分类测试实例,因为它的最近邻列表包括位于远离其邻域的训练实例。
2.1 算法
最近邻算法计算每个测试实例 和所有训练实例 之间的距离(或相似度),以确定其最近邻列表
伪代码
1: 令 k 是最近邻数目,D是训练样例的集合
2: for 每个测试样例 do
3: 计算 z 和每个样例 之间的距离
4: 选择离 z 最近的 k 个训练样例的集合
5:
6: end for
如果训练实例的数量很大,这样的计算成本也是很大的。然而,有效的索引技术可用于减少寻找测试实例的最近邻所需的计算。
一旦获得最近邻列表,测试实例就根据其最近邻的多数类进行分类:
多数表决:
其中, 是类别标签, 是最近邻之一的类别标签,I( · ) 是一个指示符函数,如果其参数为真,则返回值1,否则为0。
在多数表决方法中,每个邻居对分类具有相同的影响。这使得算法对k对的选择非常敏感。减少k的影响的方法之一是,根据距离权衡每个最近邻 的影响: 。结果,距离z较远的训练实例对分类的影响要小于距离z较近的训练实例。
使用距离加权方案,类别标签可以被确定如下:
距离加权投票公式:
2.2 最近邻分类器的特点
(1)“无模型”:最近邻分类器不建立全局模型,而是使用训练实例来对测试实例进行预测。
(2)分类成本大:最近邻分类器(懒惰学习器)虽然不需要建模,但需要计算测试实例与训练实例之间的邻近度,分类测试实例的成本十分大。相比之下,渴望学习器通常花费大量的计算资源来构建模型,一旦建立了模型,对测试实例进行分类非常快。
(3)对噪声十分敏感:最近邻分类器基于局部信息进行预测,而不像决策树一样试图找到适合所有输入的全局模型。
(4)决策边界可变:最近邻分类器可以产生任意形状的决策边界,而决策树通常被约束到直线决策边界。最近邻分类器的决策边界也具有很高的可变性,因为它们依赖于局部信息。
(5)难以处理缺失值:最近邻分类器难以处理训练集和测试集中的缺失值,因为邻近计算通常需要所有的属性存在。
(6)可以处理交互属性的存在
(7)不相关和冗余属性的存在会对最近邻分类器的性能产生不利影响
(8)需要标准化数据:如果用身高(以米为单位),体重(以千克为单位),邻近度量可能完全由体重差异支配决定。