Tengo dos conjuntos de datos A y B que son exactamente iguales en términos de número de columnas, nombre de columnas y valores. La única diferencia es el orden de esas columnas. Luego entreno el modelo LightGBM en cada uno de los dos conjuntos de datos con los siguientes pasos
- Divida cada conjunto de datos en capacitación y pruebas (use la misma semilla aleatoria y la misma proporción para A y B)
- Deje los hiperparámetros como predeterminados.
- Establecer un estado aleatorio como un número fijo (para reproducción)
- Ajuste la tasa de aprendizaje utilizando una búsqueda de cuadrícula
- Entrene un modelo LightGBM en el conjunto de entrenamiento y pruébelo en el conjunto de prueba
- Se elegirá la tasa de aprendizaje con el mejor rendimiento en el conjunto de pruebas
Los modelos de salida en los dos conjuntos de datos son muy diferentes, lo que me hace pensar que el orden de las columnas sí afecta el rendimiento del entrenamiento del modelo con LightGBM.
¿Sabes por qué este es el caso?
fuente
lightgbm
permite al usuario establecer las semillas aleatorias utilizadas para el muestreo de filas y columnas.Si bien el ordenamiento de los datos es intrascendente en teoría, es importante en la práctica. Teniendo en cuenta que tomó medidas para garantizar la reproducibilidad, un orden diferente de los datos alterará su lógica de división de prueba de tren (a menos que sepa con certeza que los conjuntos de trenes y los conjuntos de pruebas en ambos casos son exactamente iguales). Aunque no especifica cómo dividir los datos, es muy posible que una cierta variedad de puntos de datos haga que la máquina sea más robusta para los valores atípicos y, por lo tanto, ofrezca un mejor rendimiento del modelo. En el caso de que los datos del tren y la prueba sean los mismos en ambos casos, es probable que tenga que ver si hay una medida de semilla / reproducibilidad (en cualquier parte de su código) que no haya tomado.
fuente