{ "cells": [ { "cell_type": "markdown", "id": "221598f3", "metadata": {}, "source": [ "## Graph Space\n", "$\\textbf{Lead Author: Anna Calissano}$\n" ] }, { "cell_type": "markdown", "id": "e8ede5d2", "metadata": {}, "source": [ "Dear Learner,\n", "\n", "in this notebook we are going to see gpca and regression in graph space in action." ] }, { "cell_type": "code", "execution_count": 1, "id": "522f03d7", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import networkx as nx\n", "\n", "import geomstats.backend as gs\n", "import geomstats.datasets.utils as data_utils\n", "from geomstats.learning.frechet_mean import FrechetMean\n", "from geomstats.learning.pca import GGPCA\n", "from geomstats.learning.regression import GeneralizedGeodesicRegression\n", "from geomstats.metric_geometry.graph_space import GraphSpace\n", "\n", "gs.random.seed(2020)" ] }, { "cell_type": "markdown", "id": "32b1acd0", "metadata": {}, "source": [ "# Mammals Grooming\n", "\n", "## Motivation and Dataset\n", "This case study focuses on how the social interaction between baboons changes after an alpha or beta male is knocked-out from the community. Social interaction is here defined as grooming interaction between members of the group. The dataset consists of a set of $26$ social interaction networks between baboons, where nodes are baboons and edges are the number of grooming interactions between baboons. The networks are naturally unlabelled because the baboons in each network are different, belonging to different groups. Data are available at Rossi et al. (2015), while more details about the case study are available at Franz et al. (2015). Notice that the original dataset was filtered, keeping only the networks with less than $20$ baboons. " ] }, { "cell_type": "code", "execution_count": 2, "id": "4a44da66", "metadata": {}, "outputs": [], "source": [ "mammals = data_utils.load_mammals()" ] }, { "cell_type": "markdown", "id": "5f895fb8", "metadata": {}, "source": [ "We visualize one mammals group:" ] }, { "cell_type": "code", "execution_count": 3, "id": "ca8458a6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.float64(9.0)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mammals.max()" ] }, { "cell_type": "code", "execution_count": 4, "id": "039f23fc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mammals_obs = nx.from_numpy_array(mammals[5])\n", "pos = nx.kamada_kawai_layout(mammals_obs)\n", "edges, weights = zip(*nx.get_edge_attributes(mammals_obs, \"weight\").items())\n", "\n", "pos = nx.spring_layout(mammals_obs)\n", "nx.draw_networkx_nodes(mammals_obs, pos, node_color=\"b\", node_size=6)\n", "nx.draw_networkx_edges(\n", " mammals_obs,\n", " pos,\n", " edgelist=edges,\n", " edge_color=weights,\n", " width=2.0,\n", " edge_cmap=plt.cm.Blues,\n", " edge_vmin=0.0,\n", " edge_vmax=10.0,\n", ")" ] }, { "cell_type": "markdown", "id": "c07ba721", "metadata": {}, "source": [ "### Frechet Mean\n", "We compute the Frechet Mean of the set. We first initialize the graph space with the correct number of nodes (the adjacency matrices have been already padded with zeros), then we intialize the space metric and the parameters for the geodesic alignment. " ] }, { "cell_type": "code", "execution_count": 5, "id": "289c529b", "metadata": {}, "outputs": [], "source": [ "total_space = GraphSpace(n_nodes=mammals.shape[1])\n", "total_space.equip_with_group_action()\n", "total_space.equip_with_quotient()\n", "\n", "mean_estimator = FrechetMean(total_space, method=\"aac\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "35c1120e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Maximum number of iterations 20 reached. The estimate may be inaccurate.\n" ] } ], "source": [ "mean_estimator.fit(mammals);" ] }, { "cell_type": "markdown", "id": "e67673b9", "metadata": {}, "source": [ "Let's visualize the mean:" ] }, { "cell_type": "code", "execution_count": 7, "id": "fe07aafc", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mammals_fm = nx.from_numpy_array(mean_estimator.estimate_)\n", "edges, weights = zip(*nx.get_edge_attributes(mammals_fm, \"weight\").items())\n", "\n", "nx.draw_networkx_nodes(mammals_fm, pos, node_color=\"b\", node_size=6)\n", "nx.draw_networkx_edges(\n", " mammals_fm,\n", " pos,\n", " edgelist=edges,\n", " edge_color=weights,\n", " width=2.0,\n", " edge_cmap=plt.cm.Blues,\n", " edge_vmin=0.0,\n", " edge_vmax=10.0,\n", ");" ] }, { "cell_type": "markdown", "id": "1e77de2f", "metadata": {}, "source": [ "### Generalized Geodesic Principal Component Analysis (GGPCA)\n", "We compute the principal components:" ] }, { "cell_type": "code", "execution_count": 8, "id": "c778e6fd", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Maximum number of iterations 5 reached. The estimate may be inaccurate.\n" ] } ], "source": [ "aac_ggpca = GGPCA(total_space, max_iter=5)\n", "aac_ggpca.fit(mammals);" ] }, { "cell_type": "markdown", "id": "00b5fb14", "metadata": {}, "source": [ "To visualize the GGPCA we plot the data along the geodesic:" ] }, { "cell_type": "code", "execution_count": 9, "id": "7b5e505b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 18, 18)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aac_ggpca.components_.shape" ] }, { "cell_type": "markdown", "id": "99624e6c", "metadata": {}, "source": [ "Let's visualized the pricipal components:" ] }, { "cell_type": "code", "execution_count": 10, "id": "cae60e9c", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([0.2546123 , 0.15445812])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aac_ggpca.explained_variance_ratio_" ] }, { "cell_type": "code", "execution_count": 11, "id": "781ac691", "metadata": {}, "outputs": [], "source": [ "X_last = aac_ggpca.aligned_X_" ] }, { "cell_type": "markdown", "id": "6125772c", "metadata": {}, "source": [ "\n", "The first geodesic principal components reflect the variability in terms of isolated nodes, the second principal component in terms of density. The example is able to show how the GGPCA in the Graph Space setting is capturing social interaction changes that the original paper Rossi et al. (2015) is not able to capture with standard Euclidean methods. This example is also naturally unlabelled, due to the different baboons in different groups (i.e. different nodes in different networks).\n" ] }, { "cell_type": "markdown", "id": "a2912d1d", "metadata": {}, "source": [ "# GGRegression Fifa 2018 Player Passing Networks\n", "\n", "## Motivation and Dataset\n", "In this last case study, we studied the football players passing network (PPN) (i.e., the number of times two players\n", "pass each other the ball throughout the match) as a function of the final match score. The analysis and visualization\n", "of the players passing networks has becoming popular in the last years to understand the players network, the teams performance and strategy, and the final score. Using open source database in Stats Bomb, we collect all\n", "the PPN of each team in each match for the whole Fifa 2018 World Championship. The dataset contains observations\n", "about the 64 matches played (from 14/06/2018 to 15/07/2018) between 32 teams from all over the world." ] }, { "cell_type": "code", "execution_count": 12, "id": "499c81c1", "metadata": {}, "outputs": [], "source": [ "ppn, scores = data_utils.load_football()" ] }, { "cell_type": "code", "execution_count": 13, "id": "0d55820f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ppn_obs = nx.from_numpy_array(ppn[5])\n", "pos = nx.kamada_kawai_layout(ppn_obs)\n", "edges, weights = zip(*nx.get_edge_attributes(ppn_obs, \"weight\").items())\n", "\n", "pos = nx.spring_layout(ppn_obs)\n", "nx.draw_networkx_nodes(ppn_obs, pos, node_color=\"b\", node_size=6)\n", "nx.draw_networkx_edges(\n", " ppn_obs,\n", " pos,\n", " edgelist=edges,\n", " edge_color=weights,\n", " width=2.0,\n", " edge_cmap=plt.cm.Blues,\n", " edge_vmin=0.0,\n", " edge_vmax=10.0,\n", ")" ] }, { "cell_type": "code", "execution_count": 14, "id": "74eba5b2", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: Maximum number of iterations 20 reached. The estimate may be inaccurate.\n" ] } ], "source": [ "total_space = GraphSpace(n_nodes=ppn.shape[1])\n", "total_space.equip_with_group_action()\n", "total_space.equip_with_quotient()\n", "\n", "aac_reg = GeneralizedGeodesicRegression(total_space)\n", "aac_reg.fit(X=gs.expand_dims(scores, axis=1), y=ppn);" ] }, { "cell_type": "markdown", "id": "077c2b94", "metadata": {}, "source": [ "### References:\n", " \n", "Franz, M., Altmann, J., & Alberts, S. C. (2015). Knockouts of high-ranking males have limited impact on baboon social networks. Current Zoology, 61(1), 107-113.\n", "\n", "S. S. Ltd, Statsbomb open data, https://github.com/statsbomb/open-data (2018).\n", "\n", "Rossi, R., & Ahmed, N. (2015, March). The network data repository with interactive graph analytics and visualization. In Twenty-ninth AAAI conference on artificial intelligence.\n" ] } ], "metadata": { "backends": [ "numpy" ], "kernelspec": { "display_name": "geomstats", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.13" } }, "nbformat": 4, "nbformat_minor": 5 }