一、异常预测 -- 严格上的异常检测
isolation forest、随机森林、深度学习
一组数据带有正常或异常的标签,判断输入的新数据是否异常
(数据正负样本不平衡的处理,下采样和过采样)
对一组无标签的数据,识别出其中的异常点
(离群点判定简单应用:聚类主要还是识别簇,异常点检测可以看作是附带功能)
15.1 Problem Motivation
什么是异常检测,这里举了一个飞机引擎的例子,我们手上有引擎的数据集,对于一个新引擎我们想通过它的特征判断它是否有异常。
找到分布模型p(x),则异常,否则为正常。(是基于特征的分布模型,数据集并无标签。p(x)只是概率模型)
网站欺诈检测的例子:
对用户活动,如网页访问次数、发帖次数、打字速度等特征进行收集,检测该用户活动是否异常。
15.2 Gaussian Distribution
高斯分布及其参数估计
15.3 Algorithm
1.选择一些可能检测出异常的特征;(如何选择特征)
2.分别计算每个特征的分布模型;
3.计算p(x)如果太小就为异常。(如何选择)
15.4 Developing and Evaluating an Anomaly Detection System
设计一个异常检测系统
对于拿到的数据集假设我们已知其标签值,如飞行器的例子,我们如上将数据集分为训练集、交叉验证集、测试集3个集合
1.在训练集上训练出p(x),
2.由于数据skewed,我们利用之前学习的查准率、召回率来评估算法好坏;
3.我们也可以利用CV来纠正。(解决之前的选择问题)
这与之前的监督学习的算法系统检测很像,那么他们之间有何区别呢?
15.5 Anomaly Detection vs. Supervised Learning
异常检测:正类很少,负类很多;特征很多,未来遇到的正类可能是未出现过的特征异常;数据本身存在噪声;正常、异常的边界难以划分
监督学习:正负类都很多;未来遇到的正类一般是出现过的特征异常。
15.6 Choosing What Features to Use
(回答之前红字的问题)
画出数据分布的直方图,对于不像高斯分布的数据,进行处理 例子中对x1做了log处理使得其分布接近高斯分布。
建立模型不能检测出的异常例子,我们进行观察对比出一个区别与其他正常例子的特征。
综上,这里介绍了两个:
1.选择或者建立更符合高斯分布的特征用来fit高斯分布模型
2.异常检测系统的误差分析:选择更好的特征区别正负样本
15.7 Multivariate Gaussian Distribution
这部分内容相当于让系统自主考虑特征间的相关性,建立多特征的总模型,而不是如之前模型中认为各特征是相互独立的。
这里的x1 x2是正相关关系,多变量建模能更好拟合模型,若如之前分变量建模可能数据x1 x2单独都无异常,但它确实是一个异常数据。
原始模型与多变量模型的区别:
1、后者可以自主识别变量之间相关性
2、后者计算量大
3、使用后者时m必须大于n,否则会不可逆(另外特征冗余也会导致这种情况不过一般不常见)
15.8 Anomaly Detection using the Multivariate Gaussian Distribution
如同之前的PCA算法 我们利用协方差矩阵建模
这里可以看到协方差矩阵可以体现特征之间的关联程度