机器学习(7)- 异常检测

根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。

1 异常检测

对数据建模,形成概率分布函数\(p(x)\);检查\(p(x_{test})\)的值

e.g.

  • 欺诈检测:可以找出行为异常的用户
  • 工业领域
  • 数据中心的计算机监控

1.1 高斯分布/正态分布\(x ~ N(\mu,\sigma^2)\)

\(\mu\):平均值,控制钟形曲线的中心位置

\(\sigma^2\):方差,控制钟形曲线的宽度

\(p(x;\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2})\)

参数估计

\(\mu=\frac{1}{m}\sum_{i=1}^mx^{(i)}\)

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

密度估计

\(p(x)=p(x_1;\mu_1,\sigma_1^2)p(x_2;\mu_2,\sigma_2^2)p(x_3;\mu_3,\sigma_3^2)\cdots p(x_n;\mu_n,\sigma_n^2)=\prod_{j=1}^np(x_j;\mu_j,\sigma_j^2)\)

1.2 异常检测算法

  1. 选择特征<见1.4>
  2. 参数估计\(\mu_j,\sigma_j^2\)或者\(\mu,\Sigma\)<见1.5>
  3. 给定新样本,进行密度估计,如果比\(\epsilon\)小,则异常

开发和评估

训练集:60%无异常的样本,估计特征的平均值和方差并构建\(p(x)\)函数

交叉验证集:20%无异常的样本+50%异常的样本,使用交叉验证集选择\(\epsilon\),根据\(F_1\)值来选择

测试集:20%无异常的样本+50%异常的样本

度量标准:

  • TP,FN,FP,TN
  • 精确率/召回率
  • \(F_1-score\)

1.3 异常检测 vs. 监督学习

异常检测 监督学习
非常少量的正向类(异常数据 \(y=1\)), 大量的负向类(\(y=0\) 同时有大量的正向类和负向类
许多不同种类的异常。根据非常少量的正向类数据来训练算法非常难。 有足够多的正向类实例,足够用于训练算法。
未来遇到的异常可能与已掌握的异常、非常的不同。 未来遇到的正向类实例可能与训练集中的非常近似

1.4 选择特征

非高斯分布的特征:通过对数函数、开方等方法对特征进行修改,使其图形接近高斯分布

正常和异常样本相近:找出问题,创建新特征

1.5 多元高斯分布

不是对\(p(x_i)\)建模,而是一次性对\(p(x)\)建模;参数\(\mu\)就是一个\(n\)维向量,\(\Sigma\)是一个\(n×n\)的协方差矩阵

\(p(x;\mu,\sigma^2)=\frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}exp(-\frac{(x-\mu)^T\Sigma^{-1}(x-\mu)}{2})\)

参数估计

\(\mu=\frac{1}{m}\sum_{i=1}^mx^{(i)}\)

\(\Sigma=\frac{1}{m}\sum_{i=1}^n(x^{(i)}-\mu)(x^{(i)}-\mu)^T\)

可以发现,之前的高斯分布,它是这里的多元高斯分布的一种特殊情况,即\(\Sigma\)矩阵的非对角线元素都为0

优点:可以自动捕获特征之间的关系→而原始模型就需要手动创建新特征

缺点:计算花费大;\(m>n\),否则协方差矩阵不可逆(\(m\ge 10n\)

猜你喜欢

转载自www.cnblogs.com/angelica-duhurica/p/10962078.html