DHEIVER commited on
Commit
af54ee7
1 Parent(s): e2d4bf8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -7
app.py CHANGED
@@ -2,9 +2,14 @@ import gradio as gr
2
  import pandas as pd
3
  import numpy as np
4
  from statsmodels.tsa.seasonal import STL
5
- from sklearn.ensemble import IsolationForest
6
  import matplotlib.pyplot as plt
7
 
 
 
 
 
 
8
  def detect_anomalies(series, seasonality_window=7, anomaly_threshold=0.05):
9
  # Decompose series using Seasonal-Trend decomposition using LOESS (STL)
10
  decomposition = STL(series, seasonal=seasonality_window).fit()
@@ -42,9 +47,8 @@ def anomaly_detection_app(time_series_txt):
42
  df['Date'] = pd.to_datetime(df['Date'])
43
  df = df.set_index('Date')
44
 
45
- # Determinar a periodicidade da série (assumindo que é diária)
46
- # Se os dados forem de outra periodicidade, ajuste o valor apropriado aqui
47
- periodicity = 1
48
 
49
  # Detectar anomalias na série temporal
50
  anomalies = detect_anomalies(df['Value'], seasonality_window=periodicity)
@@ -54,9 +58,6 @@ def anomaly_detection_app(time_series_txt):
54
 
55
  return anomalies
56
 
57
- # Resto do código continua o mesmo
58
-
59
-
60
  # Interface do Gradio
61
  iface = gr.Interface(
62
  fn=anomaly_detection_app,
 
2
  import pandas as pd
3
  import numpy as np
4
  from statsmodels.tsa.seasonal import STL
5
+ from pmdarima import auto_arima
6
  import matplotlib.pyplot as plt
7
 
8
+ def detect_periodicity(series):
9
+ # Use o método auto_arima para determinar a periodicidade da série
10
+ stepwise_model = auto_arima(series, start_p=1, start_q=1, max_p=3, max_q=3, m=12, seasonal=True, trace=True)
11
+ return stepwise_model.seasonal_order[0]
12
+
13
  def detect_anomalies(series, seasonality_window=7, anomaly_threshold=0.05):
14
  # Decompose series using Seasonal-Trend decomposition using LOESS (STL)
15
  decomposition = STL(series, seasonal=seasonality_window).fit()
 
47
  df['Date'] = pd.to_datetime(df['Date'])
48
  df = df.set_index('Date')
49
 
50
+ # Determinar a periodicidade da série automaticamente
51
+ periodicity = detect_periodicity(df['Value'])
 
52
 
53
  # Detectar anomalias na série temporal
54
  anomalies = detect_anomalies(df['Value'], seasonality_window=periodicity)
 
58
 
59
  return anomalies
60
 
 
 
 
61
  # Interface do Gradio
62
  iface = gr.Interface(
63
  fn=anomaly_detection_app,