异常检测——Anomaly Detection

1.问题来源

异常检测——Anomaly Detection
概括:找和训练集不一样的数据。

2.应用

异常检测——Anomaly Detection

难点:异常点难以收集,无法穷举。我只能收集到正常情况的训练数据。

3.分类

异常检测——Anomaly Detection

3.1 case1:With Classifier

1.对每个非异常成员打标训练。
异常检测——Anomaly Detection
2.查看每一条数据 预测矢量 的最大值 c(x),比较异常点和非异常点的c(x)值有没有明显的分界点。
异常检测——Anomaly Detection
但是总有一些异常点会被当作正常点

3.用 偏离集(dev set) 评估“异常检测”模型的 “异常阈值”λ ,要求偏离集有很多异常点和非异常点。
异常检测——Anomaly Detection

3.2 case2:Without Labels

这种情况下没有标签。

3.2.1 问题阐述

还是要寻找一个阈值,分布大于某一阈值为正常点,小于某一阈值为异常点。
异常检测——Anomaly Detection
计算每一个样本的分布概率,累乘,寻找能让L(θ)L(\theta)达到最大值的参数θ\theta

异常检测——Anomaly Detection
fθ(x)f_\theta(x)具体展开:
实际上我们是要找 一组 μ\muΣ\Sigma,使得L(θ)L(\theta)达到最大值。

异常检测——Anomaly Detection

为什么用高斯分布? :常用~

找到最佳参数后,把具体要检测的点带入,即可得到 f(x)
异常检测——Anomaly Detection

4.异常侦测系统(模型)的评价指标

自己定义

因为样本不平衡,所以不建议用accuracy,建议对照precision-recall表,比较假阳性和假阴性的重要程度,分别给予不同的权重,计算新的损失函数。
异常检测——Anomaly Detection

AUC

可以避免测试样本分布不平均的情况,使得假阳性和假阴性一样重要。

5.遇到检测错误的点

容易出现“意外”情况:
异常检测——Anomaly Detection
如何解决:
多找些异常点(通过generative model),让模型对异常点产出很低的置信度。
异常检测——Anomaly Detection