Mountain View
biomedical and healthCAre Data Discovery Index Ecosystem
help Advanced Search
Title: Convex Inference For Community Discovery In Signed Networks (European Parliament Voting Dataset)      
dateReleased:
03-06-2017
privacy:
information not avaiable
aggregation:
instance of dataset
dateCreated:
03-06-2017
refinement:
raw
ID:
doi:10.5281/ZENODO.345950
creators:
Santamaria, Guillermo
Gómez, Vicenç
availability:
available
types:
other
description:
This repository contains the necessary tools to reproduce the experiments of the paper G. Santatmaría, V. Gómez (2015) Convex inference for community discovery in signed networks. NIPS 2015 Workshop: Networks in the Social and Information Sciences The method first maps the MAP problem on the Potts model as a hinge-loss minimization problem (see the paper for details). To run the code you need to install psl (included here) and if you want to additionally compare with other inference methods, such as max prod belief propagation or junction tree, you need to install the libDAI library (also included here) The directory europeanCongressData/ (~500 Mb) contains the votings of the EU parlament, including 300 votings events from the actual term, from May 2014 to June 2015, obtained from http://www.votewatch.eu/ data/ : json files with the european votes network.net : signed network built from the votes political_parties.txt : "ground truth" party community_results/ : results for different number of communities and initial vertices dataComputations.py : used to build the signed network dataProcessing.py : used to build the signed network We would appreciate if you cite the paper after using the data or the code. DEPENDENCIES The code has been tested in Linux Mint 18.1 Serena and Ubuntu 14.04 - For PSL library, you need to have     java 1.8     you may need to export JAVAHOME='/usr/lib/jvm/YOURJAVA1.8FOLDER'     maven 3.x - For libDAI you will need:     make doxygen graphviz libboost-dev libboost-graph-dev libboost-program-options-dev libboost-test-dev libgmp-dev cimg-dev libgmp-dev CODE TO RUN THE FOLLOWING EXPERIMENTS: Compare the performance in terms of structural balance of max prod bp and our method against an exact inference method (junction tree), with different number of communities INSTALL To install the experiments you have to follow the next steps: 1 Build the libdai library by doing: make -B on the folder (libdai) 2 Generate the class path of the groovy project: mvn clean install mvn dependency:build-classpath-Dmdep.outputFile=classpath.out on the psl root folder (You need to have java 1.8 and maven 3.x installed) 3 Grant exec permissions to the run.sh script Options The main python file to run the experiments is evaluatebalanceon_sn.py. It accepts the following parameters: 1 (Int) Nodes of the graph. In order to run the junction tree we recommend to set this paremeter to 150 or less 2 (Int) The number of underlying communities 3 (Float) The maximum amount of unbalance for the experiments. We recommend 0.45 4 (Bool) Whether to use an heuristic to find the initial node for each community or to use directly random nodes from the ground truth communities. This heuristic looks alternatively for the nodes with highest negative degree and highest positive degree. For the case when the number of communities is equal to 2 (Ising Model), the heuristic is used by default. An example of execution would be: python evaluate_balance_on_sn.py 120 3 0.45 True True The results of the experiments are save in the folder results/ Scripts The main script of the hinge-loss method can be found in the folder psl/psl-example/src/main/java/edu/umd/cs/example/PottsCommunities.groovy Authors: Guillermo Santamaria & Vicenc Gomez Mar 5, 2017 For further questions, please contact vicen.gomez@upf.edu
accessURL: https://doi.org/10.5281/ZENODO.345950
storedIn:
Zenodo
qualifier:
not compressed
format:
HTML
accessType:
landing page
authentication:
none
authorization:
none
abbreviation:
ZENODO
homePage: https://zenodo.org/
ID:
SCR:004129
name:
ZENODO

Feedback?

If you are having problems using our tools, or if you would just like to send us some feedback, please post your questions on GitHub.