Docencia: ICSR - MDSBD 2019-20

Modificado el 3 de Septiembre de 2020

Esta página contiene el material, recursos e información relativa al primer bloque de la asignatura "Inteligencia Colectiva y Sistemas de Recomendación" correspondiente al Master Propio en Data Science y Big Data (Edición IV, año 2019-2020).

Este bloque comprende una introducción a la Inteligencia Colectiva en su relación con los Sistemas Complejos, así como un análisis a más profundidad de las Redes Complejas como una de las posibles aproximaciones al modelado de este tipo de sistemas.

Aunque para el seguimiento de las clases no es imprescindible tener instalado NetLogo (ver Enlaces de Interés) puede ser interesante que se instale lo antes posible, junto con del modelo de Complex Networks Toolbox (ver Recursos) para poder realizar experimentos similares a los mostrados en las clases de teoría y poder avanzar en la práctica de entrega obligatoria asociada a este bloque de la asignatura.

Contenido

  1. De la Inteligencia Colectiva a los Sistemas Complejos.
  2. Sistemas Dinámicos y Sistemas Multiagente.
  3. Redes Complejas.
    1. Modelos de Redes.
    2. Dinámica de Redes.
    3. Aplicaciones y Casos Prácticos.

Recursos

Se recomienda que el alumno baje e instale NetLogo 6.1.1 (la última versión disponible) en su máquina, y después descargue en cualquier carpeta los ficheros asociados al modelo Complex Networks Toolbox que se usa en la clase (hay que bajarse el fichero con extensión .nlogo, que es el modelo, y también scripts.nls, donde se pueden escribir los scripts personalizados). Posteriormente, basta cargar el modelo .nlogo en NetLogo (normalmente, con una instalación estándar, bastaría hacer doble clic en el modelo para que se abra la herramienta y cargue el modelo). 

Los modelos vistos a lo largo de las sesiones del bloque son:

  • Modelos de Sistemas Complejos en NetLogo (incluidos en la distribución de NetLogo): AntsFlockingFirefliesLife, PageRank, ...
  • Complex Networks Toolbox (no incluido en la distribución de NetLogo, desarrollado exclusivamente para este curso):
  • Sistemas de Recomendación basados en PageRank (no incluido en la distribución de NetLogo, desarrollado exclusivamente para este curso): Explora el uso de ideas similares a las usadas en PageRank (especialmente, el uso de surfistas aleatorios) para la construcción de Sistemas de Recomendación dinámicos, distribuidos, y personalizables.

Ejercicios Entregables

Fecha de entrega: 30 Marzo 2020.

  1. (Obligatorio: hasta 7 ptos.) Haciendo uso la herramienta vista en clase, realiza una comparativa de diversas métricas sobre varias familias de generadores de redes. Además de ver cómo afectan algunos parámetros a las métricas medibles en los grafos de cada familia (por ejemplo, cómo afecta modificar un parámetro a una medida concreta), también puedes comparar el comportamiento de familias diversas usando parámetros equivalentes que estén presentes en todas las familias (por ejemplo: probabilidad de creación de aristas, número de nodos, etc.).
  2. (Opcional: hasta 3 ptos.) Haciendo uso de alguno de los modelos que vienen con la distribución de NetLogo, adáptalo para recopilar datos durante la ejecución del modelo (de varias ejecuciones, en caso de depender de variables aleatorias), y analiza los resultados obtenidos para concluir/predecir/clasificar comportamientos del mismo.

Enlaces de Interés

  • NetLogo: a multi-agent programmable modeling environment. It is used by many tens of thousands of students, teachers and researchers worldwide. It is authored by Uri Wilensky and developed at the CCL. It is open source and free of charge. You can also try it online through NetLogo Web. https://ccl.northwestern.edu/netlogo/
  • Gephi: the leading visualization and exploration software for all kinds of graphs and networks. Gephi is open source and free. https://gephi.org
  • Cytoscape:  an open source software platform for visualizing complex networks and integrating these with any type of attribute data. A lot of Apps are available for various kinds of problem domains, including bioinformatics, social network analysis, and semantic web.  http://www.cytoscape.org
  • NetworkX: a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.  https://networkx.github.io
  • Network: R package to create and modify network objects. The network class can represent a range of relational data types, and supports arbitrary vertex/edge/graph attributes. https://cran.r-project.org/web/packages/network/index.html
  • igraph: a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. igraph is open source and free. igraph can be programmed in R, Python and C/C++. http://igraph.org
  • Tutorial de igraph en Rhttp://kateto.net/networks-r-igraph