Categorías
Informática Universitario Videojuego

Minería de datos

Tema 

Hoy día vivimos en un mundo que genera constantemente millones de datos digitalizados. La industria llama «Big Data» al desafío de gestionar bases de datos capaces de almacenan cantidades enormes de ellos y transferirlos rapidísimamente por streaming… datos heterogéneos relativos al comportamiento de millones de personas, como por ejemplo los avances o las compras que hacen los jugadores en un videojuego móvil o en un MMOG.

Igual que el Aprendizaje Automático es un subcampo de la Inteligencia Artificial, la Minería de Datos es un subcampo del Análisis de Datos. Mientras el Análisis de Datos es, como su propio nombre indica, examinar, transformar e interpretar datos para obtener información útil y responder pregunta (usando muchas de las herramientas matemáticas que proporciona la Estadística)… la Minería de Datos busca principalmente descubrir patrones, relaciones o conocimientos interesantes que no son evidentes a simple vista en grandes conjuntos de datos.

Las lecciones a tratar en este tema son:

  1. Fundamentos y ciclo de vida
  2. Adquisición y exploración
  3. Limpieza y calidad
  4. Transformación y reducción

La Minería de Datos actual que se aplica a juegos sirve, por ejemplo, para segmentar jugadores (usando técnicas de agrupamiento que veremos más adelante como K-Means, DBSCAN…), ver qué tipos de jugadores existen, quien abandona, quien monetiza… también para hacer sistemas de recomendación como los de Steam, Xbox, Playstation Store (con modelos tipo Collaborative FIltering o Matrix Factorization), o para analizar el comportamiento de los avatares (secuencias de acciones, funnels, heatmaps…). Todo esto está muy presente en videojuegos de la talla de Fortnite, League of Legends o Clash Royale.

La telemetría (horas jugadas, muertes, victorias… el ejemplo habitual e importante del churn o tasa de abandono de un juego) es una de las fuentes principales de datos. Puede ser interesante trabajar con datos de uso y comportamiento de jugadores (obtenidos de Steam, Twitch, SteamSpy, Kaggle u otras plataformas) o incluso «telemetría ficticia» de un supuesto videojuego, pero en cualquier caso este tema no se tratará en profundidad, porque ya se explica en detalle en la asignatura de Usabilidad y Análisis de Juegos.

Ejercicios

Para practicar lo aprendido pueden hacerse algunos ejercicios.

Prácticas

No tanto por aplicar los conocimientos y las técnicas de este tema sino para tener alguna Práctica 0 de referencia, pueden realizarse prácticas como estas:

  • Introducción a NumPy, pandas y Matplotlib. En Python hay muchas librerías para trabajar con grandes cantidades de datos numéricos que es importante conocer, como NumPy o pandas. Pandas es una biblioteca de Python para manipulación y análisis de datos tabulares (DataFrames), que es muy útil para limpiar, transformar y preparar datasets. NumPy se usa más para operaciones numéricas con matrices. También podemos usar Plotly, otra biblioteca de Python para visualización interactiva de datos, o Matplotlib que sirve para visualizar datos pero de forma estática. Seguramente se entregará un ejemplo, con una solución hecha completamente por el profesor.
  • Como ejercicio de iniciación es interesante tomar un conjunto de datos real, «sucio», de Internet (o varios, de aquellos que más nos interesen, comportamientos de videojugadores, tiendas como de Steam, etc.), y usar pandas para explorarlo, limpiarlo… y también preprocesarlo y transformarlo, usando usando Sklearn para dejarlo listo de cara al siguiente tema.
  • Herramientas como scikit-learn o la biblioteca propia de XGBoost sin duda son interesantes… pero se aprovecharán mejor en temas más avanzados. Lo bueno de estas dos es que se ejecutan en local (e incluso es posible descargar su documentación también en local). Seguramente se entregará un ejemplo, con una solución hecha completamente por el profesor.

Referencias

Para complementar este tema es recomendable consultar otros documentos: