机器学习之异常检测 Anomaly Detection
将从以下几个方面来介绍异常检测:
1、监督学习与无监督学习
2、异常检测定义
3、异常检测算法
4、如何评估异常检测
一、监督学习与无监督学习
监督学习:有一系列带标签的数据,用假设函数去拟合它(如图1.a)
无监督学习:数据不带有任何标签,将这些数据输入到算法中,然后让算法找到一些隐含在数据中的结构(如图1.b)
异常检测属于无监督学习
二、异常检测定义
有一堆训练资料{x1,x2,x3,…xN},要实现,输入一个x_test,此x_test与训练数值是相像的还是相向的
例如:
三、异常检测算法
1、高斯公式(正态分布)
X~N(𝑢,𝜎^2)
其中, 𝑢为均值 , 𝜎^2 为方差
2、异常检测算法
举例:
每个他用户都从从事不同的用户活动,计算特征变量x(i),于是可以建立一个模型,来表示用户表现出各种行为的可能性,P用来表示用户行为的特征向量出现的概率
比如说X_1表示用户登录的频率
X_2表示用户访问某个页面的次数或者交易次数
X_3表示用户发帖数
可以根据这些数据建立一个模型,然后对P(X)<𝜀的人,做进一步的排查
四、异常检测评估
1、假设有10000个数据的数据集,20个异常数据
用6000个无标签的数据来拟合P(x), 交叉验证集中2000个数据和10个异常数据,测试集2000个数据和10个异常数据
使用P(x)拟合数据,
Y=1 if P(x)<𝜀,anomaly
Y=0 if P(x)>=𝜀,normal
数据可能会是非常倾斜的,因为Y=1非常少,所以可以使用Precision/Recall计算F1_score(在CV交叉验证集上)
𝜀值的选取:
尝试多个𝜀值,使其最大化F1_score实数
2、误差分析-特征
先完整的训练出一个算法,在一组交叉验证集上运行算法,然后找出那些预测出错的样本,并看是否能找到一些其他特征
例如:
使用高斯函数来拟合,如图,如果有一异常淹没在正常中,且概率较大,尝试找一新特征X_2,来帮助算法找出异常的样本
3、数据服从高斯分布,如果不服从可以使用取对数方法log(X),x^(1/2)等,使图形尽可能接近高斯分布
五、异常检测应用
1、信用卡刷卡
Training data
正常刷卡行为
X_test
盗欺盗刷行为
2、网络系统的入侵检测
Training data
正常连线
X_test
攻击行为
3、医疗癌症检测
Training data
正常细胞
X_test
癌细胞