吴恩达老师机器学习课程chapter09——异常检测

本文是非计算机专业新手的自学笔记,高手勿喷。

本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十五章。



异常检测指的是用来判断样本是否异常的过程。

一元高斯分布/正态分布

对于随机变量\(x \in \mathbb{R}\),服从一个数学期望为μ、方差为σ^2的正态分布,记为 \(N(μ,σ^{2})\),如下:

\[\begin{array}{l}
N(μ,σ^{2})=p\left(x ; \mu, \sigma^{2}\right) =\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)
\end{array}
\]

μ影响函数分布中心位置;σ^2越大函数越平。

从样本中计算数学期望为μ、方差为σ^2:

\[\mu=\frac{1}{m} \sum_{i=1}^{m} x^{(i)}\\
\sigma^{2}=\frac{1}{m} \sum_{i=1}^{m} {\left(x^{(i)}-\mu\right)^{2}}
\]

异常检测算法

有训练集$ x^{(1)}, x^{(2)} \cdots x^{(m)} $,认为各样本独立同分布,有:

\[p(x)=p\left(x_{1} ; \mu_{1}, \sigma_{1}^{2}\right) p\left(x_{2} ; \mu_{2}, \sigma_{2}^{2}\right) p\left(x_{3} ; \mu_{3}, \sigma_{3}^{2}\right) \cdots p\left(x_{n} ; \mu_{n}, \sigma_{n}^{2}\right)
=\prod_{j=1}^{n} p\left(x_{j} ; \mu_{j}, \sigma_{j}^{2}\right)
\]

有异常检测算法如下:

以二维空间为例,可视化之后的直观表现如下:


异常检测设计

给定有标签的样本,可以按照一定比例将其分为训练集、交叉验证集、测试集,一般比例可以选择6:2:2。

例如:

设计步骤如下:

如何选择 $\varepsilon $

可以通过设定不同的 $\varepsilon \(, 在交叉验证集上考察其F1Score,选择F1Score最高时对应的\)\varepsilon $。

如何选择特征

实际操作中,选择接近高斯分布的特征;

如果特征与高斯分布相差很远,可以使用对数函数、幂函数,将特征转变为与高斯分布相近的新特征。

当现有特征不能将异常与非异常的样本区分时,应该寻找新的特征将异常样本剥离出来。


与监督学习的区别

异常检测与监督学习有如下区别:

监督学习通常拥有大量样本,当中包含了许多正样本与负样本;而异常检测中正样本数量通常很少,负样本数量很多。

监督学习中,正样本通常拥有明显的特征,正样本之间很类似;而异常检测中正样本之间可能差异很大,可能会出现从未见过的类型。


多元高斯分布

当特征之间的独立性不够明显,会出现异常样本被淹没的情况:

这时候需要引入协方差矩阵 \(\Sigma\) 。对于一组样本, \(\mu \in \mathbb{R}^{n}, \Sigma \in \mathbb{R}^{n \times n}\),其高斯分布如下:

\[p(x ; \mu, \Sigma)=
\frac{1}{(2 \pi)^{\frac{}{2}}|\varepsilon|^{\frac{1}{2}}}
\exp \left(-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right)
\]

其中,均值向量 \(\mu\) 对分布的影响如下:

协方差矩阵 $\Sigma $对分布的影响如下:

当\(\Sigma\)满足如下条件时:

\[\Sigma=
\begin{bmatrix}
\sigma_{1}^{2} &0 &\cdots &0 \\
0& \sigma_{2}^{2} &\cdots &0 \\
\vdots &\vdots & \ddots &\vdots \\
0& 0 & \cdots &\sigma_{n}^{2}
\end{bmatrix}
\]

多元高斯分布与一元高斯分布的乘积是一样的(各特征独立)。

引入多元高斯分布之后,异常检测算法也要做出如下修改:

多元高斯分布方法与一元高斯分布方法的比较:

吴恩达老师机器学习课程chapter09——异常检测的更多相关文章

  1. 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/

    机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave    开源  MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...

  2. 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程

    上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...

  3. 吴恩达《机器学习》课程总结(5)_logistic回归

    Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题 ...

  4. 深度学习 吴恩达深度学习课程2第三周 tensorflow实践 参数初始化的影响

    博主 撸的  该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8 ...

  5. 吴恩达《机器学习》课程笔记——第七章:Logistic回归

    上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散 ...

  6. 吴恩达《机器学习》课程总结(18)_照片OCR

    18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...

  7. 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归

    ❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...

  8. 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)

    1. 在我们学习中,调试超参数是非常重要的. 超参数的调试可以是a学习率,(β1和β2,ε)在Adam梯度下降中使用, layers层数, hidden units 隐藏层的数目, learning_ ...

  9. 跟我学算法-吴恩达老师(mini-batchsize,指数加权平均,Momentum 梯度下降法,RMS prop, Adam 优化算法, Learning rate decay)

    1.mini-batch size 表示每次都只筛选一部分作为训练的样本,进行训练,遍历一次样本的次数为(样本数/单次样本数目) 当mini-batch size 的数量通常介于1,m 之间    当 ...

  10. 跟我学算法-吴恩达老师的logsitic回归

    logistics回归是一种二分类问题,采用的激活函数是sigmoid函数,使得输出值转换为(0,1)之间的概率 A = sigmoid(np.dot(w.T, X) + b ) 表示预测函数 dz ...

随机推荐

  1. WebForm发布IIS后,报错无谓词错误

    需要在Config文件中添加默认页面 <system.webServer> <defaultDocument> <files> <add value=&quo ...

  2. Mysql数据库基础第四章DDL(数据定义语言):库表的管理、数据类型与约束条件

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  3. grafana嵌入iframe,websoket连接报错400或403(nginx代理)

    1.custom.ini配置文件修改allowed_origins=* 2. nginx中增加配置,如下:

  4. CodeGym自学笔记02——打印命令

    1.方法的主体由命令组成.我们甚至可以说,方法就是一组被赋予名称(方法名称)的命令. 2.如果你使用几次 System.out.println() 命令,就会发现每次传递给该命令的文本都会显示在单独的 ...

  5. Mac OS 如何批量转换图片格式

    ​ 在苹果电脑中,如何快速批量地转换图片的格式.苹果电脑的预览程序,可以实现PNG.JPEG.JPEG-2000.PDF.TIFF格式之间的互换.这里以将PNG格式转换为JPEG格式为例. 工具/原料 ...

  6. CentOS6.8安装docker教程

    在VMware新安装CentOS6.8系统 CentOS6.8可在阿里镜像库下载: https://mirrors.aliyun.com/centos-vault/6.8/isos/x86_64/ 在 ...

  7. shell脚本:报错syntax error near unexpected token `$'\r''解决方法

    之前的shell脚本是在服务器上编写的,后来又已复制的方式存在在了电脑上,以txt文件的形式存放的.于是复制到了编辑工具中,进行了相应项的修改.修改完毕后,拿到服务器上测试,结果执行sh XXX.sh ...

  8. EF中使用SqlBulkCopy

    using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using S ...

  9. 多个if...else和switch...case语句的区别和分析

    1.场景: 当我们有一个判断条件的时候,显然用if语句比较方便有效. 但当判断条件很多的时候,我们可以使用if语句或者if....eles 语句和switch  case 语句. 2.如何选择 一般情 ...

  10. pkill 直接对进程对名字进行操作,可以同时杀死多个进程。

    Linux pkill 命令  Linux 命令大全 Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令. kill 命令杀死指定 ...