es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Facebook NeuralProphet – Cargando el modelo desde un archivo pickle para hacer predicciones

Tengo un trabajo semanal que lee datos de un archivo csv y crea un modelo basado en NeuralProphet y guarda el archivo pickle para su uso posterior.

from neuralprophet import NeuralProphet
from matplotlib import pyplot as plt
import pandas as pd
import pickle

data_location = /input_data/
df = pd.read_csv(data_location + 'input.csv')

np = NeuralProphet()
modelo = np.fit(df, freq="5min")

with open('model/neuralprophet_model.pkl', "wb") as f:
     # guardar información en ese archivo
     pickle.dump(modelo, f)

El código de Python anterior se ejecuta semanalmente y guarda el archivo del modelo en un archivo.

Ahora, tengo otro archivo de Python que carga el archivo pickle y realiza la predicción para una fecha futura.

Digamos que tengo los datos de los últimos 2 años en un archivo csv y he creado un modelo a partir de ellos. Ahora, me gustaría predecir el futuro en base al modelo anterior.

from neuralprophet import NeuralProphet
import pandas as pd
import pickle

with open('model/neuralprophet_model.pkl', "rb") as f:
     modelo = pickle.load(file)

# Para obtener una predicción de la próxima hora por intervalos de 5 minutos
futuro = modelo.make_future_dataframe(periods=12, freq='5min')
pronostico = modelo.predict(futuro)

¿Es esto correcto? Aquí no paso los datos para crear el dataframe del futuro. Pero todos los ejemplos de Internet también pasan los datos. Dado que los datos se utilizaron para entrenar el modelo, solo estoy utilizando el modelo aquí. ¿Por qué necesitamos pasar también los datos aquí si queremos predecir (para una fecha futura desconocida) basándonos en el modelo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, tu código es correcto. No necesitas pasar datos al método make_future_dataframe() ya que el modelo ya ha sido entrenado con los datos y puede hacer predicciones basadas en los patrones aprendidos. El método make_future_dataframe() se utiliza para crear un nuevo dataframe con fechas futuras para las que deseas hacer predicciones. En este caso, estás utilizando el parámetro periods para especificar el número de períodos futuros que deseas predecir y el parámetro freq para especificar la frecuencia de estas predicciones futuras.

    Sin embargo, pasar datos a make_future_dataframe() puede ser útil en ciertas situaciones, como si deseas hacer predicciones para un subconjunto específico de tus datos o si deseas ver qué tan bien se desempeña el modelo en datos nuevos en los que no ha sido entrenado. En este caso, deberías pasar los nuevos datos al método.

Comments are closed.