¿Por qué las personas afirman que la mayoría del trabajo para un científico de datos es la limpieza de datos, no la parte de aprendizaje automático?

Para empezar, la limpieza de datos es muy genérica. Todas estas tareas son, pueden considerarse o implican cierto grado de limpieza de datos:

  • Importar datos desde una API
  • Mantenimiento de racimos
  • Mantener tablas de bases de datos
  • Importar datos de tablas
  • Fusionar fuentes de datos
  • Ingeniería de características
  • …y muchos más

Casi todo lo que implica la ciencia de datos implica una parte de la limpieza de datos. Es probablemente la única tarea técnica que es común a cualquier proyecto de ciencia de datos. Esto solo debería explicar por qué la mayoría del trabajo es la limpieza de datos.

Déjame elegir tu cerebro por un segundo para profundizar un poco. No estoy tratando de ser confrontativo. Estoy tratando de hacer pensar … ¡aquí va!

¿Qué pasa si te digo que un trabajo de científico de datos no se trata de aprendizaje automático?

Definió claramente dos conjuntos de acciones: limpieza y aprendizaje automático. Hay mucha ciencia de datos que involucra algo más que el aprendizaje automático. Muchas cosas pueden ser ciencia de datos, desde producir informes hasta ejecutar pruebas A / B y realizar investigaciones de usuarios. Depende de cómo se hagan. Lo que crea un producto de datos es, en mi opinión, ciencia de datos.

¡Esto extiende aún más el alcance y la profundidad de la limpieza de datos! Por ejemplo, tenemos 3 estados básicos de datos en nuestro lago de datos: semi-estructurado en S3, estructurado en Redshift y estructurado en MySQL.

Si sacamos parte de los datos semiestructurados en S3, cada una de las otras tablas fue definida por analistas, canalizaciones construidas por ingenieros y productos de datos que, además, fueron elaborados por … bueno … todos nosotros. Cada una de estas tablas, tuberías y productos implica cierto grado de limpieza de datos.

Y esa es la razón por la cual la mayoría de los científicos de datos afirman que la mayoría del trabajo es la limpieza de datos porque existe desde la creación de un proyecto hasta el producto final. Es el pegamento de toda la ciencia de datos.

Esto suena como un cliché, pero es realmente cierto. Por ejemplo, estoy construyendo modelos predictivos para predicciones deportivas en mi tiempo libre. La mayor parte del tiempo se dedica realmente a

  • escribir (y arreglar) raspadores web
  • fusionando los datos de diferentes fuentes
  • limpiar los datos en términos de datos faltantes y conjuntos de datos mal ensamblados
  • construir / mantener una base de datos escalable

Una vez que tenga todos los datos juntos, es bastante sencillo alimentarlos a un algoritmo de aprendizaje automático.

Yo diría que la recopilación de datos es más desafiante, solo puede limpiar los datos una vez que los tenga. Sin embargo, ese es solo un extremo del espectro. Normalmente, las personas que hacen un trabajo asumen que ese es el mejor trabajo del mundo (para justificar su ego y su valía), lo cual es comprensible. Para la recopilación, limpieza y procesamiento de datos, es posible que necesite decenas (si no cientos) de personas porque es un proceso muy lento y engorroso. Para otras tareas, es posible que necesite menos personas, altamente especializadas y con habilidades diferentes. Data Science tiene sus propios problemas debido a la falta de claridad sobre el tema. Lea esta respuesta La respuesta de Shehroz Khan a ¿Es la ciencia de datos tan fácil que el mercado eventualmente se saturará en exceso y los trabajos serán difíciles de encontrar?

Un problema importante es que las personas tienden a omitir varios pasos que están involucrados en la resolución de un problema de ciencia de datos o aprendizaje automático: la respuesta de Shehroz Khan al aprendizaje automático: ¿Cuáles son los pasos a seguir para analizar un dato para aplicaciones de aprendizaje automático? La limpieza de datos no es ni la primera ni la única actividad en la ejecución de un proyecto de ML exitoso. Incluso si tiene los mejores datos que puede obtener y procesar, si la formulación de su problema es débil y su enfoque de LD es desordenado, es difícil obtener resultados útiles.

En cualquier trabajo, pasará mucho tiempo en las partes que son difíciles de automatizar, y relativamente poco tiempo en las partes que son fáciles de automatizar.

La mayoría del trabajo que realiza con el aprendizaje automático tiende a ser bastante fácil de automatizar y reutilizar. Incluso si hace mucho trabajo para optimizar inteligentemente un algoritmo, ese trabajo se guarda fácilmente en el código, y hay una buena posibilidad de que pueda usarlo en otras situaciones. Además, las bibliotecas existentes son bastante buenas, por lo que para la mayoría de los problemas prácticos puede 80/20 la solución en solo unas pocas horas, a menudo menos.

En contraste, la limpieza de datos es difícil de automatizar, porque no se pueden inferir las reglas de limpieza solo a partir de los datos. Por ejemplo, supongamos que tiene una columna donde la mayoría de los valores están entre 0 y 10, pero algunos son más de 500. Es esto:

  • ¿Un error en la forma en que se registraron los datos?
  • ¿Una forma de indicar códigos especiales?
  • ¿Una situación en la que realmente existe una gran variación, y esa variación es importante?

Necesita información externa para responder a esa pregunta, y eso generalmente proviene del juicio humano.

Ese también es solo un caso: la última vez que hice un importante proyecto de limpieza de datos, tuve que descubrir más de 500 heurísticas similares … ¡para un conjunto de datos que solo tenía unos pocos miles de variables! En comparación, el mejor algoritmo en el conjunto de datos sin limpiar obtuvo alrededor del 60% de las predicciones correctas, mientras que el algoritmo estándar en el conjunto de datos limpio obtuvo alrededor del 85% de las predicciones correctas.

Incluso si los datos están limpios, obtener los datos correctos en el formato utilizable probablemente requerirá el 90% del esfuerzo. Vengo del punto de vista de una empresa con datos estructurados (suscripciones de cable), y hemos pasado los últimos 10 años limpiándolo. Entonces, debería ser fácil, ¿verdad?

Repasemos un ejemplo de la vida real. Suponga que desea construir algún modelo que prediga una desconexión del suscriptor. Entonces, ¿qué tipo de datos necesitas? Desconecta, obviamente, ¿qué tan difícil puede ser? Bueno, muy dificil. Realmente no tenemos una lista de desconexiones. Nuestro sistema es un poco más complicado. Realiza un seguimiento de los cambios de estado de los clientes, que pueden ser cualquier cambio que realicen en su cuenta, incluida una desconexión. Veamos la información general sobre esos cambios. Primero, ¿qué tipo de desconexiones quieres? ¿Desea que se desconecten todos los productos (es decir, desconexiones de relación) o que caigan ciertos productos como Internet o servicio de video? ¿Desventajas de servicio? ¿Quieres todo tipo de desconexiones? ¿Las desconexiones no pagas también? Solo una nota al margen, esos son bastante fáciles de pronosticar, ya que llegar tarde en la factura generalmente es un regalo muerto, no es que alguien necesite un modelo como ese. ¿Quieres registros de los que se mudaron? ¿No? Bueno, sabemos con certeza que algunos clientes dicen que mueven Montana solo para evitar el prolongado proceso de desconexión. Y, por supuesto, está el famoso “¡Me estoy mudando! ¡Me estoy mudando al satélite!” (como se escuchó en las llamadas).

Ahora, ¿qué tipo de clientes quieres incluir? Todos los clientes? ¿Escuelas? Hospitales? ¿Cuartos de bomberos también? ¿No? ¿Qué pasa con los complejos de apartamentos que obtienen una suscripción masiva, pero los clientes pueden comprar servicios adicionales? Obviamente, debe especificar el período de tiempo en el que desea ver las desconexiones.

Mientras estamos en este asunto del tiempo, ¿se da cuenta de que todas las características que espera incluir en el modelo deberán estar bloqueadas con la fecha y deben estar diseñadas en relación con el momento de la desconexión ? ¿Quieres ingresos de las personas que se desconectaron? No hay problema, siempre y cuando incluya el ingreso en la fecha de la desconexión , que es diferente para cada sub en su archivo. No, no puedes simplemente poner cuál es el ingreso ahora, ya que adivina qué, la gente se muda. ¿Desea los tipos de servicios que tenía el cliente? Será mejor que obtenga su último estado … hablando de eso, ¿sabía que existe una ley que hace que nuestra empresa brinde servicio de emergencia al 911 incluso en clientes desconectados por un tiempo? ¿Sabes lo que eso hace a tus datos? Primero, crea una fecha de desconexión incorrecta porque vas a recoger el último día que el último servicio estuvo activo. En segundo lugar, va a tener una gran cantidad de clientes de telefonía básica que se desconectarán. De hecho, su modelo probablemente va a predecir que cuando un cliente abandona todos los servicios, excepto el teléfono básico, es un predictor muy fuerte de una desconexión. Una vez más, ese tipo de modelo te hará reír fuera de la casa.

En este punto, tiene que confiar en mí que las partes de datos más difíciles ni siquiera se mencionan en mi descripción. ¡Es solo el olor del mundo real para ti, chico!

Si bien la opinión está dividida sobre esto, algunos tipos de aprendizaje automático dicen “Solo dame los bits, te daré la respuesta”, los científicos de datos más sofisticados entienden que el proceso de limpieza de datos es cómo uno llega a entender los datos. No puedo enfatizar esto lo suficiente.

Por lo tanto, la limpieza de datos tiene, en mi opinión, un papel cognitivo profundo. Por ejemplo, una cosa que uno aprende al mirar cada característica que quiere ser, una característica a la vez, es la distribución de valores. Puede ser importante saber si la mayoría de los datos están apagados en una esquina de N-Space, o si están dispersos en una niebla muy dispersa.

Además, uno puede aprender rápidamente si la mayor parte de la información está contenida en un puñado de características, o si, de hecho, se extiende por todas partes. Es la última instancia donde comienza el aprendizaje automático sofisticado.

Independientemente, la limpieza puede producir el 90% de la utilidad, y las diferencias entre los diferentes métodos de modelado pueden ser pequeñas en comparación.

Después de la limpieza, el desafío es comprender si la respuesta resultante es sólida.

Finalmente, un ajuste excesivo del modelo puede hacer que uno pierda el rastro de las necesidades cambiantes del negocio, el objetivo del proyecto. Una virtud adicional de los datos “limpios” es que es más fácil mostrarlos en algún tipo de tablero, y este tablero puede evolucionar junto con los pasos de modelado. Llegué a comprender que los paneles no son interfaces para tontos, sino que son una disciplina que se aplica en casi cualquier proyecto: el panel ayuda a asegurarse de que uno esté conectado con el usuario y la necesidad de que el procesamiento de datos esté destinado a cumplir.

Si tiene la oportunidad, vea a un científico de datos experimentado hacer la limpieza de datos; Predigo que verás de lo que estoy hablando.

Se pueden reutilizar técnicas y algoritmos.

Sin embargo, cada conjunto de datos es diferente y la limpieza debe personalizarse.

Como resultado, el tiempo relativo dedicado a la limpieza de algoritmos vis-a-vis tiende a aumentar.