Cómo preparar los datos

Los datos son una parte fundamental del sistema de aprendizaje automático (AA). Necesitas preparar tus datos antes de que puedas usarlos para entrenar tu modelo de AA y obtener predicciones del modelo entrenado. Esta página proporciona una descripción general de los pasos necesarios para preparar tus datos.

Datos para el entrenamiento de modelo

Necesitas una gran cantidad de instancias de datos existentes para entrenar un modelo. Estos datos:

  • Son representativos de los datos en tu espacio problemático.
  • Incluyen todas las características que tu modelo necesita para hacer predicciones, así como el valor objetivo que deseas inferir en instancias nuevas.
  • Son serializados en un formato que puede aceptar TensorFlow, generalmente CSV o TFRecord.
  • Deben almacenarse en una ubicación a la que tu proyecto de GCP pueda acceder, normalmente en una ubicación de Cloud Storage o BigQuery.
  • Se dividen en tres conjuntos de datos: uno para el entrenamiento del modelo, uno para la evaluación de la generalización y exactitud del modelo entrenado y otro para la prueba del modelo entrenado.

Etapas de preparación de datos

La preparación de datos generalmente involucra pasos iterativos. En esta documentación, los pasos para preparar los datos para el aprendizaje automático supervisado se identifican como:

  1. Recopilar los datos
  2. Limpiar los datos
  3. Dividir los datos
  4. Diseñar las características de los datos
  5. Procesar previamente las características

Recopila los datos

Encontrar los datos, especialmente los datos con las etiquetas que necesitas, puede resultar complicado. Tus fuentes pueden variar significativamente de un proyecto de aprendizaje automático a otro. Si descubres que estás combinando los datos de diferentes fuentes, o estás obteniendo la entrada de datos de varios lugares, debes tener mucho cuidado en el próximo paso.

Limpia los datos

La limpieza de los datos es el proceso de verificación de la integridad y la coherencia. En esta etapa, no deberías estar analizando los datos generales para los patrones. En su lugar, limpias los datos por columna (atributo), en busca de anomalías como:

  • Instancias con características faltantes

  • Múltiples métodos de representar una característica. Por ejemplo, algunas instancias podrían enumerar una medida de longitud en pulgadas y otras en centímetros. Es fundamental que todas las instancias de una característica dada usen la misma escala y sigan el mismo formato

  • Características con valores fuera del rango típico (valores atípicos), que pueden ser anomalías de entrada de datos o también otros datos no válidos

  • Cambios significativos en los datos sobre las distancias en el tiempo, la ubicación geográfica y otras características reconocibles

  • Etiquetas incorrectas o criterios de etiquetado mal definidos

Divide los datos

Necesitas al menos tres subconjuntos de datos en un escenario de aprendizaje supervisado: datos de entrenamiento, de evaluación y de prueba.

Datos de entrenamiento son los datos que usas para entrenar tu modelo. Debes analizar y llegar a conocer los datos antes de desarrollar el modelo.

Datos de evaluación son los que usas para verificar el rendimiento de tu modelo durante el ciclo de entrenamiento regular. Es tu herramienta principal para garantizar que tu modelo se pueda generalizar para los datos más allá del conjunto de entrenamiento.

Datos de prueba se usan para probar el modelo que está cerca de completarse, generalmente después de varias iteraciones de entrenamiento. No debes analizar tus datos de prueba, en lugar mantenlos actualizados hasta que necesites probar tu modelo. De esa manera, puedes estar seguro de que no estás haciendo suposiciones basadas en la familiaridad con los datos que pueden contaminar los resultados de tu entrenamiento.

Aquí hay algunos puntos importantes que debes recordar cuando divides tus datos:

  • Es mejor hacer un muestreo de forma aleatoria de los subconjuntos de un gran conjunto de datos que usar datos previamente divididos, como instancias de dos períodos o sistemas de recopilación de datos distintos. El último enfoque tiene un riesgo mayor de no uniformidad que puede generar un sobreajuste.

  • Idealmente, deberías asignar las instancias a un conjunto de datos y mantener esas asociaciones durante todo el proceso.

  • Los expertos no están de acuerdo en las proporciones correctas para los diferentes conjuntos de datos. Sin embargo, independientemente de las proporciones específicas, debes tener más datos de entrenamiento que de evaluación y más datos de evaluación que de prueba.

Ingeniería de los atributos de los datos

Antes de desarrollar tu modelo, debes familiarizarte con tus datos de entrenamiento. Busca patrones en tus datos y piensa qué valores podrían influir en tu atributo de destino. Este proceso de decidir qué datos son importantes para tu modelo se denomina ingeniería de atributos.

La ingeniería de atributos no consiste solo en decidir qué atributos usar de tus datos sin procesar. El trabajo más difícil y a menudo más importante es la extracción de características indicativas y generalizables de datos específicos. Eso significa combinar los datos que tienes con tu conocimiento sobre el espacio del problema para obtener los datos que realmente necesitas. Puede ser un proceso complejo, y hacerlo bien depende de entender la cuestión y los objetivos de tu problema. Estos son algunos ejemplos:

Datos de ejemplo: dirección de residencia

A menudo, los datos sobre personas incluyen una dirección de residencia, que es una string compleja, que generalmente es difícil que sea coherente y no es particularmente útil para muchas aplicaciones por sí sola. Por regla general, debes extraer una característica más significativa de ella. Estos son algunos ejemplos de lo que podrías extraer de una dirección:

  • Longitud y latitud
  • Barrio
  • Escuela primaria más cercana
  • Distrito legislativo
  • Posición relativa a un punto de referencia

Datos de ejemplo: marca de tiempo

Otro elemento común de los datos es la marca de tiempo, que generalmente es un gran valor numérico que indica la cantidad de tiempo transcurrido desde un punto de referencia común. Estos son algunos ejemplos de lo que podrías extraer de una marca de tiempo precisa:

  • Hora del día
  • Tiempo transcurrido desde otro evento
  • Momento del día (mañana, mediodía, tarde, noche)
  • Si alguna instalación estaba abierta o cerrada en ese momento
  • Frecuencia de un evento (en combinación con otras instancias)
  • Posición del sol (en combinación con latitud y longitud)

Estas son las cuestiones importantes que debes tener en cuenta sobre los ejemplos anteriores:

  • Puedes combinar varios atributos para hacer una característica generalizable. Por ejemplo, la dirección y la marca de tiempo pueden darte la posición del sol.

  • Puedes usar la ingeniería de atributos para simplificar los datos. Por ejemplo, la marca de tiempo al momento del día toma un atributo con valores aparentemente incontables y reducirlo a cuatro categorías.

  • Puedes obtener características útiles y reducir el número de instancias en tu conjunto de datos aplicando la ingeniería entre las instancias. Por ejemplo, usa múltiples instancias para calcular la frecuencia de algo.

Cuando hayas terminado, tendrás una lista de atributos para incluir cuando entrenas tu modelo.

Una de las partes más difíciles del proceso es decidir cuándo tienes el conjunto de características correcto. A veces es difícil saber qué características pueden afectar la exactitud de tu predicción. A menudo, los expertos en el aprendizaje automático destacan que es un campo que requiere flexibilidad y experimentación. Nunca conseguirás que sea perfecto la primera vez, así que haz tu mejor suposición y usa los resultados como información para tu próxima iteración.

Procesa previamente los datos

Hasta ahora, esta página ha descrito pasos generalmente aplicables que se deben tomar cuando preparas tus datos para entrenar tu modelo. Hasta este punto, no ha importado cómo se representan y formatean tus datos. El procesamiento previo es el próximo paso: obtener tus datos preparados en un formato que funcione con las herramientas y técnicas que usas para entrenar tu modelo.

AI Platform y los formatos de datos

AI Platform no toca el formato de tus datos; puedes usar el formato de entrada que sea conveniente para tu aplicación de entrenamiento. Dicho esto, necesitarás tener tus datos de entrada en un formato que pueda leer TensorFlow. También necesitas tener tus datos en una ubicación a la que pueda acceder tu proyecto de AI Platform. A menudo, la solución más sencilla es usar un archivo CSV en un depósito de Cloud Storage al que tenga acceso tu proyecto de GCP. Algunos tipos de datos, como los vectores dispersos y los datos binarios, pueden representarse mejor usando el formato tf.train.Example serializado en un TFRecord.

Cómo transformar los datos

Existen muchas transformaciones que pueden ser útiles de realizar en tus datos de características sin procesar. Algunas de las más comunes son:

  • La normalización de valores numéricos para ser representados en una escala coherente (comúnmente, un rango entre -1 y 1 o entre 0 y 1)
  • La representación de los datos no numéricos, como el cambio de características categóricas a valores de índice o vectores de one-hot
  • La modificación de strings de texto sin procesar a una representación más compacta, como una bolsa de palabras

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud ML Engine para TensorFlow