异常检测,主要是分监督式学习,也有一些方面和监督式学习问题类似。给出一些已知的数据,当有新数据出现时,判断它是否异常。使用场景有检测飞机引擎是否合格,网页用户是否异常等。
Density Estimation Problem Estimation如图所示,一种根据待检测数据到数据质心距离来判断是否异常:
简单定义如下:
Gaussian Distribution高斯分布,又叫正态分布。一维自变量图像如下:
对于一个实际的数据集 ,需要计算出mu和sigma
Algorithm对于x有多个features的异常概率预测格式如下,当有features相关时也work:
一般构建异常检测如下:
Building an Anomaly Dectection System Developing and Evaluating an Anomaly Detection System假设我们的数据集里有label,大部分是non-anomalous,小部分是anomalous
进行数据集划分:
编写算法:
对预测结果进行评估(不使用Classification,因为data很skew,week6有说明这部分)
Anomaly Detection vs Supervised Learning主要区分点在不同label的数量级差异是否过大/每个label的数据量是否充足:
一些实际应用上的区分,有助于理解:
Choosing What Features to Use
1. 主要通过检查feature是否符合正态分布,或者通过开方/三分之一次方/log等让它变成正态分布:
通常用hist做简单的判断:
2. 当有检测失败时,对比它和它附近概率的samples,观察是否有feature能够区分它们
3. 选一些容易出现极端值的features
Muitivariate Gaussian Distribution Multivariate Gaussian Distribution有时用相乘的办法会扩大了non-anomaly的范围 :
所以不用features的p函数相乘,而是把它们放入一个预测函数会更好:
x为n维矩阵/Sigma为n*n方阵,Sigma为协方差,|Sigma|是协方差的行列式。
一些直观的图像来理解:
Anomaly Detection using the Multivariate Gaussian Distribution如果使用简单的乘积模型,数学上能证明(这里略去了)它们对应的Multi版本如下:
一般originla model用的多,multivariate model用的少,但是multi适用一些不寻常的正态分布,以及不寻常的combinations,以及一些cost和数据规模上的区分:
使用Multi可能会出现的两个问题:1. M并不远大于N 2. features内存在强线性相关。第一个需要增大数据量,第二个要剔除那些使Sigma不可逆的features
Recommender Systems Predicting Movie Ratings Content Based Recommendations一个对电影打分的实例来示范怎么预测user对一部电影的评价,定义如下:
Cost function公式(对user j以及对所有的users):
梯度下降更新:
和之前linear regression类似
Collaborative Fitering Collaborative Filtering如何得到每个电影的组成占比?这里介绍根据用户的打分和权重theta来推导:
上面是某一部电影,这里是所有电影:
初始数据只有用户的打分,可以guess一些theta,得到电影的成分x,然后循环处理更新theta和x,基本结果会更好。当然这只是基础的算法设计,后面会有改进。
Collaborative Filtering Algorithm改进为,把之前的两个minimizing方程结合在一起,总方程如下:
整理一下步骤,如下:
Low Rank Matrix Factorization Vectorization: Low Rank Matrix Factorization向量化表达:
找到相关的Movie,可以计算两者的距离:
Implementational Detail: Mean Normalization当有空数据时,通过这种方式能让预测结果为所有结果的平均值
ex-8tbc
实验结果 代码注释 其他1. ex代码和pdf详解,之前囫囵吞枣之,并不求甚解
2. 为什么k=0的时候公式不同
3. symmetry breaking是什么?
4. 协同过滤是什么?L-BFGS/conjugate gradient?
5. ex recommendation中的得分计算全是5.0?



