An application created as part of the project
Author: Grzegorz Chilczuk
Supervisor: dr inż. Radosław Michalski
Only Python 3.6 or higher are supported.
If you have satisfied dependencies the installation should be as simple as
pip install influ
All dependencies will be installed automatically. However one of most important dependencies is cool python library called igraph which core is written in C. Sometimes it may cause some problem, igraph documentation should help.
Another problematic dependency is
pycairo, here you can find precise documentation.
Installing those dependencies should help with both igraph and pycairo:
sudo apt install build-essential python-dev libxml2 libxml2-dev zlib1g-dev sudo apt install libcairo2-dev pkg-config
If you are using Windows you have to download unofficial installer of igraph here and install it by executing:
pip install <python_igraph-[igraph-version]-[python-version]-[windows version]>.whl
Despite that's unofficial it's recommended by maintainers of igraph library.
pycairo library on Windows need
Microsoft Visual C++ 14.0 to be installed.
There were no attempts to install
influ on MacOS. Any information about it will be appreciated.
In order to test your concepts quickly there is a
KonectReader which simplifies downloading and extracting datasets and loading them into Graph object.
from influ import reader kr = reader.KonectReader() print(kr.list) # list available datasets graph = kr.load('manufacturing_emails') # load dataset
Currently there is only few datasets available but you can provide your own config file with other datasets specified. Currently only datasets from Konect are supported.
# Content of my_custom_config.yaml example_dataset: # name that will be used to access dataset name: Example Dataset 1 url: http://konect.uni-koblenz.de/networks/dataset_examle # url where dataset is described [optional] download: http://konect.uni-koblenz.de/downloads/tsv/dataset_examle.tar.bz2 # url where dataset can be downloaded directly file: out.dataset_example_example # name of file with directed: False # does graph should be considered as directed? edge_attributes: # list of names attributes - distance # if this list will be empty or there will be more attributes - another_attr # it will be named `attrX` where X is index counted from 0 vertex_attributes: # list of vertex attributes with files where they are stored - name: alias # name of attribute file: ent.vertex_alias_name # file with attribute
Loading your custom config extends (does not override) those previously loaded.
from influ import reader kr = reader.KonectReader('./my_custom_config.yaml') # loading at creation time kr.add_config('./my_custom_config.yaml') # adding config after creation
from influ import reader, finder kr = reader.KonectReader() graph = kr.load('manufacturing_emails') sfinder = finder.SeedFinder(graph) sfinder.configure(number=5, unit='number') result = sfinder.greedy(model=finder.Model.IndependentCascade, depth=1) sfinder.plot_influence(result, model=finder.Model.IndependentCascade, depth=1)