SRIC and LRIC indices calculation
Project description
SLRIC package
SLRIC is a Python package for influence assessment in networks using short-range interaction centrality (SRIC) and long-range interaction centrality (LRIC) indices.
SRIC and LRIC indices take into account:
- Individual attributes of nodes: threshold of influence (quota), nodes size, etc.;
- Possiblity of the group influence;
- Indirect connections between nodes.
- Nodes 2 and 4 have different thresholds of influence (q);
- Nodes 1 and 2 influence node 4 as a group. Even though node 3 is connected to node 4, it does not influence it directly as node 3 is not a pivotal member in any group;
- Node 3 influences node 4 via node 2.
Website: https://github.com/SergSHV/slric
Authors: Fuad Aleskerov, Natalia Meshcheryakova, Sergey Shvydun (HSE University, ICS RAS)
Installation
Install the package from PyPI:
$ pip install slric
You can also install the latest version from GitHub:
$ pip install git+https://github.com/SergSHV/slric.git
Load SLRIC package:
>>> import slric
SRIC/LRIC Calculation for Simple Example
Generate a network using NetworkX package
>>> import networkx as nx
>>> G = nx.DiGraph()
>>> G.add_edge(1, 4, weight=7)
>>> G.add_edge(2, 4, weight=5)
>>> G.add_edge(3, 4, weight=2)
>>> G.add_edge(3, 2, weight=6)
Case 1
- q=60% of weighted in-degree (in percentage);
- nodes have the same size (size = 1).
>>> slric.sric(G, q=60, size=1) # SRIC
{1: 0.36363636363636365, 4: 0.0, 2: 0.09740259740259741, 3: 0.538961038961039}
>>> slric.lric(G, q=60, size=1, models='max') # LRIC (Max)
{1: 0.27450980392156865, 4: 0.0, 2: 0.1470588235294118, 3: 0.5784313725490197}
>>> slric.lric(G, q=60, size=1, models='maxmin') # LRIC (MaxMin)
{1: 0.27450980392156865, 4: 0.0, 2: 0.1470588235294118, 3: 0.5784313725490197}
>>> slric.lric(G, q=60, size=1, models='pagerank') # LRIC (PageRank)
{1: 0.32165639923246203, 4: 0.0, 2: 0.18808528619697315, 3: 0.49025831457056473}
Case 2
- q=5 for each node (defined quota, dq);
- nodes have the same size (size = 1).
>>> slric.sric(G, dq=5, size=1) # SRIC
{1: 0.21153846153846154, 4: 0.0, 2: 0.28846153846153844, 3: 0.5}
>>> slric.lric(G, dq=5, size=1, models='max') # LRIC (Max)
{1: 0.25, 4: 0.0, 2: 0.25, 3: 0.5}
Case 3
- q=5 for node 2, q=10 for node 4;
- nodes have the same size (size = 1).
>>> d = dict()
>>> d[2] = 5
>>> d[4] = 10
>>> slric.sric(G, dq=d, size=1) # SRIC
{1: 0.2916666666666667, 4: 0.0, 2: 0.20833333333333337, 3: 0.5}
>>> slric.lric(G, dq=d, size=1, models='max') # LRIC (Max)
{1: 0.24137931034482757, 4: 0.0, 2: 0.17241379310344826, 3: 0.5862068965517241}
Write LRIC results to file
>>> from slric import lric, GraphQW
>>> ranking, lric_graph = lric(G, q=60, size=1, models=['max', 'maxmin'], data=TRUE)
>>> GraphQW.write_centrality(lric_graph, 'output.txt', separator=';', mode='w')
Additional features
- If nodes size (size) is not defined, then size = weighted out-degree;
- Similarly to threshold of influence (q), nodes size can be of dict() type;
- Maximal group size can be limited using 'group_size' parameter (by default, group_size=4);
- Maximal indirect influence limit can be defined using 'limpath' parameter (by default, limpath=3);
- If LRIC version (models) is not defined, then LRIC (Max) is calculated by default (models='max' ).
License
BSD 3-Clause License
Copyright (c) 2019. Fuad Aleskerov, Natalia Meshcheryakova, Sergey Shvydun.
All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
slric-1.1.5.1.tar.gz
(14.8 kB
view hashes)
Built Distribution
slric-1.1.5.1-py3-none-any.whl
(16.7 kB
view hashes)