Analysis of BUDA ultimate frisbee league rosters as a graph network
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
analyze
app
create
data
.gitignore
README.md

README.md

Analysis of the BUDA Social Graph

Repository for analysis of BUDA players when considered as a social graph

Read more on my blog.

A note: I used python 3.3 for this, and made no effort towards python 2.x compatibility. Sorry.

Dependencies:

  • numpy
  • matplotlib

STEPS TO RUN

###Create

  • scrape.py: this function gets raw roster data from buda.org by following the links in data/links.txt. In lieu of using a headless browser, links.txt was generated by hand
  • player_graph_init.py: this combs the data/roster_data.tsv file and creates a list of nodes, one per player. It also creates one edge for each pair of players that played on the same team
  • combine_raw_edges.py: this combines the edges from player_graph_init into a set of weighted edges (so twenty different A,B edges throughout the seasons become (A,B,20))
  • find_recent_players.py: find nodes that have appeared in a league recently, to filter down the number of computations we have to do in similar_players.py

###Analyze

  • network_statistics.py: basic statistics about the network (node degree, edge weight)
  • similar_players.py: this is essentially a recommender system for each player: this searches all other players and find the list of N players most 'similar' to that player, and writes out the concatenation of each player's list to a file. 'similarity' here is the sum of weighted jaccard similarity and cosine similarity.
  • ego_networks.py: this computes the % of BUDA covered for each recent player as a function of the degrees of separation K.

###App

a quick Angular-based search capability embedded in the blog post. The version here will run standalone in a web container

###Data

this directory contains all of the outputs of the scripts above

the node list and adjacency list in player_graph/ are tailored for import into Gephi.