本文来自:https://github.com/Albertsr
第一部分:无监督异常检测
1. 算法
1.1 孤立森林(Isolation Forest)
算法论文: Isolation Forest [Liu et.al, 2008]
算法解析: Isolation Forest算法解析
算法应用: isolationforest.py
1.2 基于PCA的异常检测
思路一:基于样本的重构误差
基于KernelPCA重构误差的异常检测: Recon_Error_KPCA.py
基于LinearPCA重构误差的异常检测: Recon_Error_PCA.py
纯Numpy版本: Recon_Error_PCA_Numpy_SVD.py
不调用scikit-learn,只调用numpy,通过SVD实现PCA,再进行异常检测
返回结果与Recon_Error_PCA完全一致
算法解析: Chapter 1:基于样本的重构误差
算法论文: AI^2 : Training a big data machine to defend [Veeramachaneni et.al, 2016]
算法实现
思路二:基于样本在Major/Minor Principal Component上的偏离度
术语定义:Major——累计约占50%的最大几个特征值对应的主成分;Minor——特征值小于0.2对应的主成分
算法解析: Chapter 2:基于样本在major/minor主成分上的偏离程度
算法论文: A Novel Anomaly Detection Scheme Based on Principal Component [Shyu et.al, 2003]
算法实现: RobustPCC.py
实证分析:异常样本在最大、最小的若干特征值对应的主成分上具有最大的方差
理论分析: Chapter 3. 实证分析:异常样本在最前、最后的若干主成分上具有最大的方差
验证代码: max_ev_decrease.py
验证细节与结果: 多个随机数据集证明异常样本在最前与最后的主成分上具有最大的方差
1.3 马氏距离(Mahalabonas Distance)
算法解析:
Mahalanobis_Distance算法解析
Mahalanobis_Distance变体的算法解析
<