Coursera平台 Andrew Ng《Machine Learning》课程Anomaly Detection一章(第9周)学习笔记。
已知训练集$(x^{(1)},x{(2)},\dots,x^{(m)})$,给出测试数据$x_{test}$。建立模型$p(x)$,如果$p(x_{test})\lt\epsilon$,则认为$x_{test}$异常,否则认为其正常。
高斯分布
设$x\in\mathbb{R}$服从高斯分布,其均值为$\mu$,方差为$\sigma$,则
$$
p(x;\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(x-\mu)^2}{2\sigma^2})
$$
参数估计:
- Dataset: $(x^{(1)},\dots,x^{(m)}),x^{(i)}\in\mathbb{R}$
- $\mu=\frac{1}{m}\sum\limits_{i=1}\limits^{m}x^{(i)}$
- $\sigma^2=\frac{1}{m}\sum\limits_{i=1}\limits^{m}(x^{(i)}-\mu)^2$
异常检测算法
给出训练集$(x^{(1)},\dots,x^{(m)}),x^{(i)}\in\mathbb{R}^n$,若$x_i$服从高斯分布,其均值为$\mu_i$,方差为$\sigma_i^2$,则可建立模型:
$$
p(x)=p(x_1;\mu_1,\sigma_1^2)\times\dots\times p(x_n;\mu_n,\sigma_n^2)=\prod\limits_{j=1}\limits^np(x_j;\mu_j,\sigma_j^2)
$$
计算步骤如下:
- 选择可能异常的$x$;
- 计算$\mu_1,\dots,\mu_n,\sigma_1^2,\dots,\sigma_n^2$
- 计算$p(x)$。若$p(x)\lt\epsilon $,则认为$x$异常。
Develop and Evaluation an Anomaly Detection Algorithm
使用带有标签的数据作为交叉验证集和测试集的数据。算法估计过程如下:
- 对训练集数据$(x^{(1)},\dots,x^{(m)})$,获取模型$p(x)$。
- 在交叉验证集数据上,使用$p(x)$预测$y$:
$$
y=
\begin{cases}
1&,if & p(x) \lt \epsilon \
0&,if & p(x) \ge \epsilon
\end{cases}
$$
- 计算: True positive, false positive, false negative, true negative。
- 计算:Recall, Precision。
- 计算: $F1_{score}$。
可使用CV集,选择使$F1_{score}$最小的$\epsilon$值。
多元高斯分布
数据$x\in\mathbb{R}^n$,参数$\mu\in\mathbb{R}^n$,$\Sigma\in\mathbb{R}^{n\times n}$。
$$
p(x;\mu,\Sigma)=
\frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}
\exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)
$$
使用多元高斯分布的异常检测
计算步骤:
$\mu=\frac{1}{m}\sum\limits_{i=1}\limits^{m}x^{(i)}$,$\Sigma=\frac{1}{m}\sum\limits_{i=1}\limits^{m}(x^{(i)}-\mu)(x^{(i)}-\mu)^T$
对于测试数据$x$,计算:
$$
p(x;\mu,\Sigma)=
\frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}
\exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)
$$
如果$p(x)\lt\epsilon$,则记$x$为异常。
多元高斯分布和前述高斯分布的关系
前述模型:
$$
p(x)=p(x_1;\mu_1,\sigma_1^2)\times\dots\times p(x_n;\mu_n,\sigma_n^2)
$$
相当于多元高斯分布的一个特例,此时多元高斯分布的参数
$$
\Sigma=\left[
\begin{matrix}
\sigma_1^2 & & &O \
&\sigma_2^2 & & \
& & \ddots \
O & & & \sigma_n^2
\end{matrix}
\right]
$$
计算代价较大,且必须有$m\gt n$。