Suponga que está analizando un gran conjunto de datos con miles de millones de observaciones por día, donde 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 pensamiento sobre cómo abordar el problema es:
Ajuste algún modelo predictivo en submuestras de datos progresivamente más y más grandes (al azar) hasta que:
Ajustar y validar de forma cruzada el modelo se vuelve computacionalmente difícil (por ejemplo, irrazonablemente lento en mi computadora portátil, R se queda sin memoria, etc.), O
Los valores de entrenamiento y prueba RMSE o precisión / recuperación se estabilizan.
Si los errores de entrenamiento y prueba no se estabilizaron (1.), use un modelo más simple y / o implemente versiones multinúcleo o multinodo del modelo y reinicie desde el principio.
Si los errores de entrenamiento y prueba se estabilizaron (2.):
Si (es decir, todavía puedo ejecutar algoritmos en X s u b s e t ya que aún no es demasiado grande), intente mejorar el rendimiento expandiendo el espacio de características o utilizando un modelo más complejo y reiniciando desde el principio.
Si es 'grande' y ejecutar análisis adicionales es costoso, analice la importancia variable y finalice.
Voy a utilizar paquetes como biglm
, speedglm
, multicore
, y ff
en I inicialmente, y posteriormente utilizar algoritmos más complicados y / o varios nodos (en EC2) según sea necesario.
¿Suena esto como un enfoque razonable, y si es así, tiene algún consejo o sugerencia específica? Si no es así, ¿qué probarías para un conjunto de datos de este tamaño?