如何检测多变量,多个时间序列数据中的异常?

时间:2020-05-18 10:05:19

标签: python machine-learning time-series outliers anomaly-detection

我正在尝试在具有数千个唯一客户的巨大销售交易数据集中(超过100万次观察)发现异常。同一客户可以在同一日期多次购买。数据集包含随机交易和季节性交易。我的数据的虚拟样本如下:

Date      CustomerID     TransactionType      CompanyAccountNum      Amount
01.01.19  1              Sales                111xxx                 100
01.01.19  1              Credit               111xxx                 -3100
01.01.19  4              Sales                111xxx                 100
02.01.19  3              Sales                311xxx                 100
02.01.19  1              Refund               211xxx                 -2100
03.01.19  4              Sales                211xxx                 3100

哪种算法/方法最适合此问题?到目前为止,我已经尝试了多变量FBprophet模型(在python上),但结果却不尽人意。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用pyod软件包,例如隔离林或HBOS之类的方法。

它被宣传为“一种用于检测多元数据中离群对象的全面,可扩展的Python工具包”,但性能方面可能会有所不同,因此请首先查看其benchmarks

答案 1 :(得分:0)

如果您有时间序列数据,最好应用一些方法,如移动平均或指数平滑您的数据,以消除趋势和季节性。否则,所有涉及季节性或趋势期的数据点都将被标记为异常。