【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week9-1 Anomaly Detection

9-1 Anomaly Detection 课程内容

此文为Week9 中Anomaly Detection的部分。

9-1-1 Density Estimation

Problem Motivation

异常检测(Anomaly detection):我们有一些数据从x(1)到x(m) 我们通常假定这m个样本都是正常的或者说都不是异常的,然后我们需要一个算法来告诉我们一个新的样本数据x-test是否是异常。采取的方法是——给定无标签的训练集 ,我们将对 x的分布概率建模,其中x是这些特征变量。对于x-test 如果概率p 低于阈值ε,那么就将其标记为异常。。反之,如果x-test的概率p大于给定的阈值ε,我们就认为它是正常的。
在这里插入图片描述
异常检测最常见的应用是欺诈检测,常用来识别异常用户。
在这里插入图片描述
异常检测的另一个例子是在工业生产领域,找到异常的飞机引擎,然后要求进一步细查这些引擎的质量。
第三个应用是数据中心的计算机监控,被各大数据中心用来监测大量计算机可能发生的异常。
在这里插入图片描述

Gaussian Distribution

高斯分布(正态分布):
在这里插入图片描述
在这里插入图片描述
参数估计问题:给定数据集,我希望能找到能够估算出 μ和σ平方的值。
下面是对μ和σ2进行参数估计的标准公式。
在这里插入图片描述
在机器学习领域,大家喜欢用m分之1。然而在实际使用中,到底是选择使用 m分之1还是m减1分之1其实区别很小。

Algorithm

异常检测算法:
在这里插入图片描述
在这里插入图片描述

9-1-2 Building an Anomaly Detection System

Developing and Evaluating an Anomaly Detection System

实数评价法的想法:当你在用某个学习算法 来开发一个具体的 机器学习应用时,你常常需要做出很多决定,比如说选择用什么样的特征等等。而如果你找到某种评价算法的方式直接返回一个数字来告诉你算法的好坏,决定就显得更容易了。
在这里插入图片描述
对于训练集,我们还是看成无标签的,通常来讲我们把这些都看成无异常的。 我们的交叉验证集和测试集中有一些样本,这些样本都是异常的。
假如说我们有10000制造的引擎作为样本。假设这10000个样本中大多数都是没有问题的引擎。
在这里插入图片描述
通常来说我们要交叉验证集和测试集当作是完全互不相同的两个数据组。

训练集、交叉验证集和测试集异常检测算法的推导和评估方法如下:
首先,我们使用训练样本来拟合模型p(x)。
然后,假定你的异常检测算法作出了预测。所以给出交叉验证集或者测试集,给出某个测试样本x,假设这个算法对 p(x)<ε 的情况作出的预测为 y=1 ,而p(x)≥ε时算法作出的预测为 y=0。
在这里插入图片描述
可以把异常检测算法想成是对交叉验证集和测试集中的y 进行一个预测。因为数据是非常偏斜的,因为y=0是更加常见的,因此分类准确度不是一个好的度量法。取而代之的,我们应该算出真阳性、假阳性、 假阴性和真阴性的比率来作为评价度量值,我们也可以算出查准率召回率或者算出 F1-积分
在这里插入图片描述
ε是我们用来决定什么时候把一个样本当作是异常样本的一个阈值。一种选择参数ε的方法就是你可以试一试多个不同的 ε的取值,然后选出一个使得
*F1-积分的值最大***的那个ε 也就是在交叉验证集中表现最好的。

更一般来说,我们使用训练集、测试集 和交叉验证集的方法是:不断地用交叉验证集来评价这个算法,然后决定我们应该 用哪些特征?怎样选择ε?所以,就是在交叉验证集中评价算法,然后我们选出一组特征或者当我们找到了能符合我们要求的ε的值后,我们就能用最终的模型来评价这个算法,或者说用测试集来最终评价算法的表现。

Anomaly Detection vs. Supervised Learning

在这里插入图片描述
关键的区别就是,在异常检测算法中我们只有***一小撮正样本***,因此学习算法不可能从这些正样本中学出太多东西。因此取而代之的是,我们使用一组大量的负样本,这样样本就能学到更多或者说能从大量的负样本,比如大量的正常引擎样本中学出 p(x) 模型。另外,我们预留一小部分正样本来评价我们的算法,既用于交叉验证集也用于测试集。

我们通常把垃圾邮件问题看作是监督学习问题的原因:通常有足够多的垃圾邮件的样本 ,我们能得到绝大多数不同类型的垃圾邮件。
在这里插入图片描述
对于欺诈检测(fraud detection) 如果你掌握了许多种不同类型的诈骗方法并且相对较小的训练集,网站上很少出现欺诈用户,那我会使用异常检测算法。 如果你是一个大型在线零售商并且你掌握了大量的想要在你的网站上实施诈骗犯罪的人,也就是说你有很多 y=1 的样本,那么有时候欺诈检测的方法也可能会偏向于使用监督学习算法。

相对而言,垃圾邮件分类、天气预报 以及癌症诊断的问题,倾向于把这些问题当做监督学习。

Choosing What Features to Use

如果你画出数据的直方图并且发现图形看起来非常不像正态分布,那么应该进行一些不同的转换,通过这些方法来让你的数据看起来更具有高斯分布的特点,然后你再把数据输入到学习算法。
在这里插入图片描述
如何得到异常检测算法的特征变量?通常用的办法是,通过一个误差分析步骤。先完整地训练出 一个学习算法,然后在一组交叉验证集上运行算法。然后找出那些预测出错的样本,然后再看看我们能否找到一些其他的特征变量来帮助学习算法,让它在那些交叉验证时判断出错的样本中表现更好。
在这里插入图片描述
通常来说,我想到的选择特征变量的方法是,我会选那些取值不会特别特别大也不会特别特别小的那些特征变量。
在这里插入图片描述

9-1-3 Multivariate Gaussian Distribution (Optional)

Multivariate Gaussian Distribution

目前为止学习的异常检测算法的一种可能的延伸,这个延伸使用了多元高斯分布 (multivariate Gaussian distribution) 。

异常检测算法不能察觉到这个蓝色椭圆所表示的好样本概率高的范围。 它倾向于认为所有在圈上的样本都具有相同的概率。
在这里插入图片描述
改良版的异常检测算法要用到一种叫做多元高斯分布或者多元正态分布的东西。

所以这是我们要做的,我们有特征 x 它是 n 维实数,我们不要把 p(x1) p(x2) 分开,而要建立一个 p(x) 整体的模型,就是一次性建立 p(x) 的模型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Anomaly Detection using the Multivariate Gaussian Distribution

当给定数据集时,把数据代入到 这两个式子中来估计 µ 和 Σ,把它用到异常检测算法中。
在这里插入图片描述
怎么把这些放在一起来开发一个异常检测算法呢?
首先,用我们的训练集来拟合模型 p(x) 来拟合模型 p(x) 。
在这里插入图片描述
然后 ,拿到 一个新样本 x 。如果你拿到一个测试样本,用这个多元高斯分布的公式来计算 p(x)。 如果 p(x) 非常小,那我们就把它标记为一个异常点。如果 p(x) 大于那个参数 ε 那我们就不把它标记为异常点。
在这里插入图片描述
在这里插入图片描述
多元高斯分布模型和原来的模型之间的关系:
事实上原来的模型对应于一种多元高斯分布,它的等高线全部都是沿着轴向的。
在这里插入图片描述
应该在什么时候用哪个模型呢?
原来的模型可能使用得更加频繁,而多元高斯模型则没有那么常用,但是它有能够捕捉特征变量之间的相关性的优势。原来的模型运算量更小,适用于 n 的值非常大,特征变量很多的情况。而多元高斯模型不是非常适合 n 很大的情况,而且m 必须大于 n( 就是说 m 小于或等于 n 这个矩阵是不可逆的)无冗余特征。
在这里插入图片描述
典型的经验法则是,我只在当 m 远大于 n 的时候使用多元高斯模型。首先是确保 m 比 n 大很多。第二件事是 检查冗余特征变量(线性相关的特征变量),如果有两个特征变量相等就删掉其中一个,

测验 Anomaly Detection

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

课程链接

https://www.coursera.org/learn/machine-learning/home/week/9

课件

课件链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值