时间序列数据的异常检测案例

本文探讨了在时间序列数据中使用自动编码器进行异常检测的重要性,尤其是在制造业、医疗保健和金融等领域。通过无监督学习方法,如聚类和主成分分析,以及深度学习的自动编码器,识别偏离常规模式的数据点。文章还介绍了如何使用Python库如pandas、TensorFlow和Keras实现这一过程,并展示了异常检测在预测性维护和市场分析中的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常检测是识别数据集中显著偏离规范的数据点或模式的过程。时间序列是在一段时间内收集的数据点的集合。时间序列数据中的异常检测可能在包括制造业、医疗保健和金融在内的各个行业中有所帮助。时间序列数据中的异常检测可以使用无监督学习方法(如聚类、PCA(主成分分析)和自动编码器)来完成。

什么是异常检测算法?

异常检测是识别数据集中偏离预期模式的数据点的过程。许多应用,包括欺诈检测、入侵检测和故障检测,经常使用异常检测技术。异常检测的目的是找到可能指向潜在危险、问题或机会的不常见或非常罕见的事件。

自动编码器算法是一种无监督深度学习算法,可用于时间序列数据中的异常检测。自动编码器是一个神经网络,它通过首先将输入数据压缩为低维表示,然后将其扩展回其原始维度来学习重建其输入数据。自动编码器可以在典型的时间序列数据上被训练以学习用于异常识别的数据的压缩版本。然后可以使用原始数据和重建数据之间的重建误差来计算异常分数。异常是具有相当大的重建误差的数据点。

时间序列数据与异常检测

在时间序列数据的情况下,异常检测算法尤其重要,因为它们可以帮助我们发现数据中的奇怪模式,而这些模式仅仅通过查看原始数据并不明显。时间序列数据中的异常可能表现为值的突然增加或减少、奇怪的模式或意外的季节性。时间序列数据是跨时间观察的集合。

  • 时间序列数据可用于教导异常检测算法(诸如自动编码器)如何表示典型模式。然后,这些算法可以利用该表示来发现异常。该方法可以通过在常规时间序列数据上训练自动编码器来学习数据的压缩版本。然后可以使用原始数据和重建数据之间的重建误差来计算异常分数。异常是具有相当大的重建误差的数据点。
  • 异常检测算法可以应用于时间序列数据以找到可能指向危险、问题或机会的奇数模式。例如,在预测性维护的上下文中,时间序列异常可以指向预期的设备故障,其可以在其导致大量停机时间或安全问题之前被修复。时间序列数据中的异常可能会揭示市场走势或财务预测模式,这些模式可能会被资本化。

导入库和数据集

Python库使我们非常容易地处理数据,并通过一行代码执行典型和复杂的任务。

  • Pandas -此库有助于以2D阵列格式加载数据帧,并具有多种功能,可一次性执行分析任务。
  • Numpy - Numpy数组非常快,可以在很短的时间内执行大型计算。
  • Matplotlib/Seaborn -这个库用于绘制可视化。
  • Sklearn -此模块包含多个具有预实现功能的库,以执行从数据预处理到模型开发和评估的任务。
  • TensorFlow -这是一个用于机器学习和人工智能的开源库,提供了一系列功能,可以通过单行代码实现复杂的功能。
import pandas as pd
import tensorflow as tf
from keras.layers import Input, Dense
from keras.models import Model
from sklearn.metrics import precision_recall_fscore_support
import matplotlib.pyplot as plt

在这一步中,我们导入使用自动编码器实现异常检测算法所需的库。我们导入pandas用于阅读和操作数据集,导入TensorFlow和Keras用于构建自动编码器模型,导入scikit-learn用于计算精度、召回率和F1得分。

data = pd.read_csv(
	'https://raw.githubusercontent.com/numenta'
	'/NAB/master/data/realKnownCause/ambient'
	'_temperature_system_failure.csv')

# Exclude datetime column
data_values = data.drop('timestamp',
						axis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python收藏家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值