用于图形机器学习的python库

stellargraph的Python项目详细描述


Stellargraph机器学习库徽标

星图机器学习库

Docker Pullspypi downloads

目录

简介

starlargraph是一个python库,用于对图形结构(或等价于网络结构)数据进行机器学习。

图结构数据表示实体,例如人,作为节点(或等价的顶点)。 以及实体之间的关系,例如友谊,作为联系(或 相当于边缘)。节点和链接可能具有相关属性,如年龄、收入和时间 建立了友谊,等等。星图支持分析同质网络(具有一种类型的节点和链路)和异质网络(具有多种类型的节点和/或链路)。

星图库实现了几种最先进的算法,用于应用机器学习方法来发现模式并使用图结构数据回答问题。

星图库可用于使用图形结构数据解决任务,例如:

  • 节点和边的表示学习,用于可视化和各种下游机器学习任务;
  • 节点或边的分类和属性推断;
  • 链路预测;
  • 通过计算选定节点的边和邻域重要性来解释节点分类[7]。

我们提供了使用多个真实数据集解决此类任务的示例。

指导原则

Stellargraph使用keras库并遵循相同的指导原则 如keras:用户友好,模块化,易于扩展。模块和层 星图库的设计使它们可以与 标准路缘石层和模块(如需要)。这使得使用现有的 或者为图形上的机器学习创建新的模型和工作流。

开始

要开始使用恒星图,您将需要构造为同质或异质图的数据,包括 表示为图形节点的实体的属性。 networkx用于表示图形,pandas 或者使用numpy存储节点属性。

详细叙述/master/demos/" rel="nofollow">此存储库的demos目录中提供了各种网络数据机器学习工作流的示例,这些工作流由Stellargraph支持,从数据摄取到图形结构到推理。

安装

Stellargraph是一个Python3库,我们建议使用Python版本3.6.*。所需的python版本 可从python.org下载和安装。或者,使用蟒蛇 环境,可从anaconda.com获取。

注意:虽然库在python 3.7上工作,但它是基于keras的,而keras并不正式支持python3.7。 因此,可能会有一些未被发现的bug,而来自python库的许多警告 星图取决于。

星图库可以通过以下两种方式之一安装,如下所述。

使用pip安装星图:

要使用pip>从pypi安装Stellargraph库,请执行以下命令:

pip install stellargraph

demos目录中的一些示例需要安装额外的依赖项以及stellargraph。要使用pip安装这些依赖项和星图,请执行以下命令:

pip install stellargraph[demos]

从github源安装星图:

首先,使用git克隆星图存储库

git clone https://github.com/stellargraph/stellargraph.git

然后,cd到starlargraph文件夹,并通过执行以下命令安装库:

cd stellargraph
pip install .

demos目录中的一些示例需要安装额外的依赖项以及stellargraph。要使用pip安装这些依赖项和星图,请执行以下命令:

pip install .[demos]

Docker图像

图像可以通过Docker Pull Stellargraph/Stellargraph拉取

运行示例

有关示例和如何运行示例的详细信息,请参见demos目录中的自述文件

算法

星图库目前包括以下图形机器学习算法:

  • 图表[1]

    • 支持同质网络的有监督和无监督表示学习、节点分类/回归和链路预测。 当前实现支持多种聚合方法,包括mean、maxpool、meanpool和 注意力聚合器。
  • hinsage

    • graphsage算法在异构网络中的扩展。 支持异构图的表示学习、节点分类/回归和链接预测/回归。 当前实现支持邻居节点的平均聚合, 考虑到它们的类型和它们之间的链接类型。
  • 图形注意网络(gat)[4]

    • gat算法支持同构图的表示学习和节点分类。有一些版本的图形注意层同时支持稀疏和密集的邻接矩阵。
  • 图卷积网络(gcn)[5]

    • gcn算法支持同构图的表示学习和节点分类。图形卷积层有多种版本,支持稀疏和密集邻接矩阵。
  • 简化图卷积网络(sgc)[6]

    • sgc网络算法支持repr齐次图的表示学习和节点分类。它是gcn算法的一个扩展,它可以平滑图形,使节点的邻域更远,而无需使用多个层。
  • 节点2vec[2]

    • node2vec和deepwalk算法在考虑网络结构的同时忽略节点属性,对同质网络进行无监督表示学习。node2vec算法是将星图的随机游走生成器与word2vec相结合实现的。 算法来自gensim。 学习节点表示可用于下游机器学习模型 使用scikit learnscikit learn实现,kerastensorflow或任何其他python机器学习库。
  • 元路径2vec[3]

    • metapath2vec算法对异构网络执行无监督的、元路径引导的表示学习,同时考虑网络结构而忽略 节点属性。该实现结合了星图的元路径引导随机游动 生成器和gensim算法。 与node2vec一样,学习的节点表示(节点嵌入)可以用于 下游机器学习模型,用于解决节点分类、链路预测等任务, 对于异构网络。

获取帮助

有关Stellargraph的文档可以在这里找到

话语共同体

欢迎在星图论坛上提问和讨论问题。

Ci

buildkite集成

管道在.buildkite/pipeline.yml中定义

Docker图像

  • 测试:使用官方的python:3.6
  • 样式:使用来自Docker Hub组织的黑色

引用

星图由csiro的data61设计、开发和支持。 如果您在研究中使用此库的任何部分,请使用以下bibtex条目引用它

@misc{StellarGraph,
  author = {CSIRO's Data61},
  title = {StellarGraph Machine Learning Library},
  year = {2018},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/stellargraph/stellargraph}},
}

参考文献

  1. 大型图的归纳表示学习。W.L.Hamilton、R.Ying和J.Leskovec。 神经信息处理系统(NIPS),2017年。(链接网页

  2. node2vec:可扩展的网络特征学习。A.格罗弗,J.莱斯科维奇。ACM SIGKDD国际知识发现和数据挖掘会议(KDD),2016年。(链接

  3. metapath2vec:异构网络的可扩展表示学习。余晓东,尼提什诉查拉,阿南特拉姆斯瓦米。 ACM SIGKDD知识发现和数据挖掘国际会议(KDD),135–144,2017 (链接

  4. 绘制注意网络图。P.Velickovic等人 2018年国际学习代表大会(ICLR)(链接

  5. 图卷积网络(gcn):利用图卷积网络的半监督分类。托马斯·基普夫,麦克斯·韦林。 国际学习代表大会(ICLR),2017年 (链接

  6. 图卷积网络的简化。吴先生,张先生,苏扎先生,50岁左右,于先生,温伯格先生。 机器学习国际会议(ICML),2019年。(链接

  7. 图表数据上的对抗性例子:深入了解攻击和防御。吴先生,王先生,丁世基先生,多克蒂先生,陆先生,朱先生。IJCAI 2019。(链接

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

推荐PyPI第三方库


热门话题
并行处理java。util。同时发生的叉子在游泳池里。常见的并行性准则,用于选择正确的并行度大小   java如何将空白字符追加到指定长度?   安卓应用程序中出现错误,SSLHandshakeException,找不到证书路径的信任锚点   java如何使用JUnit Mockito验证检查方法是否未被调用   java如何使用不同的@RequestMapping解析多个控制器中的静态页面   Selenium中的javascript需要验证搜索结果   访问数据库SQLiteopenHelper方法时java应用程序崩溃(nullpointerexception)   在二叉树中验证最小堆时出现java空指针异常   Java 7的SSL连接失败   java用RestEasyWebTarget替换ProxyFactory不起作用   在Java应用程序中单击“否”按钮后,数组程序冻结(无响应)   数组中的前缀Java初学者前进和   Java HTML解析器,包括脚本标记和LineNumberReader   在java中为长类型数字加前导零   正则表达式无法映射正则表达式java。lang.IllegalArgumentException:模式段中捕获组的数量