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.

Comprendiendo la validación cruzada del fbprophet.

Logré realizar una validación cruzada para evaluar la precisión del modelo, pero tengo problemas para entender la salida.

Tengo 687 filas, quiero entrenar el modelo con todos mis datos para obtener la mejor predicción posible y medir la precisión en ese modelo. Según entendí, fbprophet no necesita dividirse en conjuntos de entrenamiento y prueba.

Para la validación cruzada, establecí el valor inicial en 500 días (¿número de días que el modelo aprende antes de hacer predicciones?), el horizonte se establece en 20 (número de días a pronosticar después de cada recorte) y el periodo se establece en 10 (porque leí que esto debería ser la mitad del horizonte).


from fbprophet.diagnostics import cross_validation
df_cv = cross_validation(m, initial='500 days', period='10 days', horizon = '20 days')
df_cv.head()

Salida de la validación cruzada


from fbprophet.diagnostics import performance_metrics
df_p = performance_metrics(df_cv)
df_p

Salida de los indicadores de rendimiento

Tengo 17 cortes con 20 predicciones cada uno. ¿Qué se representa en la salida 2? Porque tengo 19 líneas (desde el horizonte 2 hasta el horizonte 20).

Tengo problemas con los indicadores de rendimiento, ¿qué es exactamente la cobertura? ¿Qué representan estos valores, ya que el error absoluto medio no debería ser el mismo para todas las 17 predicciones, ¿verdad?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La validación cruzada en fbprophet divide los datos de la serie temporal en conjuntos de entrenamiento y prueba, pero lo hace automáticamente y el usuario no necesita hacerlo manualmente. En este caso, el parámetro inicial está configurado en ‘500 días’, lo que significa que el modelo utilizará los primeros 500 días de los datos para aprender y luego pronosticará 20 días a la vez (horizon=20) para 17 intervalos con una distancia de 10 días (period=10) entre cada intervalo.

    La salida de la validación cruzada (df_cv) es un marco de datos que muestra los valores reales y pronosticados para cada horizonte de pronóstico, para cada punto de corte. Tiene 17*20=340 filas. Las columnas se especifican en el marco de datos de entrada (m).

    La función performance_metrics() toma la salida de cross_validation() como entrada y calcula un conjunto de métricas para evaluar la precisión del modelo. La salida (df_p) tiene una fila para cada horizonte y una columna para cada métrica. En este caso, hay 19 filas porque hay 19 valores únicos de horizonte (de 2 a 20). Las métricas incluyen el error absoluto medio (MAE), el error cuadrático medio (MSE), el error cuadrático medio de la raíz (RMSE), el error porcentual absoluto medio (MAPE) y la cobertura de los intervalos de predicción.

    La cobertura representa la proporción de valores reales que caen dentro de los intervalos de predicción. Esta métrica se calcula para cada horizonte y cada punto de corte, y se informa la cobertura media en la salida. Las métricas de rendimiento se calculan para cada pronóstico individual, no para el grupo de pronósticos. Por lo tanto, los valores de MAE podrían ser diferentes para cada pronóstico, pero en este caso, resultan ser los mismos para todos ellos.

Comments are closed.