K近邻算法:样本剪辑和压缩方法
在使用K近邻算法进行分类时,对于一个待分类的样本,需要计算其与训练集中所有样本的距离(首先要存储训练集中所有的样本),并选择距离最小的前k个来进行分类决策。随着训练集中的样本数的增大,K近邻算法的计算成本将急剧增大。目前有两种减少训练集样本数的方法:剪辑方法和压缩方法。前者通过删除错误分类的样本达到压缩训练集的效果,后者的目的是在不改变分类决策边界的前提下减少每一个类的样本数目。
基本的剪辑方法:
给定训练集R和分类规则C,设S是被分类规则错误分类的样本集合,将这些样本从训练集中删除,得到R = R - S。重复这个过程,直到满足停止标准。上述过程结束时,训练集中的样本都是由分类规则正确分类的样本。
将此方法应用于K近邻算法时,过程如下(以N-交叉验证为例):
1. 将训练集R随机划分成N组; 2. 以其余的(N-1)组样本集的并集作为训练集集,对第i组样本集中的每一个样本进行k近邻分类。如果分类错误,则加入到集合S中。i = 1,2,...N. 3. 从R中删除错误样本集,形成新的数据集R = R - S
3. 重复上述过程,直至最近I次迭代过程中没有错分类的样本出现。
若k = 1时,上述方法变成多重剪辑方法。
压缩方法:
1. 对初始训练集R,将其划分为两个部分A和B,初始A样本集合为空。 2. 从R中随机选择一个样本放入A中,其它样本放入B中,用其对B中的每一个样本进行分类。若样本i能够被正确分类,则将其放回到B中;否则将其加入到A中; 3. 重复上述过程,直到B中所有样本都能正确分类为止。
实验表明,这种压缩方法能够大大减少样本集数目。