Mam prostą ramkę danych składającą się z jednej kolumny. W tej kolumnie znajduje się 10320 obserwacji (liczbowych). Symuluję dane Time-Series, wstawiając dane do wykresu z oknem 200 obserwacji każdego. Oto kod do kreślenia.Jak korzystać z Theanets LSTM RNN na moich szeregach czasowych?
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()
Symuluje przepływ danych w czasie rzeczywistym i wizualizuje je. Chciałbym zastosować te dane RNN LSTM do danych w celu wykrycia anomalii bez nadzoru. Ponieważ robię to bez nadzoru, nie sądzę, że muszę podzielić swoje dane na szkolenia i zestawy testowe. Nie znalazłem zbyt wiele z tego, co ma sens do tej pory i zostały googling przez około 2 godziny. Mam tylko nadzieję, że wam pomożecie. Chcę również wstawić wyniki prognozowania RNN na wykresie i zdefiniować próg, który, jeśli błąd jest zbyt duży, wartości zostaną uznane za anomalie. Jeśli potrzebujesz więcej informacji, prosimy o komentarz i daj mi znać. Dziękuję Ci!