¿Técnicas de aumento de datos para conjuntos de datos generales?

21

En muchas aplicaciones de aprendizaje automático, los llamados métodos de aumento de datos han permitido construir mejores modelos. Por ejemplo, suponga un conjunto de entrenamiento de100 imágenes de gatos y perros. Al girar, reflejar, ajustar el contraste, etc., es posible generar imágenes adicionales a partir de las originales.

En el caso de las imágenes, el aumento de datos es relativamente sencillo. Sin embargo, supongamos (por ejemplo) que uno tiene un conjunto de entrenamiento de muestras y unos cientos de variables continuas que representan cosas diferentes. El aumento de datos ya no parece tan intuitivo. ¿Qué se podría hacer en tal caso?100

mmh
fuente
2
Creo que algunos métodos como PCA o AE todavía son intuitivos para el aumento de datos. Los primeros métodos son aplicar PCA y mantener los primeros k valores propios y establecer valores propios kn aleatoriamente a partir de una distribución, gaussiana, etc. Si otros métodos usan codificadores automáticos para construir datos. Si el número de unidades ocultas está cerca de las unidades visibles, puede construirse bastante bien. Los datos reconstruidos se pueden utilizar como parte aumentada de los datos.
yasin.yazici
@mmh, ¿respondió esto a tu pregunta?
shf8888
@ yasin.yazici Hola. ¿podría explicar el bit sobre el aumento de datos usando pca? Supongamos que tengo un dato de con 50 siendo la dimensión de la característica. Ahora hago PCA y encuentro que los primeros 30 vectores propios superiores son suficientes. ¿Qué debo hacer en los próximos 20 vectores propios y cómo debo introducir la aleatoriedad? 100X50503020
roni
Consulte mi tesis de maestría, página 80 para obtener una descripción general de las técnicas de aumento de datos para imágenes.
Martin Thoma
El aumento de datos tiene mucho sentido para las imágenes, por ejemplo. Una imagen girada del objeto sigue siendo una imagen del objeto, y necesita que el modelo esté expuesto a eso, pero presumiblemente no necesariamente tiene esa imagen en su conjunto de datos. ¿Cuál es la necesidad de / punto de aumento de datos en este caso? No me queda claro que deberías estar haciendo esto.
gung - Restablece a Monica

Respuestas:

17

Entiendo que esta pregunta involucra tanto la construcción de características como el manejo de la gran cantidad de características que ya tiene + construirá, en relación con sus observaciones ( N << P).

Construcción de características

Ampliando el comentario de @ yasin.yazici, algunas formas posibles de aumentar los datos serían:

  • PCA
  • Codificación automática
  • Transformaciones como log, poderes, etc.
  • Binning variables continuas en categorías discretas (es decir, la variable continua es 1 SD por encima de la media, 1 por debajo de la media, etc.)
  • Variables compuestas (por ejemplo, ver aquí )

Estoy seguro de que faltan muchos más.

Selección de características / reducción de dimensionalidad

Puede reducir la dimensionalidad con técnicas como PCA (aunque quizás no después de aumentar sus datos con variables de PCA). Alternativamente, puede usar algoritmos que realicen la selección de características para usted, como lazo, bosque aleatorio, etc.

shf8888
fuente
2
¿Puede decir cómo se puede usar la codificación automática para la construcción de características?
roni
1
@roni El entrenamiento exitoso de un autoencoder produce cierta representación de los datos en un nivel más alto de abstracción. Esperemos una representación más útil que pueda usar en un clasificador.
Chris Anderson
0

Me enfrenté a un problema similar en el que quería aumentar los datos numéricos no etiquetados. Aumenté los datos de la siguiente manera: (Digamos que tengo un conjunto de datos de tamaño 100 * 10).

  1. Cree una lista muestreando aleatoriamente valores de {0,1}, de modo que el número de ceros sea menor que el número de 1s, digamos que la proporción de 0s es del 20% en este caso. Entonces uno tendrá una lista de 0s y 1s de longitud 100.
  2. Use esta lista como una variable dependiente y la pasó a smote para generar más puntos de datos. (Aquí, smote generaría puntos en los bordes que conectan los puntos de datos que corresponden a 0 en la lista generada).
  3. Repita este proceso hasta que se obtenga el conjunto de datos del tamaño requerido.
Harshita Vemula
fuente
1
Por favor, no publique respuestas idénticas a múltiples hilos. Si realmente cree que la misma respuesta que ha publicado en otro lugar responde completamente a otra pregunta, marque esa pregunta como un duplicado de la primera.
Gung - Reinstale a Monica