开源网络嵌入评估工具包

evalne的Python项目详细描述


evalne:一个python库,用于评估链接预测的网络嵌入方法

documentation status欢迎捐款mit license用python制作用sphinx doc制作

这个存储库提供了evalne的源代码,evalne是一个开源的python 用于评估和比较网络性能的库 链路预测(lp)任务的嵌入(ne)方法。图书馆打算 通过提供 任务的自动化和抽象,如超参数调整、选择 训练和测试边缘、负采样、评分功能的选择等。

该库既可以用作命令行工具,也可以用作api。在它的当前 版本,evalne可以评估未加权的有向和无向简单网络。

图书馆由Alexandru Mara(Alexandru.Mara(at)Ugent.be)管理。满 evalne的文档由主持阅读文档 此处

对于方法学家

命令行界面与配置文件结合使用,允许用户 无需评估任何公开可用的ne方法实现 编写附加代码。这些实现可以从库中获得 如 openne创业板 以及直接从作者的网页,例如。 深度行走节点2vec修剪元路径2veccne

evalne还包括以下lp启发式,用于定向和 无向网络(输入和输出节点邻域),可用于 基线:

  • 随机预测
  • 普通邻居
  • 雅卡系数
  • ADAMIC ADAR指数
  • 优惠附件
  • 资源分配指数

对于从业者

当用作api时,evalne提供以下函数:

  • 加载和预处理图形
  • 获取generAL图形统计
  • 计算列车/测试/验证拆分
  • 生成假边
  • 评估链接预测:
    • 节点嵌入
    • 边缘嵌入
    • 相似性分数(例如,由lp启发式给出的分数)
  • 提供从节点特征向量计算边缘嵌入的函数
    • 平均值
    • 阿达玛德
    • 加权l1
    • 加权l2
  • 任何sklearn二进制分类器都可以用作lp算法
  • 实现多个精度指标。
  • 包括参数调整子程序

安装

该库已经在Python2.7和Python3.6上进行了测试。

evalne取决于以下软件包:

  • 努比
  • scipy
  • sklearn
  • matplotlib
  • 网络x 2.2

在安装evalne之前,请确保安装了pippython tk包 在你的系统上,这是可以做到的 通过运行:

# Python 2
sudo apt-get install python-pip
sudo apt-get install python-tk

# Python 3
sudo apt-get install python3-pip
sudo apt-get install python3-tk

选项1:使用pip安装库:

# Python 2
pip install evalne

# Python 3
pip3 install evalne

选项2:克隆代码并安装:

  • 克隆evalne存储库:

    git clone https://github.com/Dru-Mara/EvalNE.git
    cd EvalNE
    
  • 下载严格的库依赖项并安装:

    # Python 2
    pip install -r requirements.txt
    sudo python setup.py install
    
    # Python 3
    pip3 install -r requirements.txt
    sudo python3 setup.py install
    

通过运行simple_example.pyfunctions_example.py检查安装,例如:

# Python 2cd examples/
python simple_example.py

# Python 3cd examples/
python3 simple_example.py

注意:为了运行计算器示例.py脚本, 需要openne library、prune和metapath2vec。安装说明 它们是可用的 这里这里, 以及这里, 分别是。有关如何使用.ini文件运行计算的说明如下 在下一节中提供。

用法

作为命令行工具

库将.ini配置文件作为输入。此文件允许用户 从要计算的方法和基线指定计算设置 到边缘嵌入方法、要调整的参数或要报告的分数。

提供了一个说明可用选项的示例conf.ini文件 对于每个参数。可以修改此文件以模拟 评估设置或用作生成其他.ini文件的模板。

提供了附加配置(.ini)文件来复制实验 东北文献中不同论文的章节。这些可以在不同的 examples/下的文件夹。一个这样的配置文件是 示例/node2vec/conf_node2vec.ini。此文件模拟链接预测 a.grover"网络可扩展特征学习"论文的实验研究 和J.Leskovec。

一旦设置了配置,就可以按照下一个 小节。

运行conf示例

为了使用提供的conf.ini或任何其他.ini 文件,需要执行以下步骤:

  1. 下载/安装要测试的方法:

  2. 下载示例中使用的数据集:

  3. 在相应的.ini的in paths选项中设置正确的数据集路径 文件。以及methods-u-opne和/或methods-u-other选项下的正确方法路径。

  4. 运行评估:

    啊!

注意:evalne的输入网络必须采用edgelist格式。

作为API

库可以像任何其他python模块一样导入和使用。下一个我们 提供一个非常基本的示例,对于更完整的示例,我们请用户参考 示例/文件夹。

啊!

输出

库可以提供两种类型的输出,具体取决于scores选项的值 配置文件的。如果指定了关键字all,库将生成 文件名为eval output.txt包含对每个方法和网络分析的所有 可用的指标(黄金、精度、F分数等)。如果不止一个实验重复 请求时,报告的值将是所有重复的平均值。输出 文件将位于运行评估的同一路径中。

将scores选项设置为%(最大化)将生成与以前类似的输出文件。 但是,此文件的内容将是一个表。x networks)仅包含 在方法和网络的每个组合的最大化选项中指定的分数 所有实验重复的平均值。

此外,如果选项traintest path包含有效的文件名,evalne将创建 在所提供的每个outpaths下都有该名称的文件。在每一条道路上 库将存储EDGE的真假训练集和测试集。

注意:表格输出不适用于有向和无向网络的混合。

引文

如果你发现埃文对你的研究有用,请引用我们的 arxiv论文

AAAAAAAAA 8

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

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody