Categorías
Informática Universitario Videojuego

Predicción de Resultados en League of Legends

El famoso título publicado por Riot Games en 2009, League of Legends (LoL), no es solamente uno de los juegos más populares de la Historia, sino todo un pilar sobre el que se ha construido la industria moderna de los e-Sports. Hoy día cuenta con campeonatos mundiales, decenas de millones de espectadores simultáneos y, por supuesto, mucho movimiento de dinero en patrocinios y apuestas.

Aunque una partida de LoL es un evento complejo muy dependiente del factor humano, lo cierto es que gracias a los sistemas de telemetría actuales podemos tener suficiente información sobre lo que está ocurriendo (oro, experiencia, visión, bajas, primera sangre, primer dragón…) como para plantearnos predecir quien va a ganar una partida cuando tan sólo han transcurrido 10 minutos de juego.

Es muy difícil hacer predicciones… especialmente sobre el futuro.

Niels Bohr (1885–1962)

LoL es un videojuego de tipo Multiplayer Online Battle Arena (MOBA) donde dos equipos (el azul y el rojo) se enfrentan. Los cinco jugadores de cada equipo controlan unidades individuales («campeones») con habilidades, estadísticas y enfriamientos (cooldowns) diferentes, luchando en un escenario formado por tres grandes «líneas» y una jungla. Los jugadores van acumulando oro y experiencia a base de eliminar a los personajes no jugadores del equipo contrario (minions), a sus estructuras defensivas (torres que disparan de manera automática) y a otras criaturas neutrales que están en el escenario. El objetivo principal para ganar el juego es destruir el nexo (cuartel general) del enemigo.

Propuesta

La práctica consiste en desarrollar y evaluar varios modelos de aprendizaje automático tratando de buscar el que mejor predicción tenga sobre cómo clasifican como «victoria del equipo azul» (clase blueWins) las partidas de LoL a nivel competitivo. Se debe tener en cuenta toda la información disponible que nos proporciona la telemetría de un conjunto de datos tomado a los 10 minutos de juego.

El punto de partida es el repositorio de GitHub llamado Matches Base que contiene como Release un subconjunto de datos (train.csv) que es parte de otro más extenso descargado de la página web en Kaggle de League of Legends Diamond Ranked Games (10 min) y a su vez extraído mediante el API que ofrece el juego.

Los bloques principales del estudio a realizar son:

A. Análisis exploratorio del conjunto de datos, limpieza y transformación teniendo en cuenta los modelos de predicción que se usan después.

B. Entrenamiento, predicción y evaluación de un modelo de Regresión Logística como línea base con los que comparar los demás. Se utilizan -al menos- la matriz de confusión y la métrica de exactitud (tasa de acierto) o la puntuación F1, disponibles en la evaluación pública (parcial) de la competición LoL Matches de Kaggle.

C. Entrenamiento, predicción y evaluación de -al menos- 2 modelos más, como por ejemplo k-NN y Árboles de Decisión. Tras comparar distintos modelos, variantes y configuraciones de hiperparámetros, envío de la mejor predicción obtenida a la competición antes mencionada y discusión de los resultados.

D. No aplica.

E. No aplica.

Revisión

Tener el repositorio a disposición del profesor, en formato entregable, preparado en tiempo y forma por todos los miembros del grupo de manera equitativa, supone un 10% de la nota de la práctica. El profesor tendrá una lista con los datos de todos los grupos y los enlaces a las organizaciones en GitHub (por ejemplo AAM23-G02, la del grupo 2 del curso Aprendizaje Automático y Minería de Datos 2023-2024) donde se encontrarán los repositorios de las prácticas (por ejemplo AAM23-G02-P0).

Revisión preliminar

Al día siguiente de la sesión de laboratorio de esta práctica marcada como «Preliminar» en el calendario se realiza la revisión preliminar, poniendo el foco principalmente en:

  • Cuaderno interactivo incompleto pero esbozado según la estructura recomendada por el profesor y presentada en el README.md. Supone un 10% de la nota.

Revisión final

Al día siguiente de la sesión de laboratorio de esta práctica marcada como «Finalización» en el calendario se realiza la revisión final, donde es posible volver a revisar lo de la revisión preliminar y además:

  • Proyecto con todos los ficheros de documentación, recursos, código fuente y resultados de la implementación, generalmente datos en formato CSV, cuadernos interactivos en formato IPYNB, aunque puedan aparecer Unity y C# en algunas prácticas (llamado por ejemplo AAM23_G02_P0). Supone un 20% de la nota. La documentación tiene tantas secciones como características a probar (esto es A, B, C, D y E). Supone un 10% de la nota. Cada característica del estudio (A, B, C, D y E) correctamente implementada supone un 10% de la nota, sumando un total de 50%.

Más información

Además de la bibliografía recomendada, se pueden investigar las siguientes referencias. En ningún caso se debe replicar código de terceros o de IA sin entenderlo bien y «hacerlo nuestro», y siempre asegurándonos de que funciona exactamente como se requiere en esta práctica.

Se pueden realizar ampliaciones para ir más allá en el aprendizaje.

  • Probar con otro conjunto de datos sobre League of Legends (como este) de los muchos que hay disponibles en Kaggle y otras plataformas.
  • Utilizar algún otro modelo no lineal sofisticado como Random Forest o XGBoost.

Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.