10-机器学习之异常检测(anomaly detection)

目录

一 背景

二 算法过程

三 样本的分配

四 异常检测与监督学习

五 如何选择特征

六 异常检测中的误差分析流程

七 多元高斯分布

八 多元高斯分布建模

九 如何选择原始模型和多元模型


一 背景

已知一个数据集x^{1},x^{2},...,x^{m},对于一个新的样本x-test,需要有一个模型来判断这个样本是好的样本还是异常样本

定义一个模型(model) p(x)来判断样本是否是异常的,为该模型设定一个阈值作为判断样本是否异常的分界线。

如下图的示例

二 算法过程

首选有一个训练集x^{1},x^{2},...,x^{m},要计算一个概率模型p(x)

假设样本都服从高斯分布,且都是独立同分布的

步骤如下:

一句话总结:如果出现了一个样本令p(x) <\varepsilon ,则认为是异常的样本

三 样本的分配

训练集:采用正常的样本来作为训练集(占总数据集的比重很大)

测试集:用占比稍小的混合了正常数据和异常数据的子数据集来作为交叉验证集和测试集

举例:

对于某个数据集,可以将数据集分为60%,20%,20%三个部分,分别作为训练集,交叉验证集,测试集,并且异常样本的50%,50%分别放到交叉验证集合和训练集中

四 异常检测与监督学习

异常检测与监督学习一样,也是采用了标记过的样本来训练模型,最终用模型来判断新加入的样本是否是正常/异常样本。

(1)使用异常检测的场景

拥有少量的正样本和大量的负样本

异常有许多不同的类型,且算法很难从正样本中知道未来出现的样本的异常的具体类型

(2)使用监督学习的场景

同时拥有大量的正样本和负样本,训练集里的正负样本比例比较均匀

有足够的正样本预测新的正样本是什么样子的,未来出现的正样本和训练集里面已知的正样本会很相似

五 如何选择特征

首先对于非高斯的特征,通过变换使其更接近高斯函数的形状

可以通过如下方式:

  • log(x)
  • log(x+1)
  • log(x+c)
  • \sqrt{x}

通过函数变换,使得特征拟合出来的曲线更接近高斯的钟形曲线

六 异常检测中的误差分析流程

通常,我们的目标是让正样本的p(x)足够大,让负样本的p(x)足够小。但是通常情况下,两种类型样本的p(x)几乎一样大,此时,需要检查系统给出是负样本概率较大的样本,然后尝试用新的特征量来更好的区分数据。

一句话总结: 通常,特征量最好选择对于异常样本有特别大或特别小的那些值得特征量

七 多元高斯分布

通常会遇到如下问题,如下图所示

假设以CPU负载和内存用量为例进行异常检测,红色的点是正常的样本,左图中绿色的是异常的点,但是映射到右侧的两个高斯函数之后,发现映射过去的绿色样本与红色样本差异并不是很大,从右侧的结论来看,它可以被看做是正样本,从而造成预测错误,为了解决这种问题,引入了多元高斯分布

原理:不要单独的为各个维度建立高斯模型,为所有特征建立统一的模型

多元高斯分布举例如下:

改变协方差矩阵,可以得到不同的二元高斯分布函数

 

八 多元高斯分布建模

算办法步骤如下:

1 拟合模型参数

2.给出一个新的样本,计算p(x)

3.如果p(x)< 阈值,则认为是异常样本

九 如何选择原始模型和多元模型

(1).如果需要用特征的组合来代表一个新的特征(这个特征关系是明确的),需要去创建一个新的特征,则可以用原始模型

(2).如果是让自己捕获特征组合之间的关系(特征之间的关系不明确),则可以用多元模型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值