【发布时间】:2016-07-04 03:49:15
【问题描述】:
我有一个由一列组成的简单数据框。该列中有 10320 个观察值(数字)。我正在通过将数据插入到每个具有 200 个观察窗口的绘图中来模拟时间序列数据。这是绘图的代码。
import matplotlib.pyplot as plt
from IPython import display
fig_size = plt.rcParams["figure.figsize"]
import time
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
fig, axes = plt.subplots(1,1, figsize=(19,5))
df = dframe.set_index(arange(0,len(dframe)))
std = dframe[0].std() * 6
window = 200
iterations = int(len(dframe)/window)
i = 0
dframe = dframe.set_index(arange(0,len(dframe)))
while i< iterations:
frm = window*i
if i == iterations:
to = len(dframe)
else:
to = frm+window
df = dframe[frm : to]
if len(df) > 100:
df = df.set_index(arange(0,len(df)))
plt.gca().cla()
plt.plot(df.index, df[0])
plt.axhline(y=std, xmin=0, xmax=len(df[0]),c='gray',linestyle='--',lw = 2, hold=None)
plt.axhline(y=-std , xmin=0, xmax=len(df[0]),c='gray',linestyle='--', lw = 2, hold=None)
plt.ylim(min(dframe[0])- 0.5 , max(dframe[0]) )
plt.xlim(-50,window+50)
display.clear_output(wait=True)
display.display(plt.gcf())
canvas = FigureCanvas(fig)
canvas.print_figure('fig.png', dpi=72, bbox_inches='tight')
i += 1
plt.close()
这会模拟实时数据流并将其可视化。我想要的是将 theanets RNN LSTM 应用于数据以检测无监督的异常。因为我是在无人监督的情况下进行的,所以我认为我不需要将数据分成训练集和测试集。到目前为止,我还没有找到任何对我有意义的东西,并且已经在谷歌上搜索了大约 2 个小时。只是希望大家能帮上忙。我也想将 RNN 的预测输出放在图上,并定义一个阈值,如果误差太大,这些值将被识别为异常。如果您需要更多信息,请发表评论并告诉我。谢谢!
【问题讨论】:
标签: theano lstm recurrent-neural-network