python

Recursos de programación de python
Ponente: Marina Moro López Título: Biohacking con Python Aula: Paraninfo (Sábado) --------------------- Resumen: ¿Te gustaría convertirte en el señor Burns fluorescente (sí, ese de los Simpson que dice ‘os traigo amor’)? Con el experimento de biohacking de esta ponencia podrás conseguirlo en tu propia casa; tan sólo necesitas un kit comprado por internet y un script de Python de mi GitHub. ¿Empezamos? La charla abrirá con una breve introducción al biohacking, seguida por una mini clase (súper leve, lo prometo) de teoría genética con el propósito de entender perfectamente la metodología del caso práctico. Éste es el verdadero centro de la charla y consistirá en editar nuestro propio ADN con CRISPR (una herramienta de corte y empalme biológico) y un script de Python (que diseñará las secuencias genéticas necesarias para el experimento) para biohackearnos ciertos genes y convertirnos en el señor Burns fluorescente. Todo esto nos servirá para ver el tremendo potencial de la sinergia entre la ingeniería genética y Python, no sólo en ejemplos cómicos como el ya mencionado, sino también en el ámbito sanitario como tratamiento de enfermedades.
Ponente: Javier y Manuel Título: Streamlit and Snowpark...when Python meets Snowflake Aula: Teoría 8 (Domingo) ------------------------------------------ Resumen: Estamos viviendo un auge de las plataformas cloud que facilitan y simplifican el almacenamiento, tratamiento y análisis de datos. Snowflake es una plataforma SaaS potente y fácil de usar que está adquiriendo una gran presencia en el mercado en proyectos muy diversos, permitiendo implementar arquitecturas tipo lakehouse (datawarehouse + data lake) de forma segura y escalable. ¿Y qué tiene que ver esto con Python? La plataforma Snowflake ofrece capacidades para realizar analítica avanzada (estilo Spark) y para el desarrollo ágil de aplicaciones analíticas mediante código. En ambos casos Python juega un papel fundamental. En esta sesión explicaremos en detalle Snowpark y Streamlit... cómo funcionan, cual es su utilidad y ventajas y para ello enseñaremos ejemplos desarrollados con Python.
Ponente: Juan Luis Cano Título: Más allá de pandas: comparativa de dataframes en Python Aula: Teoría 8 (Domingo) ----------------------------------------- Resumen: La biblioteca pandas ha sido uno de los factores decisivos para el crecimiento de Python en la década pasada dentro de la industria del análisis de datos y continúa ayudando a data scientists a resolver problemas 15 años después de su creación. Gracias a su éxito, ahora hay varios proyectos open-source que afirman mejorar pandas de diversas maneras: en esta charla haremos un repaso de dichas alternativas. Durante la charla Haremos una breve introducción a pandas, hablaremos de su importancia, y señalaremos algunas de sus limitaciones, como ya hizo su autor hace un lustro (https://wesmckinney.com/blog/apache-arrow-pandas-internals/). Enumeraremos algunas de sus alternativas y las clasificaremos (pandas-like o diferente, nodo único vs distribuido). Mencionaremos RAPIDS, Dask, Modin, y Spark por encima. Mostraremos fragmentos de código de Arrow, Vaex, y Polars a través de notebooks de Jupyter almacenados en Orchest Cloud y hablaremos de los puntos fuertes de las bibliotecas anteriores. Concluiremos dando una serie de pautas para elegir un proyecto u otro en función del caso y las necesidades. Al final de la charla la audiencia tendrá más información de cómo algunas de las alternativas modernas a pandas encajan dentro del ecosistema, entenderá cuáles proveen un camino para migrar más sencillo, y estará más preparada para juzgar cuál usar para próximos proyectos. Conocimientos básicos de pandas ayudarán a entender el resto de la presentación. Los materiales de la charla se encuentran en GitHub (https://github.com/astrojuanlu/talk-dataframes), y una serie de artículos de blog desarrollan los conceptos que se verán durante la charla: Arrow Vaex Polars
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: 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: Á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: 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: 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: 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.