Supongamos que está analizando un enorme conjunto de datos con miles de millones de observaciones diarias, en el que cada observación tiene un par de miles de variables numéricas y categoriales dispersas y posiblemente redundantes. Digamos que hay un problema de regresión, un problema de clasificación binaria desequilibrada y una tarea de "averiguar qué predictores son los más importantes". Mi idea de cómo enfocar el problema es:
Ajustar algún modelo predictivo a submuestras (aleatorias) cada vez mayores de los datos hasta:
-
El ajuste y la validación cruzada del modelo resultan difíciles desde el punto de vista computacional (por ejemplo, mi portátil va excesivamente lento, R se queda sin memoria, etc.), O bien
-
Los valores de RMSE o precisión/recuperación de entrenamiento y prueba se estabilizan.
Si los errores de entrenamiento y prueba no se estabilizan (1.), utilice un modelo más sencillo y/o implemente versiones multinúcleo o multinodos del modelo y vuelva a empezar desde el principio.
Si los errores de entrenamiento y prueba se estabilizan (2.):
-
Si $N_{subset} \ll N$ (es decir, aún puedo ejecutar algoritmos en $X_{subset}$ ya que aún no es demasiado grande), intente mejorar el rendimiento ampliando el espacio de características o utilizando un modelo más complejo y volviendo a empezar desde el principio.
-
Si $N_{subset}$ es "grande" y realizar más análisis es costoso, analiza la importancia de la variable y termina.
Tengo previsto utilizar paquetes como biglm
, speedglm
, multicore
et ff
en R inicialmente, y más tarde utilizar algoritmos más complicados y/o multinodo (en EC2) según sea necesario.
¿Le parece un planteamiento razonable? En caso afirmativo, ¿tiene algún consejo o sugerencia concretos? Si no, ¿qué probaría en su lugar para un conjunto de datos de este tamaño?