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.

Ordenando una serie de datos de clasificación en series temporales.

Estoy trabajando en un problema de clasificación binaria de series temporales. Cada una de mis filas representa a una persona (tengo N consumidores), y las columnas son medidas diarias de una variable única que obtuve de cada persona (K medidas para cada consumidor). Luego, necesito detectar si alguien ha cometido fraude o no (FLAG 1 o 0). Aquí tienes un pequeño ejemplo:

data = {'CONS_NO': [1,2,3,'N'], 'Day_1': [1, 2, 3, 4], 'Day_2': [200, 321, 0, 128], 'Day_K': [123, 0, 3, 1], 'FLAG':[1,1,0,0]}

# Crear DataFrame
df = pd.DataFrame(data)
df

  CONS_NO  Day_1  Day_2  Day_K  FLAG
0       1      1    200    123     1
1       2      2    321      0     1
2       3      3      0      3     0
3       N      4    128      1     0

La forma en que está organizado mi conjunto de datos ahora, las primeras 3000 filas están formadas por consumidores que han cometido fraude, mientras que el resto de las filas están formadas por consumidores honestos.

He visto que no debo mezclar mis columnas y que necesito usar algo como TimeSeriesSplit() para dividir mis conjuntos de entrenamiento/prueba. Pero, ¿está bien mezclar las filas en mi dataframe? O, para ser más preciso, ¿realmente necesito hacer esto? ¿Ayudará al entrenamiento de mi modelo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como regla general, debemos mezclar los datos cuando no hay un orden o secuencia inherente. Sin embargo, en el caso de datos de series temporales, hay una secuencia natural y el orden de las observaciones es importante. Por lo tanto, no se recomienda mezclar las filas de un conjunto de datos de series temporales.

    La mezcla puede romper el orden temporal, haciendo imposible que un modelo de series temporales aprenda las secuencias correctamente. La mezcla introduce sesgo y dificulta el aprendizaje del patrón subyacente, ya que la relación entre las características y la variable objetivo puede cambiar.

    En cuanto al conjunto de datos proporcionado, el enfoque recomendado es utilizar TimeSeriesSplit() para dividir el conjunto de datos y preservar el orden de las observaciones. Esto proporciona una forma confiable de evaluar el rendimiento del modelo en el conjunto de datos de prueba, teniendo en cuenta las relaciones temporales en los datos.

    En resumen, no se recomienda mezclar las filas en un conjunto de datos de series temporales, ya que puede introducir sesgo y dificultar el aprendizaje del patrón subyacente. El enfoque recomendado es utilizar técnicas como TimeSeriesSplit() para dividir los datos y preservar el orden de las observaciones.

Comments are closed.