异常检测
动机
比如在网站用户数据中:我们可以选取用户多久登录一次,访问过的页面,在论坛发布的帖子数量,甚至是打字速度这些指标作为特征,根据已有的训练集来建立概率模型,对于给定新点的数据做密度估计,来判断这个数据是否正常。
高斯分布
简单示意图:
对于图像理解的重要特征是:μ代表波峰的位置,σ代表波峰的宽度
算法
对于多维度的变量,我们的流程是
- 选取我们认为可能满足正态分布的变量
- 求出这些变量的μ,σ
- 将2中求出的值代入,求出新测试点每一维变量的相对概率,最后做累乘
构造系统
分配数据:
例如:我们有10000台正常引擎的数据,有20台异常引擎的数据。
6000台正常引擎的数据作为训练集
2000台正常引擎和10台异常引擎的数据作为交叉检验集
2000台正常引擎和10台异常引擎的数据作为测试集
简单来说就是把正常数据按6:2:2的比例分成训练集,交叉验证集,测试集,然后把异常数据均分到交叉验证集和测试集
评价方法:
- 根据测试集数据,我们估计特征的平均值和方差并构建函数
- 对交叉检验集,我们尝试使用不同的值作为阀值,并预测数据是否异常,根据F1值来选择ξ
- 选出 ξ后,针对测试集进行预测,计算异常检验系统的F1值
异常检测和监督学习的比较
特征选择
-
将单个数据处理成正态分布的形式
常见的操作是进行对数处理,或者指数处理
-
误差检测
对于未能成功识别出的数据,观察其特征,尝试对数据进行变形。
多元高斯分布
动机
对一维的数据作高斯分布,我们只能得出圆形的概率密度圈,对于部分数据其实不能识别出来
以上图为例,大体数据呈椭圆形分布,那么对于左上角的绿色特征值来说,本质上是个异常点,但是分开在 x 1 , x 2 x_1,x_2 x1,x2来看,其实并不离谱。
解释
在一般的高斯分布模型中,我们计算 p ( x ) p(x) p(x)的方法是: 通过分别计算每个特征对应的几率然后将其累乘起来,在多元高斯分布模型中,我们将构建特征的协方差矩阵,用所有的特征一起来计算 p ( x ) p(x) p(x)
对于影响而言
五个模型从左至右依次为:
- 是一个一般的高斯分布模型
- 通过协方差矩阵,令特征1拥有较小的偏差,同时保持特征2的偏差
- 通过协方差矩阵,令特征2拥有较大的偏差,同时保持特征1的偏差
- 通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的正相关性
- 通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的负相关性
多元回归的特点在于能够捕捉特征之间的关系,不过运算起来的时间复杂度较高,通过之前提到的构造特征的方法也可以完成对大规模数据的建模