Ir al contenido principal

Maratón IBM 2021 - Top 100 Desarrolladores Latinoamerica

 Este 2021 IBM lanzo su competencia de la Maratona, esta competencia la ha hecho desde 2019 , en 2020 tuve oportunidad de participar si quieres saber mas acerca de esa competencia te comparto la liga donde platico mi experiencia Maraton 2020. Pero en este post quiero compartirles como viví esta experiencia del Maratón IBM 2021.




#MaratonDev

La convocatoria la lanzaron el Septiembre 2021 para ; Brasil, Chile, Colombia, Ecuador, México, Perú, Uruguay y Venezuela. Las inscripciones terminaron el 3 de Diciembre de 2021 . Esta ocasión los desafíos fueron 5 para determinar los 100 mejores quienes participarían a la ultima sesión para elegir a los 5 mejores. Los premios fueron: Los ganadores recibirán un voucher por la cantidad de US$ 1,600.00 para cambiar por viajes. IBM Consulting América Latina ofrecera a los 10 mejores ofertas de empleo como Application Developer*. Premios en cada desafío.

Hubo una semana de entrenamientos, les comparto la liga de los temas y URL para verlos https://maratona.dev/doc/entrenamientos.pdf. Yo solo pude ver los 2 primeros.

Cada desafío tenia una bonificación adicional del 10% si se entregaba la primer semana de haberse lanzado el desafío. (Esta vez no olvide enviarlos)

Les platico un poco más acerca de mi experiencia en cada desafío y les comparto la liga https://maratona.dev/es/challenges , aun están disponibles aunque no participes en el maratón, son buenos para aprender y practicar. Tambien estan disponibles en github https://github.com/maratonadev/.

Desafío 1

El primer desafío de Bantotal fue preparar un modelo supervisado, para predecir el riesgo de dar un crédito a una persona. Cuando hablamos de modelos supervisados, quiere decir que son análisis de inteligencia artificial que se toma una muestra de información y en base a los resultados que se tienen en esa muestra se analiza se hace una separación de datos y se les aplica un algoritmo para dar un resultado, la calidad o porcentaje de asertividad se mide para saber que tan preciso es versus los datos originales, por eso se dice que es supervisado, porque ya sabemos el resultado y se puede comparar con el resultado de nuestro algoritmo. El modelo utilizado en este caso fue de DecissionTreeClassifier y se nos compartió un notebook de Jupiter para completar el desafío. Aquí tuve el puesto 97° :) y fui una de las pocas Mexicanas, la verdad es que la mayoría (67%) fueron brasileños.

Mi estrategia en este tipo de clasificadores es buscar las variables que tengan más correlación y en base a esas variables hacer el modelo de entrenamiento. Para ello utilice unas función de pandas para generar la correlación y graficarla  loans.corr(method = 'pearson').style.background_gradient(cmap='coolwarm')

Después de identificar las variables mas importantes ahora si entrene a mi modelo 


Desafío 2

El desafío 2 de QUANAM fue acerca de como utilizar herramientas de IoT recibiendo información de dispositivos , está información llegaba en formato JSON y se te tenía que hacer una función que validar estos datos recibidos y dependiendo de los parámetros recibidos regresara una alarma igual en formato JSON y hacer un modelo de regresión líneal para predecir el ritmo cardíaco de una persona, esto igual en base a unos datos que se tenían que recibir para poder tener la muestra de valores y después en base a eso hacer una predicción. En lo personal este desafío fue mi favorito me gustó mucho aprender acerca de estás tecnologías y como implementarlo con Inteligencia Artificial. En este desafío no hubo un Jupiter de referencia, por lo que cada participante teníamos que construir nuestra solución. En este Desafío mi puesto fue 107°. 

Mi estrategia en este desafío fue primero hacer la función, porque era la primera vez que utilizaba esa tecnología, en cuanto al desarrollo era una función de Python con datos de entrada y datos de salida. Aquí me sirvió mucho el video que nos compartió Josefina Casanova de IBM con un ejemplo de como hacerlo. 

URL del vídeo Cloud Functions | Maratón Behind the Code 2021



Después arme mi modelo para poder predecir el ritmo cardiaco de una persona, pero lo primero era leer los datos desde los sensores (NO relacionado con el requerimiento 1 del desafío) , bueno fue lo mas tardado leer los datos de otra nueva tecnología MQTT . Tuve que leer y ver videos en Youtube para entender como conectarme y luego pensar como leer los datos obtenidos.

Después de obtener las mediciones, entonces hice mi modelo , igual que el desafio1 identifique cuales eran las mejores variables o las mas relaciones y con ellas prepare mi modelo. 


Desafío 3

El desafío 3 de la empresa GTF fue acerca de utilizar el modelo de aprendizaje Apriori para poder regresar propuestas  o recomendaciones de productos para un cliente, lo bueno es que había tomado un curso de ese método un mes antes lo cual me ayudo a no tardarme tanto en entender el concepto. El modelo de Apriori es la primer vez que lo utilizo y que lo aplicó a un proyecto, es un modelo muy interesante y también me permitió hacer desarrollo de un programa utilizando mis conocimientos de Pandas en Python. Fue un ejercicio complicado de desarrollar para poder enviar la respuesta. En este desafío no hubo un Jupiter de referencia, por lo que cada participante teníamos que construir nuestra solución, incluso fue un algoritmo nuevo que no se utilizo en el maratón del año pasado (2020), lo complicado fue seleccionar la mejor recomendación para los usuarios, porque había que desarrollar ciclos y validación de datos y funciones de Panda para dar recomendación de servicios que no tuvieran los clientes. Aquí quede en el lugar 121°. Les comparto unas imágenes de mi Notebook. Si les gustaría ver un video o que los comparta en Github por favor dejen sus comentarios. 








Desafío 4

En este desafío teníamos que construir un chatbot o un asistente virtual utilizando Watson Assistant, para identificar ayuda a un usuario y enviarle unos drivers para ciertos modelos de impresoras, en caso de no encontrar el modelo de impresora en la lista del desafío o si era un soporte diferente a impresoras se debía enviar a un asistente humano utilizando un API que debían enviarse datos y regresaba una respuesta en formato JSON. Suena sencillo, pero si es tu primer chatbot no estaba tan sencillo. Este desafío fue patrocinado por Algar Tech. Para este desafío obtuve el lugar 26°. Estoy muy contenta con este puesto, porque me demore en encontrar la mejor lógica para el chatbot y aprendí como utilizar Webhook, esto te permite hacer el llamado de una función o una API, en esta parte me demore entender la lógica y vi un video de 10 minutos como en una hora hasta entendí como funcionaba. 

Mi estrategia fue utilizar como referencia mi chatbot del Maraton 2020 y sobre ese desarrollar mi nuevo chat.
Mis Intent fueron

Mis Entities
Mi Dialogo




Si tienen dudas o quieren que haga un video para explicarles, por favor dejen sus comentarios. 


Desafío 5

En este desafío era acerca de una clasificación binaria como el primer desafío, lo cual estuvo muy bien, porque el desafío 4 y 5 se debían entregar en la misma semana. Este modelo tuve una precisión del 76% y F1 de .59, trate de mejorarlo pero ya no tenía mas tiempo para poder entregarlo. Este desafío fue patrocinado por Sonda. Mi ultima entrega fue el 6 de Diciembre de 2021 y este mismo día comenzaron a dar resultados del Desafío 1. Para este desafío obtuve el puesto 117°. En este clasificador adicional hacer el análisis para identificar las variables con mayor correlación había que entregar el resultado con un texto y no solo con uno o cero, lo cual si era hacer cambios en los datos del dataframe con Pandas.

Ranking TOP 100


El 14 de Diciembre dieron resultados del ranking general, yo quede en el puesto 78° (la ultima de México en estos 100), cuando me entere quede en shock, no podía creerlo, estar en este lugar me permitió participar en el último desafío.



Desafío final

El desafío Final fuel el 18 de Diciembre de 2021 , el problema a resolver consistía en crear un chatbot en Watson Assistant que te devolviera la temperatura máxima, mínima, la dirección y velocidad del viento, la evaporización de ciertos cultivos , haciendo uso de una API de Weather Channel por medio de una función en Watson y después de eso publicar la solución en un OpenShift. Lamentablemente no pude entregarlo, me tarde mucho haciendo la función y probarla en el chat, pero para mi fue un logro porque el hecho de hacer un chatbot, conectarme por medio de un API y separar los datos del archivo  JSON y poder leerlo y mostrarlo es algo que no hubiera hecho hace dos años, el poder invocarlos desde el Dialogo del chat y pasarle mis variables. La verdad fue un desafío muy completo y divertido, me gusto porque pude hacerlo aunque no concluirlo, pero ahora se que debo mejorar para el próximo año y aprender mas de Openshift y kubernetes. Les comparto la liga del desafio https://github.com/maratonadev/desafio-6-2021/blob/main/doc/instructions/es.md y les comparto la liga de mi chatbot  https://web-chat.global.assistant.watson.cloud.ibm.com/preview.html?region=us-south&integrationID=68d90986-8e19-47d3-8131-02ecdec70f9f&serviceInstanceID=7b4ecb62-91ad-4b9d-8aa0-b5a5ff5230ba


Los mejores 5 del concurso fueron 4 Brasileños y una chica de Venezuela.
Les comparto la liga del evento de premiación Maratón Behind the Code 2021 - Grand Final

Un poco de numerología, de los 100 mejores de Latinoamérica:
  • Total de participantes inscritos 100 mil
  • 62 Brasileños, entre ellos los 3 primeros lugares  y el 5° del desafío final
  • Argentina tuvo 9 lugares en el top 100, con el puesto 5° Ariel Sperduti
  • De Perú 7 puestos, de ellos el mejor lugar Hans Marlon Hidalgo Alta puesto 10°, el año pasado en la Maratón obtuvo el puesto 2° de Hispanoamérica 
  • De México 7 Top 100, Elizabeth Rodríguez Sánchez  fue la mejor represéntate de México quedando en el puesto  18° , el año pasado estuvo también en el Top 100 de Hispanoamerica 
  • Venezuela 4 en los 100 primeros y de ellos María Victoria ocupo el cuarto lugar en el top 5) y en el top 100 Peterson Flemm ocupo el puesto 4
  • Chile 4 , Eric Santana Vasquez fue el mejor Chileno en el puesto 12
  • Colombia con 3 personas, su mejor puesto fue Julián Esteban Londoño en el lugar 39
  • Ecuador 3, mejor puesto lugar 40 logrado por Jonathan Herrera

Desde mi perspectiva el nivel de la competencia de este año fue más alta que el año pasado (2020). Creo que es para personas que ya tienen conocimientos de programación, experiencia en Python, machine learning, para principiantes creo que sería más complicado pero si es posible si le dedican tiempo para estudiar y leer. El maratón es un espacio para poder aprender nuevas tecnologías, practicar, conocer más las herramientas de IBM, conocer personas con los mismos intereses. Conocer mas acerca de IBM. Me gusta muchos este esquema de competencia porque:

  • Es digital
  • Es individual, pero se crea sinergia entre los competidores y genera networking
  • Son más de un desafío y de temas diferentes y prácticos, es decir son aplicables en la vida profesional
  • Promueve la tecnología y no solo es una competencia, sino que también sirve como entrenamiento y te dan un certificado
  • No hay limite de edad para participar , solo el mínimo requerido es tener 18 años
Quiero reconocer a IBM, a IT Media, a los patrocinadores por realizar esta competencia, no es algo sencillo tener que coordinar todas las actividades, preparar los desafíos, organizarnos a los competidores, estar al pendientes de nuestras dudas y apoyarnos. 

Nos vemos en el maratón 2022, espero mejorar y poder entregar el desafío final, mi objetivo del 2020 a 2021 fue entrar a los 100 mejores y gracias a Dios lo logre, lo que  noto es que no soy la única, los que hemos participado antes cada año nos ponemos nuevos retos personales lo que hace que la competencia sea mas reñida

Espero les sirva mi experiencia para animarse a inscribirse y para aprender de nuevas tecnologías en el próximo maratón o hackathons. Además de que puedan conocer a los mejores desarrolladores de Latinoamérica. 



Comentarios

Publicar un comentario

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas