python

Recursos de programación de python
Ponente: Antonio Manjavacas y Alejandro Campoy Título: Introducción al aprendizaje por refuerzo en Python Aula: Teoría 6 (Sábado) ------------------------------------- Resumen: El aprendizaje por refuerzo es un método de aprendizaje computacional centrado en la interacción de un agente con su entorno. Se trata de un proceso de aprendizaje iterativo, basado en prueba y error, donde el agente recibe recompensas positivas si sus acciones le conducen a estados deseables. Esta rama de la inteligencia artificial, ampliamente ligada a la psicología conductista, ha permitido alcanzar hitos hasta hace poco impensables, como vencer al campeón mundial de Go o StarCraft, dirigir vehículos autónomos, reducir el consumo energético de edificios, o resolver el problema del plegamiento de proteínas: un reto de la biología desde hace más de 50 años. El objetivo de esta charla será ofrecer una introducción práctica al aprendizaje por refuerzo en Python, presentando dos de las librerías más utilizadas en este campo: OpenAI Gym, destinado a la simulación en entornos de aprendizaje, y Stable Baselines, que incluye implementaciones de los algoritmos de aprendizaje por refuerzo que constituyen el estado del arte. Finalmente, estudiaremos una aplicación real del aprendizaje por refuerzo en control energético de edificios, ámbito en el que se enmarca nuestra investigación y últimos trabajos.
Ponente: Pamela Alejandra Bustamante Faúndez Título: Optimización Matemática con Python Aula: Teoría 7 (Domingo) -------------------------------------- Resumen: La optimización matemática es la selección de la mejor alternativa con respecto a algún criterio, entre un conjunto de opciones candidatas. Existen múltiples aplicaciones de optimización matemática. Por ejemplo, en optimización de carteras de inversión se busca la mejor manera de invertir un capital, dadas diferentes alternativas. En este caso, un problema de optimización nos permitirá elegir una cartera que minimice el riesgo (o maximice la ganancia), entre todas las asignaciones posibles que cumplan con los requisitos definidos. En la mayoría de los casos, la optimización matemática se utiliza como herramienta para facilitar la toma de decisiones. En ocasiones, estas decisiones pueden ser tomadas automáticamente en tiempo real. En esta charla se explorará cómo formular y solucionar problemas de optimización matemática con Python, utilizando diferentes librerías de optimización.
Ponente: Cheuk Ting Ho Títutlo: Came for the Conference, Stayed for the Sprint Aula: Teoría 7 (Sábado) ----------------------------------------- Resumen: Many Python conferences have "sprints" included in their conference schedule. In this talk, we will explain what is it for the newcomers, why is it important to the open-source community, and as an organizer and maintainer how can you help this "sprints" movement. We all know the famous quote in the Python community "I came for the language, but I stayed for the community" by Brett Cannon. But I would like to borrow it and say "I came for the conference, but I stayed for the sprint". As one of the organizers of Mentored Sprint, maintainer of an open-source project and long term sprint participant, I would like to explain to the people who are new to the community, what is a "sprint"? Also, I would like to discuss the goal of sprints from different points of view. First of all, I would like to introduce the concept of sprints. In software development, we have sprints to achieve some goals, whether it's fixing a bug or adding a new feature. But what about an open-source sprint? Are we going to achieve "something" in the sprint? What is this "something"? Then I would like to talk about what is the "benefit" of participating in a sprint as a maintainer? Will you get useful help in the sprint? Is it worth the time? What is the expectation of bringing your project into the sprint? In the end, I would like to add my opinion on why sprints, especially mentored sprint is so important to the open-source community and makes the community that we all would like to "stay for".
Ponente: Ángel Luengo y Guillermo Delgado Martínez Título: Asegurando el tiro: intervalos de confianza para tus modelos de Machine Learning Aula: Teoría 7 (Domingo) --------------------------------------- Resumen: Comprender cómo funcionan y la ventaja de emplear los intervalos de confianza, intervalos de predicción y predicción por cuartiles a la hora de emplear modelos de ML para soluciones de negocio. A día de hoy son cada vez más las empresas que se apoyan en modelos y técnicas de Machine Learning y analítica avanzada para tomar sus decisiones de negocio. No hay duda de que los datos son el petróleo de esta nueva era y tomar decisiones basadas en ellos supone una ventaja competitiva considerable. No obstante siguen existiendo escenarios (fluctuación de la bolsa, precio de la energía y commodities ...) cuya gran complejidad hace que sea complicado de modelar hasta con los algoritmos más punteros. En estas situaciones la solución más viable suele pasar por cuantificar la incertidumbre del modelo o asignando unos intervalos de confianza en las predicciones para poder tomar decisiones de negocio más precisas. Esta charla plantea, a partir de un caso de uso en Python, entrar en el detalle de los conceptos de intervalo de confianza, intervalo de predicción y predicción basada en cuartiles. Para cada uno de los conceptos explicados se definirán las ventajas y desventajas de su empleo tanto a nivel de interpretabilidad como a nivel de coste computacional, focalizándose en el valor añadido aportado a la solución de negocio planteada. Librerías: - Xgboost: https://xgboost.readthedocs.io/en/stable/ - Catboost: https://catboost.ai/ - Lightgbm: https://lightgbm.readthedocs.io/en/v3.3.2/ - Ngboost: https://github.com/stanfordmlgroup/ngboost - sklearn: https://scikit-learn.org/stable/ Definiciones y referencias: - Ngboost: https://arxiv.org/abs/1910.03225 - Regresión cuantílica: http://www.econ.uiuc.edu/ ~roger/research/rq/QRJEP.pdf - intervalo de credibilidad: https://en.wikipedia.org/wiki/Credible_interval - intervalo de confianza: https://es.wikipedia.org/wiki/Intervalo_de_confianza - intervalo de predicción: https://es.wikipedia.org/wiki/Intervalo_de_predicci %C3%B3n
Ponente: Miguel F Alarcon Título: Introducción a la causalidad en Python Aula: Paraninfo (Sábado) -------------------------- Resumen: Todos sabemos que correlación no es igual a causalidad. La mayoría de modelos de Machine Learning en la actualidad buscan correlaciones de los datos con el objetivo. La causalidad viene como herramienta para identificar los factores que afectan al objetivo y de qué manera lo hacen. El objetivo de esta charla es proporcionar unos conocimientos básicos, así como las herramientas para poder solucionar problemas de inferencia y modelado causal en Python. En esta presentación explicaremos de forma práctica los conceptos y técnicas básicas de inferencia causal en python así como la relevancia que estas técnicas tienen para mejorar los procesos basados en machine learning. Las técnicas de inferencia causal y “causal discovery” nos permiten responder a preguntas para las que las técnicas de analítica predictiva y métodos de clasificación/regresión habituales no tienen respuestas. Básicamente nos permite responder usando datos observacionales a la pregunta de porqué se ha producido un determinado efecto, y como debería haber actuado para que se hubiera producido un efecto distinto. Por otro lado nos permiten comprender y corregir los efectos que tienen sobre nuestros sistemas predictivos el efecto de sesgos de selección y el efecto de construcción de modelos condicionados o balanceados sobre algún estrato. Los principios que nos permiten entender estos efectos permiten desarrollar modelos de aprendizaje explicables, permiten corregir sesgos indeseados, y otorga mayor robustez al desplazamiento de dominio (domain shift) en la aplicación de los modelos. En esta presentación explicaremos estos conceptos de forma práctica y para ello usaremos las librerias DoWhy y CausalML. Referencias: “Concept and Principles of Causality “, Miguel F. Alarcon, https://medium.com/hotel-tech-stories/concept-and-principles-of-causality-d687832d6f5d “The Book of Why.”. Pearl, Judea, and Dana Mackenzie.Harlow, England: Penguin Books. 2019. “Elements of Causal Inference, Foundations and Learning Algorithms”, Jonas Peters, Dominik Janzing and Bernhard Schölkopf. "A unified survey of treatment effect heterogeneitymodelling and uplift modelling".W Zhang, J Li, L Liu - ACM Computing Surveys (CSUR), 2021 “Introduction to Causal Inference course”, Brady Neal, https://www.bradyneal.com/causal-inference-course Paquetes Python: Microsoft DoWhy, https://github.com/py-why/dowhy Uber CausalML: https://github.com/uber/causalml
Ponente: Jara Juana Bernejo Vega Título: Análisis de red del discurso de odio queerfóbico en Twitter Aula: Teoría 7 (Domingo) ---------------------------------- Resumen: En los últimos años el uso de retórica anti-LGTBQIA+ se ha disparado en todo el mundo. En España, esto se ha manifestado como un aumento del discurso de odio transfóbico. Grupos reaccionarios difunden narrativas de inseguridad jurídica y bulos de ultraderecha para transmitir discursos de odio y atacar la legislación que garantiza derechos fundamentales de las personas trans. Entre estos actores se encuentran grupos "feministas trans-excluyentes" (TERF) y grupos ultraconservadores como el partido político VOX y la plataforma Hazte Oír. El odio antitrans se utiliza como tema cuña para aumentar los discursos de odio a la comunidad LGBTQIA+, el feminismo y la legislación en materia de derechos. En esta charla, contextualizaremos el aumento de estos discursos de odio. Presentaremos un trabajo de investigación en el que utilizamos herramientas de análisis de datos cuantitativas para caracterizar las redes de odio queerfóbico en la red social Twitter. Utilizando herramientas Python como t-hoarder, recogemos datos de tendencias transfóbicas en Twitter. Utilizamos métodos de teoría de grafos para encontrar grupos de usuarios reaccionarios antitrans que difunden el odio antitrans en Twitter. Analizamos su comportamiento y la estructura de red de estos grupos. Observamos que un núcleo pequeño y dedicado de usuarios de Twitter es responsable de la mayor parte del odio antitrans en esta red social. Imitando las estrategias de la ultraderecha, estos grupos reaccionarios impulsan tendencias en Twitter creando ráfagas de contenido de interacción inauténtica. Con esta estrategia, pueden hacer hijacks a la página de portada de Twitter. Su comportamiento constituye un riesgo para la salud e integridad de la personas trans, ya que puede contribuir a difundir bulos y fake news que distorsionan la opinión pública en materia de derechos trans.
Ponente: Cristián Maureira-Fredes Título: Aprendiendo sobre el núcleo de Python rompiéndolo todo: un tour gentil y en español Aula: Paraninfo (Domingo) ------------------- Resumen: Experience has shown that aprender nuevas tecnologías in another language might be a bit complicado, sobre todo por como our brains are working double to aprender algo totalmente nuevo. Crecemos sabiendo que aprender inglés para integrarnos en la comunidad tecnológica es un requisito. Python como lenguaje no es una excepción, desde el lenguaje hasta su implementación, lo que a veces aumenta su nivel de complejidad por lo abstracto de diferentes temáticas. Pero...¿Podemos hacer algo al respecto? Abriremos la caja de Pandora, y entraremos en el núcleo de Python, para perder el miedo, y darnos cuentas que la implementación de Python estándar (CPython) no es nada del otro mundo, y es un proyecto que cualquier persona con un conocimiento básico de C podría al menos entender en términos generales, y en Español! Adicionalmente, modificaremos algunos elementos del lenguaje para entender los pasos, y la relación de los archivos de la implementación de forma resumida y enfocado a personas sin tiempo de estudiar todo el código fuente, en otras palabras, lo romperemos todo. Luego de esta charla, podrás preparar tu hot beverage favorito, y comenzar a modificar lo que quieras de Python, para aprender rompiendo, y sobre todo para tener la base necesaria para mejorar el lenguaje. El contenido de la charla está definido por los siguientes temas: Introducción a los pasos desde que escribimos código Python y se ejecuta el código de máquina de la VM final. Implementación de los tipos de Python en C Extensiones de Python en C Modificación del intérprete estándar de Python Imaginando Python en Español Material y recomendaciones finales
Ponente: Irene Pérez Encinar y Javier Torres Niño Título: Home is where your Assistant is written in Python Aula: Teoría 6 (Domingo) ---------------------------------------- Resumen: ¿Y si tu Alfred particular se llamara Ada y fuera una Raspberri Pi? ¿Te gustaría tener una casa "inteligente" donde las bombillas se encendieran al entrar o pudieras ajustar la temperatura desde cualquier sitio con tu móvil? En esta charla os contaremos cómo hacerlo con Home Assistant, una plataforma escrita en Python y muy sencilla de utilizar. Home Assistant es una plataforma para automatizaciones domóticas escrita en Python. Tiene cientos de integraciones con distintos "cacharritos IoT" y, en el extraño caso de que no tenga el que necesitas, es muy fácilmente extensible. En esta charla trataremos: - ¿Qué es Home Assistant? ¿Para qué sirve? - Cómo crear una integración - Cómo escribir automatizaciones basadas en reglas y cómo hacerlo con Python Y, siempre que el efecto demo lo permita, os enseñaremos algunos ejemplos con hardware real.
Ponente: José Muñoz Título: Cómo no vender la misma entrada a dos personas diferentes Aula: Teoría 6 (Sábado) -------------------------------------- Resumen: Supongamos que construimos una aplicación para vender entradas de un cine con tu framework de Python y tu base de datos favorita. Creamos una interfaz espectacular, la llenamos de funcionalidades asombrosas y nos encargamos de que no quede ningún detalle de accesibilidad por pulir. La desplegamos en producción y una vez que empiezan a llegar usuarios, nos damos cuenta de que empiezan a pasar cosas muy raras: hay clientes que han comprado el mismo asiento para ver la misma película a la misma hora y hay sesiones en las que tenemos a clientes sentados en el suelo porque hemos vendido más entradas que asientos. ¿Qué ha podido pasar? En esta charla analizaremos cómo puede llegar a ocurrir esto con nuestros datos, contaremos algunos casos reales y repasaremos algunas de las técnicas que usan las bases de datos actuales para ayudarnos a evitar estos problemas.
Ponente: Maria Camila Guerrero Giraldo Título: Lo mejor de dos mundos: Backend y Machine Learning con Python Aula: Teoría 7 (Domingo) ----------------------------- Resumen: El desarrollo de backend y Machine Learning parecen ser dos temas muy diferentes, sin embargo, les contaré mi experiencia en la transición entre estos dos; fue un proceso bonito, fácil y sútil gracias a Python y sus bien conocidos frameworks. Ven, únete a mí y sigue este viaje profesional que realmente he disfrutado. Antes que nada, quiero hablar un poco desde mi experiencia, cómo fue esa transición para mí y cómo tuve la oportunidad de pasar al área de Machine Learning sin tener una carrera en estadística o algún tipo de estudio relacionado. Mi participación en las comunidades de Python fue clave para obtener el conocimiento y conocer a las personas adecuadas en este paso de mi carrera. Luego, me gustaría presentar algunos conceptos clave relacionados con el backend y, especialmente, enfatizar los frameworks que me ayudaron (Flask y Django), nombrando las generalidades, los conceptos que estos frameworks me ayudaron a reforzar conocimientos importantes y especialmente cómo la documentación y la tutoría de las personas con las que trabajé me convirtieron en un desarrolladora backend. También me gustaría hablar sobre cómo, en mi experiencia de backend, la mayoría de las cosas que hice usaron procesos síncronos. Y en este punto de la charla, haga un contraste con mi experiencia en Machine Learning, donde al mismo tiempo estaban presentes frameworks como Django y Flask, pero donde gran parte del procesamiento que se hacía era asíncrono. Mientras que en el backend tenemos APIs y solicitudes (Body, Middleware APIs, Responses), en Machine Learning tenemos pipelines (ETLs, Trainings y Predictions). Aquí me gustaría hacer una analogía y mostrar que en realidad son similares pero los contextos son los que realmente cambian. Algo que aprendí en ambos roles es que el desarrollo es importante, pero el mantenimiento y la calidad de lo que desarrollamos es mucho más importante. Voy a mencionar algunos conceptos de calidad y mantenimiento para cada contexto para que el público se sienta familiarizado y pueda ver lo interesantes que son ambos mundos, también nombrando específicamente algunas bibliotecas y herramientas pythonicas que soportan esta fase (Cloud tools, MyPy, Pylint, Scipy, Jupyter Labs). Como cierre de la charla me gustaría mencionar que me encantan ambos roles y hay muchas cosas por aprender, sigo aprendiendo sobre patrones de diseño, buenas prácticas, investigación sobre temas y me doy cuenta cada día, que estar en una comunidad como Python hace que este trabajo sea increíble todo el tiempo. Definitivamente en mi corta experiencia puedo decir que tengo lo mejor de ambos mundos.