机器学习之异常检测
一、引言 另一种常用的非监督学习应用场景是异常检测。异常检测会学习正常情况下的样本数据,并在应用时检测出现的异常数据。 异常检测会运用正态分布等知识,这里先介绍一下正态分布(同时也作为自己对概率统计中的相关知识的一点总结)。 二、正态分布 对于连续型随机变量 X,若其概率密度函数为如下的形式 $$ f(x) = \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}} $$ 其中 $\sigma > 0, \mu \in R$ 则称 X 服从正态分布(Normal distribution),记 $X \sim N(\mu, \sigma^2)$。 取 $\mu = 0, \sigma = 1$,此时 $X \sim N(0, 1)$,称 X 服从标准正态分布。记标准正态分布的概率密度为 $\phi(x)$,分布函数为 $\Phi(x)$,则任意的服从正态分布的随机变量 X,其分布函数为 $F(x) = \Phi(\frac{x - \mu}{\sigma})$。 标准正态分布的分布函数数值有表可查。 任意正态分布的分布函数等式中的 $\frac{x - \mu}{\sigma}$ 是不是有点熟悉?在特征放缩那一篇文章中的 Z score 标准化部分有出现。 Z score 标准化似乎就是假定特征数值服从正态分布,并将其转化为标准正态分布形式。 三、算法 我们假设不同训练样本的每一个特征服从服从正态分布。那么,对每一个特征 x_j,求其期望 $\mu_j$ 和方差 $\sigma_j^2$,则该特征对应的概率密度为 $p(x_j, \mu_j, \sigma_j^2) = \Phi(\frac{x - \mu}{\sigma})$。我们假设各个特征之间相互独立,则对于任意的 $\vec{x}=(x_1, x_2, ....