¿Es factible hacer una regresión logística en conjuntos de datos con miles de características sin usar una computadora de clúster? ¿Qué tal decenas de miles?

Sí. Es común y yo mismo he usado Regresión logística para manejar Cientos de miles de características varias veces.

Creo que una gran cantidad de características pueden surgir de 3 escenarios:

  1. cuando los datos no están estructurados (por ejemplo, imágenes, videos, bolsa de palabras)
  2. Variable categórica cardinal alta (por ejemplo, nombres de ciudades, nombres de productos)
  3. Gran cantidad de expansiones correlacionadas (transformación + polinomios)

Si su caso es 1), es posible que también desee considerar otros algoritmos como Deep Learning.

Si su caso es 2), podría acelerar aún más las cosas aprovechando la Sparsity inherente, es decir, una ciudad puede tener solo 1 nombre a la vez. Por ejemplo, evite usar 1-hot y use en su lugar truco de Hashing de características o formatos de datos dispersos.

Si su caso es 3), definitivamente considere usar la regularización como Lasso, para que el mejor modelo ligero / disperso (en algunas características importantes de todos estos) pueda detectarse y luego producirse.

La complejidad para entrenar un modelo de regresión logística es O (N * M) donde N es el número de ejemplos que necesita entrenar hasta que su modelo converja y M es el número de características. Una cosa a tener en cuenta es que a menudo las características son escasas, lo que significa que el número promedio de características distintas de cero, por ejemplo, de lo que realmente depende la complejidad del algoritmo de entrenamiento, es mucho menor que el número total de características. Entonces, en general, la respuesta depende de qué tan grande sea su conjunto de datos, cuántas iteraciones necesita, cuán dispersas son sus características y cuánto está dispuesto a esperar para entrenar un buen modelo (por ejemplo, unas pocas horas / días no es irrazonable).

Un truco fácil para acelerar el entrenamiento de un modelo de regresión logística en una sola máquina es emplear el descenso del gradiente (mini) por lotes donde el cálculo del gradiente para un (mini) lote de ejemplos se realiza a través de varios hilos que luego se sincronizan en la operación de actualización de peso .

More Interesting

¿Necesita normalización de características después de la reducción de dimensiones para la clasificación?

¿Cuál es una buena manera de convertir métrica discreta en métrica circular?

¿El trabajo de finanzas corporativas será reemplazado por aprendizaje automático?

¿Cómo detectar el idioma de un texto escrito en inglés? ¿Hay una API disponible donde podamos dar el texto como entrada?

¿Cómo lidiamos con conjuntos de datos muy grandes que no caben en la RAM?

RNN para modelado de idiomas en Tensorflow. ¿Cómo puedo rellenar las secuencias si mi entrada está constituida por la incorporación de palabras?

¿Cómo funciona la función "Tiempos populares" de Google Maps?

¿Cuáles son los mejores clasificadores de código abierto para detectar spam, basura y blasfemias en el contenido generado por el usuario, como los tweets?

¿Puede cualquier máquina interpretar y actuar sobre las respuestas que da Watson en lenguaje humano?

¿Por qué el aprendizaje del 'lenguaje ensamblador y máquina' se enfatiza menos en las universidades en comparación con el aprendizaje de lenguajes de programación generales?

Andrew Ng: ¿Qué opinas sobre el futuro del aprendizaje de Bayesian Networks?

¿Cómo funciona la propagación hacia atrás en la red neuronal convolucional?

¿Cómo soluciona un bosque aleatorio los problemas de regresión (no normalidad, heterocedasticidad, multicolinealidad, valores atípicos, valores faltantes y variables categóricas)?

¿Qué problemas o conjuntos de datos existen cuando usar el impulso da mejores resultados que usar un SGD simple?

Optimización matemática: ¿Por qué el método de descenso más pronunciado usando el descenso de gradiente típico tiene problemas con la función de Rosenbrock?