Machine Learning第九讲[异常检测] --(二)创建一个异常检测系统

内容来自Andrew老师课程Machine Learning的第九章内容的Building an Anomaly Detection System部分。


一、Developing and Evaluating an Anomaly Detection System(异常检测系统的衡量指标)

对于某一算法,我们可以通过借助某些数字指标来衡量算法的好坏,仍旧以飞机引擎的例子来说:
假设有10000个正常的引擎,20个有瑕疵的引擎(异常)
我们将这些引擎分为以下数据集:
  • 训练集:使用6000个正常的引擎(y=0)
  • 交叉验证集:使用2000个正常的引擎(y=0),10个异常的引擎(y=1)
  • 测试集:使用2000个正常的引擎(y=0),10个异常的引擎(y=1)
也就是10000个正常的引擎在训练集、交叉验证集和测试集里面都有,且这三个数据集中没有重合的数据。
当然,也有一部分人这样分类:
  • 训练集:使用6000个正常的引擎(y=0)
  • 交叉验证集:使用4000个正常的引擎(y=0),10个异常的引擎(y=1)
  • 测试集:使用4000个正常的引擎(y=0),10个异常的引擎(y=1)
但是我们并不赞成第二种分类方法,因为它的交叉验证集和测试集使用的是同一组数据。
接下来,对于算法的评估过程如下:
(1)使用训练集训练模型p(x)
(2)使用模型p(x)在交叉验证集上做预测,若p(x)<ε,则预测值y=0,若p(x)≥ε,则预测值y=1。
因为预测异常点,这里面的数据肯定会比较偏斜,即正常的样本(y=0)比较多,而异常样本(y=1)比较少,因此使用Accuracy会产生虽然Accuracy高但是预测效果并不好的情况。我们可以采用下面的指标来衡量:
  • True Positive, False Positive, False Negative, True Negative
  • Precision/Recall
  • F1-score
我们可以选出交叉验证集中F1-score最大值时对应的ε值,作为衡量指标ε。我们也可以使用交叉验证集来评价算法,确定应该选择哪些特征。


二、Anomaly Detection vs. Supervised Learning(异常检测 vs. 监督学习)


我们应该什么时候使用异常检测,什么使用监督学习呢?

异常检测监督学习
(1)正样本(y=1)(正样本的数量一般是0-20,也可能是50)的数量比较少(very small)--可以将这些正样本存为交叉验证集和测试集
负样本(y=0)的数量有很多(large)--用大部分的负样本训练模型,因此只要有足够的负样本,便可以很好地拟合数据
(2)异常检测有很多种类型,我们很难从数目较多的正样本中学习出模型来预测未知的样本,因为未知的样本异常的原因可能多种多样,而且可能是之前没有见过的类型。(以飞机引擎为例,异常可能有很多种原因,可能是一个零件的损坏,也可能是全部零件的损坏)
(1)正样本和负样本的数目都很多。
(2)有足够数目的正样本用来训练模型,而且未来需要预测的样本和模型中训练样本较为相似,这种情况需要使用监督学习算法。(可能我们会觉得垃圾邮件的例子也很很多分类,那为什么不适用异常检测而使用监督学习呢?因为虽然垃圾邮件的类型有很多,但是我们垃圾邮件的训练样本也有很多,因此使用监督学习算法)


实践中,异常检测和监督学习的例子有哪些?

异常检测监督学习
  • 诈骗预测--虽然诈骗预测一般使用异常检测,但是如果有大量欺诈用户的数据,预测模型能够预测未知数据,我们倾向于使用监督学习算法
  • 工业界,如飞机引擎的检测
  • 数据中心用来检测数据是否异常
  • 垃圾邮件分类
  • 天气预测,根据已有数据预测未来的天气趋势(晴天/阴天等)
  • 癌症分类


三、Choosing What Features to Use(如何选择特征?)

首先,如果根据特征画出来的图形和高斯分布的图形相差比较大,则我们需要对特征做一些处理,使得图形与高斯分布的图形相似,这样能够提高预测准确率,具体如下图:


上面的图形与高斯分布的图形很类似,所以我们不需要处理,而对于下面的图形,因其与高斯分布图形相差太大,所以我们需要处理,可以使用log,或者开平方等函数。

将图形变成高斯分布之后,有利用我们进行预测,那我们应该怎么进行异常检测中的错误分析呢?

  1. 我们期望对于normal的样本,p(x)的值大一些,对于anomalous的样本,p(x)的值小一些
  2. 但是,大多数的情况是:无论是对于normal的样本还是anomalous的样本,p(x)都很大或者都很小

面对这种情况,我们需要找出那些预测错误的样本(无论是normal还是anomalous),找出其共有特征,看看是否可以提取出一些新特征来提高预测准确率,来看下面的例子:


左图是原始的图形,它只包含一个特征x1,其中A点是一个异常点,但是A点对应的p(x)还是比较大的,因此在预测的时候它是被错误预测的,即预测值y=0,将其预测为normal,但是其是anomalous的。我们分析之后发现其有一个特征x2,因为我们加入特征x2,加入x2之后,所有样本的分布图如右图,这时候,可能红圈之内的样本被预测为normal,红圈之外的样本被预测为anomalous,因此在含有2个特征的情况下,这个异常样本是可以被检测出来的,这样也就提高了预测的准确率。

再举一个数据中心检测的例子:

我们在选择特征时,需要会选择那些取值不是很大也不是很小的特征,比如:

  • x1 = memory use of computer
  • x2 = number of disk accesses/sec
  • x3 = CPU load
  • x4 = network traffic

我们将下来想知道哪些地方出现问题了,我认为CPU load和network traffic应该互为线性关系,在程序运行的过程中,发现有一组数据CPU load和network traffic都很大,但是怀疑一种情形:在执行的过程中,计算机进入了死循环,因此被卡住了,因此CPU load升高,但是network traffic没有变化,在这种情况下,要检测出异常,我可以新增新的特征:x5 = (CPU load)/(network traffic)或者x6 = (CPU load)^2/(network traffic),这样,若network traffic不变,而CPU load变大,x5或者x6就会出现异常,以便检测。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Intelligent video systems and analytics represent an active research field combining methods from computer vision, machine learning, data mining, signal processing and other areas for mining meaningful information from raw video data. The availability of cheap sensors and need for solving intelligent tasks facilitate the growth of interest in this area. Vast amount of data collected by different devices require automatic systems for analysis. These systems should be able to make decisions without human interruption or with minimal assistance from a human operator. Video analytics systems should understand and interpret a scene, detect motion, classify and track objects, explore typical behaviours and detect abnormal events [1]. The application area of such systems is huge: preventing crimes in public spaces such as airports, railway stations, or schools; counting objects at stadiums or shopping malls; detection of breaks or leaks; smart homes for elderly people maintenance with fall detection functionality and others. Behaviour analysis and anomaly detection are essential parts of intelligent video systems [2,3]. The objectives of anomaly detection are to detect and inform about any unusual, suspicious and abnormal events happening within the observed scene. These may be pedestrians crossing a road in a wrong place, cars running on the red light, abandoned objects, a person fall, a pipe leak and others. Decisions made by a system should be interpretable by a human therefore the system should also provide information about typical behaviours to confirm its decisions. This thesis develops machine learning methods for automatic behaviour analysis and anomaly detections in video. The methods allow to extract semantic patterns from data. These patterns can be interpreted as behaviours and they are used as a basis for decision making in anomaly detection.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值