sric和lric指数计算

slric的Python项目详细描述


SLRIC包drawing

slric是一个python包,用于使用短期交互中心度(sric)和长期交互中心度(lric)指数评估网络中的影响。

SRIC和LRIC指数考虑了:

  • 节点的个别属性:影响阈值(配额)、节点大小等;
  • 团体影响的可能性;
  • 节点之间的间接连接
示例:
SLRIC features
  • 节点2和节点4具有不同的影响阈值(q);
  • 节点1和2作为一个组影响节点4。即使节点3连接到节点4,它也不会直接影响它,因为节点3不是任何组中的关键成员;
  • 节点3经由节点2影响节点4。

网站:https://github.com/SergSHV/slric

作者:Fuad AleskerovNatalia MeshcheryakovaSergey Shvydun(hse大学,ics ras)

安装

从pypi安装包:

$ pip install slric

您还可以从github安装最新版本:

$ pip install git+https://github.com/SergSHV/slric.git

加载SLRIC包:

>>> import slric

简单算例的SRIC/LRIC计算

使用networkx包生成网络

>>> 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%(百分比)
  • 节点具有相同的大小(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个(定义的配额,dq);
  • 节点具有相同的大小(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表示节点2,q=10表示节点4
  • 节点具有相同的大小(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}

将LRIC结果写入文件

>>> 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')

附加功能

  1. 如果未定义节点大小(size),则size=加权出度;
  2. 类似于影响阈值(q),节点大小可以是dict()类型;
  3. 最大群大小可以使用“{{EM1}$$GROPPESIGHOMED:EEE>”参数(默认情况下,^ {EM1}$ $ GROPPESIZESS=4);
  4. 最大间接影响限值可使用“^ {EM1}$LimPosieEME>”参数定义(默认情况下,^ {EM1} $ LimPosieEEM>3);
  5. 如果未定义lric版本(models),则默认情况下会计算lric(max)(models='max')。

许可证

BSD 3条款许可证

版权所有(c)2019。福阿德·亚历克洛夫,娜塔莉亚·梅什里亚科娃,谢尔盖·什维登

保留所有权利。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView