Spaces:
Runtime error
Runtime error
from kats.models.prophet import ProphetModel, ProphetParams | |
from kats.consts import TimeSeriesData | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
import gradio as gr | |
def build_model(time_series_csv, changepoint_range, changepoint_prior_scale, seasonality_prior_scale, seasonality_mode, test_size): | |
# time_series_csv = pd.DataFrame(time_series_csv) | |
time_series_csv = pd.read_csv(time_series_csv.name, delimiter=",") | |
# Divis贸n entre entrenamiento y test (sintaxis de Kats) | |
train_size = 1 - test_size | |
split_idx = int(len(time_series_csv) * train_size) | |
ts_train = TimeSeriesData( | |
pd.DataFrame( | |
{ | |
"time": time_series_csv['time'][:split_idx], | |
"target": time_series_csv['value'][:split_idx] | |
} | |
) | |
) | |
ts_test = TimeSeriesData( | |
pd.DataFrame( | |
{ | |
"time": time_series_csv['time'][split_idx:], | |
"target": time_series_csv['value'][split_idx:] | |
} | |
) | |
) | |
# Creaci贸n del modelo | |
prophet_params = ProphetParams( | |
changepoint_range = changepoint_range, | |
changepoint_prior_scale = changepoint_prior_scale, | |
seasonality_prior_scale = seasonality_prior_scale, | |
seasonality_mode = seasonality_mode | |
) | |
model = ProphetModel(ts_train, prophet_params) | |
# Entrenamiento del modelo | |
model.fit() | |
# Predicci贸n | |
forecasting = model.predict( | |
steps=len(ts_test) | |
) | |
result = pd.concat([ | |
ts_test.to_dataframe().set_index('time'), | |
forecasting.set_index('time') | |
], axis=1) | |
fig = plt.figure() | |
plt.plot(result) | |
plt.title("Prediction") | |
return fig | |
# Interfaz | |
iface = gr.Interface( | |
fn=build_model, | |
inputs=[ | |
gr.File(), | |
gr.Slider(0.8, 0.99), | |
gr.Number(precision=2), | |
gr.Number(precision=2), | |
gr.Radio(choices=['additive','multiplicative']), | |
gr.Slider(0.1,0.35,step=0.1,value=0.2) | |
], | |
outputs=gr.Plot(), | |
title="Prophet model generator", | |
description="Upload your .csv with a time series and set up your own Prophet model to make predictions. 馃敭", | |
allow_flagging='never', | |
theme="peach" | |
) | |
iface.launch(debug=True) |