Machine Learning y algunas buenas prácticas

En el WIC se desarrollan proyectos multidisciplinarios que suelen encontrarse con un punto en común: El uso de Machine Learning para la detección de ciertos fenómenos asociados a un problema que puede ser representado a través de un conjunto de datos.

Pero, ¿qué es Machine Learning? En palabras simples, es el uso de algoritmos computacionales para que una máquina aprenda a hacer cosas. Podría existir interés en aprender a completar una tarea, realizar predicciones etc. Este aprendizaje siempre se realiza a partir de observaciones o datos asociados al fenómeno que se pretende aprender, como ejemplos, experiencia directa, instrucciones, entre otros. Entonces la premisa general es aprender a hacer mejor las cosas en el futuro, en función de la experiencia del pasado.

Entonces, ¿cómo se desarrolla un proyecto de Machine Learning? Géron (2017) propone 8 pasos principales para llevar a cabo el proyecto:

1.- Mirar la imagen completa

Es importante identificar el contexto del problema. ¿Por qué llevar a cabo este proyecto es beneficioso para la organización? ¿Cuál es el objetivo de negocio? ¿Qué existe actualmente? ¿Cuáles soluciones alternativas tenemos? ¿Cómo mediré el desempeño de mi modelo? Estas preguntas son relevantes a la hora de definir el problema y sus alcances. Una vez que eso está claro, es posible diseñar el sistema que construiremos: ¿Qué tipo de tarea debo diseñar? ¿Una clasificación o regresión? ¿Se utilizará aprendizaje supervisado o no supervisado?

2.- Obtener los datos

Una vez que se determina el problema y el sistema, es hora de mirar los datos y estudiar su estructura. Estadísticas básicas como cantidad de datos, media, desviación estándar, entre otros. También selección de muestras (aleatorias o estratificadas según corresponda) para generar un set de datos de prueba y un set de entrenamiento. El set de entrenamiento es lo que permitirá enseñar al modelo aquellos patrones que desea identificar, mientras que el set de prueba es el conjunto de datos que permitirá probar el rendimiento del modelo.

3.- Descubrir y visualizar los datos para obtener información

Similar al paso anterior, pero la idea es un análisis más profundo a partir de visualizar los datos gráficamente, observar correlaciones entre los atributos existentes, etc.

4.- Preparar los datos para los algoritmos de Machine Learning

Antes de aplicar algoritmos de Machine Learning sobre los datos, es necesario pre-procesarlos/transformarlos a través de distintas técnicas para que los algoritmos tengan un buen desempeño. Entre estas transformaciones se puede destacar el escalar a través de normalización o estandarización (los atributos numéricos podrían tener escalas diferentes y esto puede impactar negativamente el desempeño de los algoritmos).

En vez de realizar este paso manualmente de forma constante, el autor recomienda escribir funciones para hacerlo, lo cual conlleva varios beneficios: Permitiría reproducir el pre-procesamiento de forma fácil en cualquier conjunto de datos, se podrían utilizar en un sistema que transforme los datos en el momento mientras opera (por ejemplo, si se estuviese trabajando con datos transaccionales) y hará que probar distintas combinaciones de transformaciones/pre-procesamientos sea sencillo de realizar.

5.- Seleccionar un modelo y entrenarlo

Ahora es el momento de seleccionar un modelo de Machine Learning y entregarle datos de entrenamiento para que pueda “aprender” a identificar lo que queremos. ¿Cuál es el algoritmo de Machine Learning que debo utilizar? La respuesta es: Depende. Primero, considerar si se pretende trabajar con un algoritmo de aprendizaje supervisado (es decir, que aprende en base a ejemplos previamente etiquetados) o si es un aprendizaje no supervisado (es decir, el algoritmo se encarga de organizar los datos y darles una estructura ya que esta no es conocida previamente). Otras consideraciones se asocian a la precisión deseada (podría preferir métodos menos precisos para evitar que el modelo se sobreajuste a los datos), el tiempo de entrenamiento, linealidad (por ejemplo en algoritmos de regresión logística o SVM donde se asume que las clases a identificar podrían estar separadas mediante una línea recta o su análogo en mayores dimensiones), cantidad de atributos, entre otros.

6.- Ajustar el modelo

Asumiendo que en el paso previo se realizaron pruebas con distintos algoritmos de forma tal que ahora se cuenta con una breve lista de algoritmos prometedores, es hora de ajustarlos de forma detallada. Los algoritmos de Machine Learning en general podrían recibir una gran cantidad de parámetros, los cuales deben ser ajustados y distintas combinaciones de valores para estos podrían dar resultados diferentes en función de los datos. Entonces, la idea es probar con distintos valores para encontrar la configuración más adecuada. Sin embargo, esto podría ser tedioso de realizar de forma manual. En general, paquetes de análisis estadístico y Machine Learning como Scikit-Learn en Python disponen de herramientas que permiten realizar automáticamente esta búsqueda de parámetros.

7.- Presentar la solución

Antes de iniciar todo, es importante “presentar” esta solución, lo que involucra destacar lo aprendido, documentar aquellos elementos que funcionaron y que no funcionaron, dejar claros los supuestos hechos sobre el modelo y las limitaciones que éste tiene. Esto permitirá que sea validado por quienes deben aprobar su lanzamiento a producción.

8.- Iniciar, supervisar y mantener el sistema

Finalmente, luego de validar correctamente el modelo es hora de llevar la solución a un entorno de producción, estando preparado para recibir datos reales y poder operar en ese contexto. Es importante que exista código de monitoreo para supervisar el desempeño del sistema implementado y poder lanzar alertas en caso de que algo no funcione bien.

SONAMA en la WI’17 Leipzig

Desde el 23 hasta el 26 de Agosto tomará lugar la IEEE/WIC/ACM International Conference en Web Intelligence en Leipzig, Alemania. La serie de conferencias y el área de Web Intelligence (WI) tienen como objetivo lograr un balance entre los avances de la investigación en teorías y la metodología usualmente asociada con Collective Intelligence, Data Science, HumanCentric Computing, Knowledge Management, and Network Science. También están comprometidas en abordar investigación que profundice el entendimiento los fundamentos computacionales, lógicos, cognitivos, físicos, y sociales de la Web futura, y habilitar el desarrollo y aplicación de tecnologías basadas en Web Intelligence.

La investigación asociada al proyecto SONAMA, mediante su representante el profesor Juan Velásquez, formará parte del conjunto de documentos de investigación originales de alta calidad y aplicaciones del mundo real en todas las área teóricas y tecnológicas que conforman el campo de WI. El trabajo realizado calza perfectamente en dicho marco, pues utiliza datos de contenido de la Web (Twitter) y los procesa para generar información que apoya la toma de decisiones con respecto a la política nacional de drogas y alcohol en Chile. Dicha investigación no sólo será expuesta oralmente, si no que también formará parte de los artículos incluidos en los procedimientos publicados por la ACM Press.

 

 

Te invitamos a conocer nuestros temas de memoria

El próximo miércoles 09 de agosto a las 12:00 realizaremos nuestra presentación semestral con los proyectos en los que estamos trabajando, y los temas de memoria que tendremos disponibles para este semestre. La presentación se realizará en la sala , ubicada en el tercer piso del edificio de Ingeniería Industrial, en Beaucheff 851, Santiago. La invitación se extiende también para aquellas personas que quieran realizar su práctica o trabajo dirigido con nosotros.

 

Para conocer más información con respecto a los temas que tenemos para ofrecerte, te invitamos a visitar el siguiente link. Si hay alguno que te interese, puedes consultar o postular enviando un correo con tu CV y un breve extracto de por qué te gustaría trabajar en él a postulaciones@wic.uchile.cl.

 

¡Te esperamos!

Epidemiología y Data Science

La epidemiología es un área que estudia la ocurrencia y distribución de eventos, estados y procesos asociados a la salud en poblaciones específicas. El estudio se centra en la identificación de factores determinantes que influencian estos eventos o procesos, los que pueden ser factores biológicos, geofísicos, sociales, culturales, etc. y también en la aplicación de este conocimiento para controlar problemas de salud relevantes. Por esta razón, en Epidemiología es muy importante el concepto de causalidad, el cual corresponde a la relación entre las causas y los efectos que éstas producen. La mayor parte de la investigación epidemiológica se refiere a formas de causalidad.

Aquellos factores determinantes que son relacionados causalmente en el cambio de riesgo de un proceso o condición de salud relevante, se les llama factores de riesgo. En la actualidad, algunos autores hacen referencia a dificultades en el descubrimiento de factores de riesgo. Esto debido a que a medida que el área avanza, los factores de riesgo son más elaborados y abstractos. Como en general, estos factores se caracterizan a través de estudios con grupos de prueba (afectados por ciertas condiciones) y control (no afectados), pero estos son difíciles de llevar a cabo debido a el largo tiempo que podría pasar para que un factor de riesgo en realidad genere una enfermedad, el hecho de que se requiere una muestra bastante grande de personas para poder considerar todos los factores pertinentes y el hecho de que no sería ético permitir que una población consuma alguna sustancia o siga algún estilo de vida que podría ser perjudicial para su salud. Para compensar esto, se comparan los grupos de prueba y control para comprobar eventuales diferencias que existan en los ambientes que les rodean, sus estilos de vida, etc. pero autores como Taubes en 1995 plantean que las conexiones causales que se podrían descubrir, son demasiado complejas e interactúan de forma no lineal. Existen diversos factores de confusión, sesgos en la selección de los grupos de prueba y control, falta de información precisa que la gente no recuerda y por lo mismo, no puede proporcionar (ej. hábitos alimenticios, ejercicio en vida cotidiana).

Ante este escenario, surgen oportunidades de la mano de las nuevas tecnologías de Data Science, como el Data Mining (herramientas para la extracción de información y generación de conocimiento a partir de un conjunto de datos) y Big Data (un entorno preparado para un manejo viable de cantidades masivas de información). Flahault et al 2016 (Public Health and Epidemiology Informatics) menciona algunas de estas oportunidades, pensando en la Epidemiología y su aplicación en salud pública, apoyándose en el escenario actual de E.E.U.U. donde la mayoría de los hospitales públicos utilizan registros médicos electrónicos, facilitando el uso de esta información por parte de estas herramientas. Por ejemplo, un caso del 2012 en el que oficiales de salud pública notaron un incremento en reportes de laboratorio en los que se indicaban casos de infecciones asociadas a Escherichia Coli y ante esto, en menos de una semana reunieron suficiente evidencia como para generar una alerta pública respecto a la infección, vinculadas a los brotes de trébol de una cadena de comida rápida. La cadena actuó, eliminó los brotes y el peligro fue eliminado. O el caso de Google Flu Trends, donde se estimaba la prevalencia de los brotes de gripe en función de las búsquedas relacionadas a gripe y asociados, donde en algunos casos se sobreestimó los niveles de prevalencia de gripe, pero en otros (por ej. casos de Influenza) las predicciones fueron más precisas.

En conclusión, existen formas mejores de manejar datos masivamente en la actualidad, y para la Epidemiología esto se transforma en montones de oportunidades interesantes. Bajo esta idea, el proyecto Koreisha pretende descubrir relaciones causales interesantes en una población seleccionada de adultos mayores, apoyados en estas herramientas e información recolectada. Se espera tener resultados preliminares a fines de este año.

WIC en la comunidad de Machine Learning

Machine Learning, o Aprendizaje de Máquina, va captando cada vez más adeptos en todo el mundo. Ya sea por que nos ha llevado a soluciones tecnológicas impresionantes o porque es la puerta a la Inteligencia Artificial tan difundida en el cine, lo cierto es que esta rama de estudio es esencial para los científicos de datos, la profesión más sexy de este siglo, según la Harvard Business Review. Como Facultad de Ciencias Físicas y Matemáticas de la Universidad de Chile nos hemos hecho parte de esta ola desde la teoría y la práctica, y rasgando los velos que separan los departamentos de esta institución se creó la Comunidad de Machine Learning el 2006, con destacada participación de alumnos y profesores de eléctrica, matemática y computación, pero sin cerrarle la puerta a industriales, mecánicos, astrónomos y todo el que quisiera sumarse a recibir y compartir el conocimiento y la experiencia que se obtienen al navegar en estas aguas.

El Web Intelligence Centre también acudió al llamado de esta iniciativa, y el lunes 15 de mayo de este año hizo su primera charla: “Una herramienta de análisis de Twitter”, presentando uno de sus emblemáticos proyectos, “OpinionZoom”. En ella se interactuó con los asistentes para reflexionar juntos distintos enfoques para responder a las búsquedas de información a partir de los datos de Twitter. Desde los JSON que entregan las API de la red social, se fueron mostrando durante la charla algoritmos y formas de descubrir sexo, edad, intereses e influencia de un usuario, y también la polaridad de sus tweets. También se expuso el trabajo de identificar si un tweet es reclamo o no para la industria de telecomunicaciones, junto con su clasificación automática en categorías predefinidas como internet, teléfono, televisión, facturas, página web, entre otras.

Agradecemos la audaz participación de la selecta audiencia. También le agradecemos la invitación a los organizadores, por confiar en nosotros y permitirnos enseñar nuestro trabajo de años. Esperamos seguir aprendiendo y colaborando con la comunidad de Machine Learning para ayudar a otros en este fructífero y desafiante camino que lleva a toda la humanidad a una vida mejor.

Prepárate para el DOCODE 3.0

Luego de meses de trabajo nos enorgullecemos en presentar la tercera versión del mejor detector de plagio de Chile, DOCODE 3.0. En esta versión, se encontrarán con una aplicación rediseñada por completo, con foco en la experiencia de usuario y mejorada en cuanto a sus algoritmos de detección de plagio y funcionamiento general. Utilizando nuestro servicio mejorado podrás:

  • Contrastar tus documentos contra todo lo que esté indexado por Google.
  • Crear un repositorio personal de archivos para poder contrastar algún documento contra ellos.
  • Revisar las fuentes de plagio de tus documentos, a través de un informe de plagio intuitivo.
  • Obtener un índice de plagio, el cual servirá para apoyar la toma de decisiones con respecto a la originalidad de los documentos.
  • Asegurarte de que tu contenido generado respete la autoría de las otras personas

Si aún no nos conoces, te invitamos a visitar nuestro sitio web. Si aún no has probado el servicio, entonces te invitamos a hacerlo de manera gratis en este enlace.

 

El nuevo DOCODE se encontrará disponible a partir de la próxima semana. Cualquier consulta que puedas tener, comunícate a contacto@docode.cl.

 

¡Te esperamos!

 

¡DOCODE estrena nuevo servicio!

Durante los últimos meses se ha prototipado y finalizado un nuevo servicio para el software de detección DOCODE, el cual amplía sus posibilidades. Ahora, el contraste de los documentos para encontrar su nivel de plagio no sólo se realizará contra la webLeer más