python实现时序异常检测_时序预测 01 - 异常检测 Smoothed z-score algorithm 标准化的一些实践、调参总结 -Python/pandas/numpy...

本文介绍了使用Python进行时序异常检测的方法,重点探讨了Smoothed z-score算法,包括其基础概念、标准化过程以及在实际应用中的参数调优。通过示例代码展示了如何利用该算法检测时序数据中的异常值,并提供了模拟测试和实际业务线数据的案例分析。
摘要由CSDN通过智能技术生成

z-score 的基础概念

这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。

将A的原始值x使用z-score标准化到x’,

x′=x−μδ ,μ为数据的均值, δ为方差。

z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

将数据按其属性(按列进行)减去其均值,然后除以其方差。

最后得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1。

Python使用平滑移动+z-score进行时序数据的异常值检测 (调参总结见代码注释及后续结果输出)

# -*- coding: utf-8 -*-

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import math

def smoothed_z_score_test(data):

""" 一点调参总结

平滑z-score 测试

:param y: 原DataFrame的数据列

:param lag: 滞后数(初始滑动窗口大小) , 建议设置为业务线的循环周期需要的天数, 看业务线的周期规律——估算出回归周期,乘上系数; 按天变化的设置为7*4天, 按周的设置为7*4*4天, 等

:param threshold: 阈值 = 当前值超出前面所有的值的平均水平的绝对值 除以 前面所有的值的标准差的倍数 的上限, 建议2倍

:param influence: 平滑系数,发生异常点时使用的平滑系数,(0,1),值越大越受当前值的影响,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值