机器学习笔记-day07
十五、异常检测(Anomaly Detection)
15.1 问题的动机
$p(x_{test}) < \epsilon \to anomalous\p(x_{test}) \geq \epsilon \to normal $
预测的值与阈值\(\epsilon\)进行比较,以判断是否存在异常
15.2 高斯分布
如果我们认为变量\(x\)符合高斯分布\(x \sim N(\mu, \sigma^2)\)则其概率密度函数为:
\(p(x,\mu,\sigma^2) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})\)
利用已有的数据来预测总体中的\(\mu\)和\(\sigma^2\)的计算方法如下:
\(\mu = \frac{1}{m}\sum^m_{i=1}x^{(i)}\)
\(\sigma^2 = \frac{1}{m}\sum^m_{i=1}(x^{(i)}-\mu)^2\)
高斯分布样例:

15.3 算法
异常检测算法:
对于给定的数据集\(x^{(1)},x^{(2)},...,x^{(m)}\) ,我们要针对每一个特征计算\(\mu\)和\(\sigma^2\)的估计值。
\(\mu_j = \frac{1}{m}\sum^m_{i=1}x^{(i)}_j\)
\(\sigma^2_j = \frac{1}{m}\sum^m_{i=1}(x^{(i)}_j-\mu_j)^2\)
$p(x) = \Pin_{j=1}p(x_j;\mu_j,\sigma2_j) = \Pin_{j=n}\frac{1}{\sqrt{2\pi}\sigma_j}exp(-\frac{(x_j-\mu_j)2}{2\sigma^2_j}) $

15.4 开发和评价一个异常检测系统
虽然异常检测算法是一个非监督算法,但是在学习的时候,还是需要借助标记的数据的。(这算哪门子无监督学习)。
评估方法:
- 根据测试集数据,我们估计特征的平均值和方差并构建\(p(x)\)函数
- 对交叉检验集,我们尝试使用不同的\(\epsilon\)值作为阀值,并预测数据是否异常,根据F1值或者查准率与查全率的比例来选择\(\epsilon\)
- 选出\(\epsilon\) 后,针对测试集进行预测,计算异常检验系统的\(F1\)值,或者查准率与查全率之比
15.5 异常检测与监督学习对比
| 异常检测 | 监督学习 |
|---|---|
| 非常少量的正向类(异常数据 \(y = 1\)), 大量的负向类(\(y = 0\)) | 同时有大量的正向类和负向类 |
| 许多不同种类的异常,非常难。根据非常 少量的正向类数据来训练算法。 | 有足够多的正向类实例,足够用于训练 算法,未来遇到的正向类实例可能与训练集中的非常近似。 |
| 未来遇到的异常可能与已掌握的异常、非常的不同。 | |
| 例如: 欺诈行为检测 生产(例如飞机引擎)检测数据中心的计算机运行状况 | 例如:邮件过滤器 天气预报 肿瘤分类 |
15.6 选择特征
1,若数据不符合高斯分布,虽然算法也能正常使用,但是如果把数据处理下,符合高斯分布,则算法的运行会更好。
2,若异常的样本混在正常数据之间,就需要考虑引入新的feature,使得异常和正常能够区分
3,选取的特征,值不会特别大,也不会特别小
15.7 多元高斯分布
15.8 使用多元高斯分布进行异常检测
十六、推荐系统(Recommender Systems)
16.1 问题形式化
\(n_u\)代表用户的数量
\(n_m\) 代表电影的数量
\(r(i,j)\)如果用户\(j\)给电影\(i\)评过分则 \(r(i,j) =1\)
\(y(i,j)\)代表用户\(j\)给电影\(i\)的评分
\(m_j\)代表用户\(j\)评过分的电影的总数
16.2 基于内容的推荐系统
代价函数
$\frac{1}{2}\sum{n_u}_{j=1}\sum_{i:r(i,j)=1}\left((\theta)^T x^{i} - y^{(i,j)} \right)^2 + \frac{\lambda}{2} \sum{n_u}_{j=1}\sumn_{k=1}(\theta{(j)}_k)2 $
梯度下降,更新公式:

16.3 协同过滤
特点:特征学习,即可以自行学习所要使用的特征。
协同过滤,可以同时针对特征和权重进行拟合。

对代价函数求偏导,结果如下:

16.4 协同过滤算法

16.5 向量化:低秩矩阵分解


16.6 推行工作上的细节:均值归一化
若某用户没有给出任何评分,就假设他的评分是均值。

浙公网安备 33010602011771号