1、引言
在实际场景中,很多数据集都是多维度的。随着维度的增加,数据空间的大小(体积)会以指数级别增长,使数据变得稀疏,这便是维度诅咒的难题。维度诅咒不止给异常检测带来了挑战,对距离的计算,聚类都带来了难题。例如基于邻近度的方法是在所有维度使用距离函数来定义局部性,但是,在高维空间中,所有点对的距离几乎都是相等的(距离集中),这使得一些基于距离的方法失效。在高维场景下,一个常用的方法是子空间方法。
集成是子空间思想中常用的方法之一,可以有效提高数据挖掘算法精度。集成方法将多个算法或多个基检测器的输出结合起来。其基本思想是一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来使得输出更加鲁棒。集成方法与基于子空间方法有着天然的相似性,子空间与不同的点集相关,而集成方法使用基检测器来探索不同维度的子集,将这些基学习器集合起来。
下面来介绍两种常见的集成方法:
2、Feature Bagging
bagging
bagging是bootstrap aggregating的缩写。该算法的思想是让学习算法训练多轮,每轮的训练集由从初始的训练集中随机取出的n个训练样本组成,某个初始训练样本在某轮训练集中可以出现多次或根本不出现(即所谓的有放回抽样),训练之后可得到一个预测函数序列h_1,⋯ ⋯h_n ,最终的预测函数H对分类问题采用投票方式,对回归问题采用简单平均方法对新示例进行判别。上面的算法思想可通过下图来进行理解:
图源: https://blog.csdn.net/chenyukuai6625/article/details/73692347
基本步骤
Feature Bagging,基本思想与bagging相似,只是对象是feature。feature bagging属于集成方法的一种。集成方法的设计有以下两个主要步骤:
1.选择基检测器。这些基本检测器可以彼此完全不同,或不同的参数设置,或使用不同采样的子数据集。Feature bagging常用lof算法为基算法。下图是feature bagging的通用算法:
- 给定:集合$ S = {(x_1,y_1),…,(x_m,y_m)}, x_i∈X^d , 标 签 为 ,标签为 ,标签为y_i∈Y={C,NC}$,其中C异表示值,NC 表示正常类,d表示向量X的维度数目(特征数目)。
- 归一化数据集S (如最大最小值归一化/正态归一化)
- For t = 1 , 2 , 3 , 4 , . . . , T t=1,2,3,4,...,T t=1,2,3,4,...,T
- 从符合均匀分布 U ( d / 2 , d − 1 ) U(d/2,d-1) U(d/2,d−1)生成随机数 N t N_t Nt ,作为特征子空间的大小(特征数)
- 有放回地随机选取 N t N_t