sábado, 27 de mayo de 2017

Big Data Science

En la anterior entrada mencioné que los Data Scientist tienen que lidiar con datos de baja calidad frecuentemente, a menudo trabajan con Big Data y tienen que convencer a los directivos de utilizar algoritmos que no estén basados únicamente en el valor promedio. En esta entrada aclararé algunos puntos acerca de Big Data.

Big Data se trata de gestionar grandes volúmenes de información de manera adecuada. Implica nueva infraestructura, nuevas bases de datos y nuevo software adecuado al tema. Nuevo respecto al paradigma vigente hasta finales de la primera década del siglo XXI. Para algunos, Big Data es añadir información de bases de datos externas, por ejemplo, open data, a la información que actualmente tienen acerca de los clientes, pero el concepto debe ir enfocado a recabar mayor cantidad de información acerca de los clientes y/o ciudadanos, por tanto, debe estar asociado a inteligencia de negocios (BI) y en buena medida a Ciencia de Datos (Data Scientist).

Mayor información significa recuperar información de los Social Media, incluyendo mensajes de voz y de video. Para ciertas compañías es recuperar información del Internet de las cosas (IoT). De otra manera es solo BI, no Big Data. En este sentido, Big Data no hace referencia al tamaño de las bases de datos, sino a la cantidad de información no estructurada que se debe manejar, o estructurada, pero en tiempo real y de miles de puntos simultáneamente.

¿Infraestructuras? Las comunes son AWS, Azure o Google Cloud.

¿Bases de datos? Se orientan hacia las bases de datos No SQL.

Pero los ejemplos son los que ilustran mejor el concepto:
  • La información de todos los sensores de los aviones Airbus se colecta en tiempo real y se pronostica la necesidad de realizarle mantenimiento a los aviones.
  • El Centro de Alertas Tempranas de una gran urbe toma la información de predicción del clima y los datos del tráfico en tiempo real y predice el tipo de acciones preventivas que deben tomar los diferentes cuerpos del gobierno municipal para evitar la reducción en la movilidad y/o eventos riesgosos.
  • Los departamentos de Recursos Humanos y las empresas de colecta de talentos utilizan sistemas automáticos que procesan los correos que remiten hojas de vida y mediante sistemas inteligentes buscan en los curriculum vita anexados palabras claves que filtre el ingente número de solicitudes con el objeto de entregar al personal de selección sólo las hojas de vida prometedoras. Las palabras claves se han seleccionado previamente mediante modelos de Machine Learning de clasificación supervisada.
  • Un proveedor de fotografías para compañías de publicidad recibe miles de fotografías de centenares de fotógrafos profesionales para añadirlas a su catálogo. Modelos de Machine Learning seleccionan las imágenes que tienen salida en el mercado mediante modelos de clasificación no supervisados.
  • Un peaje urbano monitorea mediante cámaras los automóviles que sobrepasan el límite de las zonas geográficas que obligan al pago del peaje mediante débito automático. Modelos de reconocimiento de imágenes establecen el número de matrícula y gestionan el débito correspondiente.
  • Un sistema de seguridad de un gran aeropuerto internacional tiene un sistema de vigilancia automático por medio de video. Constantemente compara la imagen filmada con una imagen de las salas vacías y las compara. Detecta en qué momento un objeto nuevo permanece durante algún tiempo en un mismo lugar y avisa a la policía anti explosivos para que revise el evento.
  • Un cliente de una cadena de grandes superficies pasa por la caja para pagar los productos comprados. Antes de imprimir la tirilla de la factura, el sistema compara los hábitos de compra del cliente con las ofertas disponibles y junto a la factura le entrega una lista de probables compras que puede necesitar y lo incentiva mediante descuentos para que visite pronto, de nuevo, el almacén.
En todos los casos, se maneja Big Data con modelos predictivos o de clasificación: el concepto correcto es Big Data Science.

lunes, 1 de mayo de 2017

¿Qué es un Data scientist?

Lo primero que sugieren algunos es explicar las diferencias con otros perfiles semejantes:[1]

  • Un Data analyst es alguien que utiliza la mayor parte de su tiempo realizando preguntas a las bases de datos. Algunos lo consideran un nivel junior del Data scientist. Puede tener mucha o poca experiencia relacionada con análisis estadísticos o algoritmos. Son ideales para contestar preguntas puntuales a partir de bases de datos tipo SQL o Excel. Cuando se les solicita, pueden tambien producir visualizaciones básicas con herramientas orientadas a tal efecto como por ejemplo Tableau o Qlik View. Si ya tiene bases de datos constituidas y necesita conocer la respuesta a ciertos temas, es el perfil ideal. Es probable que se estén tomando cursos de actualización en relación a las nuevas bases de datos no SQL como MongoDB o Cassandra.

  • Un Data engineer o arquitecto de datos está menos orientado a componer queries, y más orientado a construir sistemas que puedan proveer respuestas. A diferencia de los Data analysts, los Data engineers trabajan frecuentemente junto con desarrolladores de software, asegurándose de que los datos son capturados de manera correcta y almacenados en el lugar correcto. También se aseguran de que los procesos que deben correr a ciertas horas, así lo realicen. Es probable que se estén capacitando en temas de plataformas de Big data tales como Hadoop y Spark, así como en lenguajes de programación orientados a la productividad tales como Java y Python.

  • Un Data scientist supervisa proyectos de datos en donde no necesariamente toda la información esta lista y estructurada. Adicionalmente a tener habilidades técnicas deben comunicar sus hallazgos de manera efectiva a los demás miembros de la organización, muchas veces mediante la técnica del Data story telling, también debe tener la habilidad de coordinar un equipo de profesionales. Y debe ser capaz de realizar preguntas, al igual que un Data analyst, pero realizando análisis mucho más sofisticados mediante técnicas estadísticas o de modelamiento predictivo, dependiendo de la tarea a realizar, con herramientas libres como R, Python o Scala, o herramientas propietarias muy especializadas como SAS o MathLab, entre muchas otras.

Hablar de técnicas estadísticas o de modelamiento predictivo hace que algunos pregunten si un actuario es una especie de Data scientist. Lo cierto es que los actuarios trabajan con tipos de datos muy propios del sector asegurador. Eso significa que no utilizan parte de su tiempo recolectando información y depurándola. Y los actuarios trabajan con temas legales.

Los Data scientist tienen que lidiar frecuentemente con datos de baja calidad, a menudo trabajan con Big data y tienen que convencer a los directivos de utilizar algoritmos que no estén basados únicamente en el valor promedio.

Los actuarios deben poder entender y explicar el proceso de sus matemáticas financieras. Tienden a trabajar con temas regulados por el sistema financiero y no necesariamente con temas predictivos. Dos temas muy específicos, que no tienen nada en común con un Data scientist, son cómo se le asigna el precio al producto y la metodología de las reservas actuariales.

Un Data scientist puede recolectar y entender la frecuencia y severidad de las reclamaciones, pero usualmente no tiene que conocer otros temas tales como la distribución de los costos, la evolución de las tasas de interes, el costo del capital o el margen de solvencia.

Ya se mencionó que se asocian al Data scientist las técnicas del modelamiento predictivo, las cuales también se conocen como Learning Machines.[2]

Las Learning Machines tienen una amplia gama de aplicaciones, incluyendo motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica.

Se trata de una rama de la inteligencia artificial que hace uso de un proceso de inducción del conocimiento al tratar de crear programas capaces de generalizar comportamientos a partir de una información recolectada, suministrada al modelo. Puede ser aprendizaje supervisado o no supervisado.

El aprendizaje supervisado se caracteriza por contar con información que especifica qué conjuntos de datos son satisfactorios para el objetivo del aprendizaje. Un ejemplo podría ser un software que reconoce si una imagen dada es o no la imagen de un rostro: para el aprendizaje del programa tendríamos que proporcionarle diferentes imágenes, especificandole al algoritmo si se trata o no de rostros. Otro ejemplo es proporcionar todo un conjunto de transacciones asocidas al uso de la tarjeta de crédito por parte de cada cliente, especificando en qué transacciones se sabe que hubo fraude. La máquina modela qué comportamientos de uso son sospechosos de fraude. En el aprendizaje no supervisado el algoritmo no cuenta con datos que definan qué información es satisfactoria. El objetivo principal de estos programas suele ser encontrar patrones que permitan clasificar los datos en diferentes grupos, en función de sus atributos. En relación a las imágenes, una máquina de aprendizaje no supervisado no sería capaz de decirnos si una imagen dada es un rostro o no pero sí podría, por ejemplo, clasificar las imágenes según patrones que finalmente podrían ser interpretados como grupos en los que unos contienen animales, otros objetos y otros paisajes, e ir subclasificando sucesivamente.

El diagrama más difundido acerca de los Data scientist es aquel en donde lo ubican más allá de la Machine Learning y lo colocan como la intersección entre un estadístico, un experto en una o más materias y un técnico en computación con habilidades de sacar partido de los programas más allá de aquello para lo cual fueron creados (el hacker).

Es una posición muy atrayente por lo interesante de los proyectos y por lo bien paga, por ello hoy en día muchos estadísticos e ingenieros de computación se presentan como Data scientist. Tal vez tienen bases, pero no todas las necesarias.

-------------------------------------------------------------

[1] Basado en https://www.upwork.com/hiring/for-clients/how-much-hire-data-scientist/, al 7 de marzo de 2017.

[2] La explicación se basa fundamentalmente de la entrada “apendizaje automático” de Wikipedia.