Tradicionalmente utilizamos modelos mixtos para modelar datos longitudinales, es decir, datos como:
id obs age treatment_lvl yield
1 0 11 M 0.2
1 1 11.5 M 0.5
1 2 12 L 0.6
2 0 17 H 1.2
2 1 18 M 0.9
podemos suponer intercepción aleatoria o pendiente para diferentes personas. Sin embargo, la pregunta que estoy tratando de resolver involucrará grandes conjuntos de datos (millones de personas, 1 mes de observación diaria, es decir, cada persona tendrá 30 observaciones), actualmente no sé si hay paquetes que puedan hacer este nivel de datos.
Tengo acceso a spark / mahout, pero no ofrecen modelos mixtos, mi pregunta es, ¿hay alguna forma de que pueda modificar mis datos para poder usar RandomForest o SVM para modelar este conjunto de datos?
¿Alguna técnica de ingeniería de características que pueda aprovechar para que pueda ayudar a RF / SVM a tener en cuenta la autocorrelación?
¡Muchas gracias!
Algunos métodos potenciales, pero no podía darme el tiempo para escribirlos en chispa
¿Cómo puedo incluir efectos aleatorios en un bosque aleatorio?
fuente
Respuestas:
Si solo tiene algunas variables, como en el ejemplo, entonces no debería tener problemas con alguna variante de
lme4
.Donde las técnicas de aprendizaje automático realmente brillan es cuando tienes muchas variables y deseas modelar no linealidades e interacciones entre tus variables. Se han desarrollado pocos enfoques de LD que puedan hacer esto con datos longitudinales. Los RNN son una opción, aunque generalmente están optimizados para problemas de series de tiempo, en lugar de datos de panel.
En principio, una red neuronal de avance es un modelo lineal (generalizado), con regresores que son funciones no lineales de los datos de entrada. Si los regresores derivados, la capa superior del modelo antes de la salida, se consideran la parte no paramétrica, entonces no hay nada que le impida agregar una estructura paramétrica junto con ella, tal vez en forma de efectos aleatorios.
Sin embargo, esto no se ha implementado para problemas de clasificación, lo que supongo que estás haciendo porque estás interesado en SVM como candidato.
fuente
Repetición de técnicas de aprendizaje automático para datos longitudinales : la documentación de sklearn de validación cruzada tiene iteradores de validación cruzada para datos agrupados. Ver GroupKFold , LeaveOneGroupOut y LeavePGroupsOut .
Si está interesado en la predicción pura, la mejor opción es probablemente usar redes neuronales recurrentes . Otra opción son los modelos ocultos de Markov .
fuente
¿Realmente necesita bosques aleatorios, NN, etc. para sus datos longitudinales?
lme4
es capaz de manejar a millones de personas:https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf
Puede lidiar fácilmente con modelos mixtos lineales, y como puede ver en el enlace, también tiene soporte para modelos mixtos no lineales (aunque no esperaría que sea rápido como el rayo también para los modelos no lineales).
fuente