Los investigadores del MIT esperan avanzar en la democratización de la ciencia de datos con una nueva herramienta para no programadores que genera automáticamente modelos para analizar datos sin procesar. Crédito:Christine Daniloff, MIT
Los investigadores del MIT esperan avanzar en la democratización de la ciencia de datos con una nueva herramienta para no estadísticos que genera automáticamente modelos para analizar datos sin procesar.
Democratizar la ciencia de datos es la noción de que cualquiera, con poca o ninguna experiencia, puede hacer ciencia de datos si se le proporcionan datos amplios y herramientas de análisis fáciles de usar. Apoyando esa idea, la nueva herramienta ingiere conjuntos de datos y genera modelos estadísticos sofisticados que los expertos suelen utilizar para analizar, interpretar, y predecir patrones subyacentes en los datos.
La herramienta actualmente se encuentra en Jupyter Notebook, un marco web de código abierto que permite a los usuarios ejecutar programas de forma interactiva en sus navegadores. Los usuarios solo necesitan escribir unas pocas líneas de código para descubrir información sobre por ejemplo, tendencias financieras, viaje aéreo, patrones de votación, la propagación de enfermedades, y otras tendencias.
En un documento presentado en el Simposio ACM SIGPLAN de esta semana sobre los principios de los lenguajes de programación, los investigadores muestran que su herramienta puede extraer patrones con precisión y hacer predicciones a partir de conjuntos de datos del mundo real, e incluso superar a los modelos construidos manualmente en determinadas tareas de análisis de datos.
"El objetivo de alto nivel es hacer que la ciencia de datos sea accesible para personas que no son expertas en estadística, "dice el primer autor Feras Saad '15, MEng '16, un doctorado estudiante del Departamento de Ingeniería Eléctrica e Informática (EECS). "La gente tiene una gran cantidad de conjuntos de datos disponibles, y nuestro objetivo es crear sistemas que permitan a las personas obtener automáticamente modelos que puedan usar para hacer preguntas sobre esos datos ".
Por último, la herramienta soluciona un cuello de botella en el campo de la ciencia de datos, dice el coautor Vikash Mansinghka '05, MEng '09, Doctor. '09, investigador del Departamento de Ciencias Cerebrales y Cognitivas (BCS) que dirige el Proyecto de Computación Probabilística. "Existe una escasez ampliamente reconocida de personas que entienden cómo modelar bien los datos, ", dice." Este es un problema en los gobiernos, el sector sin fines de lucro, y lugares donde la gente no puede permitirse el uso de científicos de datos ".
Los otros coautores del artículo son Marco Cusumano-Towner, un Ph.D. de EECS estudiante; Ulrich Schaechtle, un postdoctorado BCS con el Proyecto de Computación Probabilística; y Martin Rinard, profesor e investigador del EECS en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial.
Modelado bayesiano
El trabajo utiliza modelado bayesiano, un método estadístico que actualiza continuamente la probabilidad de una variable a medida que se dispone de más información sobre esa variable. Por ejemplo, El estadístico y escritor Nate Silver utiliza modelos basados en bayesianos para su popular sitio web FiveThirtyEight. Antes de las elecciones presidenciales, los modelos del sitio hacen una predicción inicial de que uno de los candidatos ganará, basado en varias encuestas y otros datos económicos y demográficos. Esta predicción es la variable. El día de las elecciones, el modelo usa esa información, y sopesa los votos entrantes y otros datos, para actualizar continuamente esa probabilidad de que un candidato tenga potencial de ganar.
Más generalmente, Los modelos bayesianos se pueden utilizar para "pronosticar" (predecir un valor desconocido en el conjunto de datos) y descubrir patrones en los datos y relaciones entre variables. En su trabajo, los investigadores se centraron en dos tipos de conjuntos de datos:series de tiempo, una secuencia de puntos de datos en orden cronológico; y datos tabulares, donde cada fila representa una entidad de interés y cada columna representa un atributo.
Los conjuntos de datos de series de tiempo se pueden utilizar para predecir, decir, tráfico aéreo en los próximos meses o años. Un modelo probabilístico procesa puntajes de datos de tráfico históricos y produce un gráfico de series de tiempo con patrones de tráfico futuros trazados a lo largo de la línea. El modelo también puede descubrir fluctuaciones periódicas correlacionadas con otras variables, como la época del año.
Por otra parte, un conjunto de datos tabulares utilizado para, decir, investigación sociológica, puede contener de cientos a millones de filas, cada uno representa a una persona individual, con variables que caracterizan la ocupación, salario, Localización de la casa, y respuestas a las preguntas de la encuesta. Los modelos probabilísticos se pueden utilizar para completar las variables faltantes, como predecir el salario de alguien en función de la ocupación y la ubicación, o para identificar variables que se informan entre sí, como encontrar que la edad y la ocupación de una persona predicen su salario.
Los estadísticos ven el modelado bayesiano como un estándar de oro para construir modelos a partir de datos. Pero el modelado bayesiano es notoriamente lento y desafiante. Los estadísticos primero hacen una suposición fundamentada sobre la estructura y los parámetros necesarios del modelo, confiando en su conocimiento general del problema y los datos. Usando un entorno de programación estadística, como R, un estadístico luego construye modelos, se ajusta a los parámetros, comprueba los resultados, y repite el proceso hasta que logran una compensación de rendimiento adecuada que sopesa la complejidad y la calidad del modelo.
La herramienta de los investigadores automatiza una parte clave de este proceso. "Le estamos dando a un sistema de software un trabajo que le gustaría que hiciera un estadístico o un científico de datos, ", Dice Mansinghka." El software puede responder preguntas automáticamente a partir de los datos (pronosticar predicciones o decirle cuál es la estructura) y puede hacerlo de manera rigurosa, informar medidas cuantitativas de incertidumbre. Este nivel de automatización y rigor es importante si estamos tratando de hacer que la ciencia de datos sea más accesible ".
Síntesis bayesiana
Con el nuevo enfoque, los usuarios escriben una línea de código que detalla la ubicación de los datos sin procesar. La herramienta carga esos datos y crea múltiples programas probabilísticos, cada uno de los cuales representa un modelo bayesiano de los datos. Todos estos modelos generados automáticamente están escritos en lenguajes de programación probabilísticos específicos de dominio (lenguajes de codificación desarrollados para aplicaciones específicas) que están optimizados para representar modelos bayesianos para un tipo específico de datos.
La herramienta funciona utilizando una versión modificada de una técnica llamada "síntesis de programas, "que crea automáticamente programas de computadora con datos y un lenguaje con el que trabajar. La técnica es básicamente programación de computadoras a la inversa:dado un conjunto de ejemplos de entrada y salida, la síntesis del programa se abre camino hacia atrás, llenando los espacios en blanco para construir un algoritmo que produzca las salidas de ejemplo basadas en las entradas de ejemplo.
El enfoque es diferente de la síntesis de programas ordinarios en dos formas. Primero, la herramienta sintetiza programas probabilísticos que representan modelos bayesianos para datos, mientras que los métodos tradicionales producen programas que no modelan datos en absoluto. Segundo, la herramienta sintetiza múltiples programas simultáneamente, mientras que los métodos tradicionales producen solo uno a la vez. Los usuarios pueden elegir qué modelos se adaptan mejor a su aplicación.
"Cuando el sistema crea un modelo, escupe un fragmento de código escrito en uno de estos lenguajes de programación probabilísticos específicos del dominio ... que la gente puede entender e interpretar, "Mansinghka dice". Por ejemplo, los usuarios pueden comprobar si un conjunto de datos de series de tiempo, como el volumen de tráfico de una aerolínea, tiene variaciones estacionales con solo leer el código, a diferencia de los métodos de estadísticas y aprendizaje automático de caja negra, donde los usuarios tienen que confiar en las predicciones de un modelo pero no pueden leerlo para comprender su estructura ".
La programación probabilística es un campo emergente en la intersección de los lenguajes de programación, inteligencia artificial, y estadísticas. Este año, El MIT acogió la primera Conferencia Internacional sobre Programación Probabilística, que tuvo más de 200 asistentes, incluidos los principales actores de la industria en programación probabilística como Microsoft, Uber y Google.