La intro…
Las lecciones a tratar en este tema son:
Según Javier Bravo se empieza con detección de anomalías (es un tema complejo, en realidad hay una parte que es aprendizaje supervisado y otra aprendizaje no supervisado). Aunque el orden no es estricto después se puede seguir con reducción de dimensionalidad y finalmente clustering (K-Means y jerárquico); también mostrando dendogramas en el jerárquico, y explicando como métricas el índice de Dunn, índice de Davies-Bouldin, Silhouette, e inercia (K-Means y el método del codo, mirando la gráfica).
Ismael aquí les habla de reducción de dimensionalidad, K-means y clustering aglomerativo.
Ejercicios
Para practicar lo aprendido pueden hacerse algunos ejercicios.
Prácticas
Para aplicar los conocimientos y las técnicas de este tema pueden realizarse prácticas como estas:
- EJEMPLO, con una solución hecha por el profesor.
- Segmentación de jugadores en grupos (clústers), donde ya no hay etiquetas ni conocemos tipos de jugadores pero queremos descubrirlos, buscando patrones ocultos en los datos. Tiene su parte de Minería de Datos porque tenemos información con variables tipo horas de juego, compras realizadas, si juegan más o menos cooperativo, logros… Se podría aplicar K-Means (para distinguir entre jugadores ocasionales, competitivos, coleccionistas, exploradores… ese tipo de tipologías que vemos en Diseño de Videojuegos), o aplicar DBScan para ver cómo detecta grupos de cualquier forma, encuentra outliers, no necesita indicar un K. Para visualizar el resultado se puede usar PCA o t-SNE para ver los grupos o clusters en 2 dimensiones.
- Hacer un sistema recomendador como el de Steam. Los recomendadores se pueden crear con cualquier tipo de aprendizaje… en ese caso no vamos tanto a seguir el click del jugador, el rating que pone a los juegos, etc. sino que buscaríamos algo no supervisado. O bien con un filtrado colaborativo (jugadores parecidos consumen juegos parecidos -suele considerarse aprendizaje no supervisado, aunque admite cierta supervisión-) o bien basándonos en contenido (según las compras del jugador, esos son los géneros que le gustan y se recomiendan juegos del género -esto tira más a supervisado, aunque para representar los juegos se puede hacer TF-IDF sobre descripciones, clústering de géneros o tags…), o bien algo híbrido -que es lo que hace Steam- combinando el historial, las etiquetas, el tiempo jugador, las reseñas, los amigos, la popularidad de los títulos, etc.
- Una posible práctica podría ser usar Scikit-learn, ya que cubre de sobra este tema con sklearn.cluster (K-Means, DBSCAN) y sklearn.decomposition (PCA). Utilizar el mismo dataset de una práctica anterior para aplicar K-Means y PCA para visualizar los grupos. Sería una práctica típicamente más corta y visual.
Referencias
Para complementar este tema es recomendable consultar otros documentos: