附录A
补充信息和资源
在本节中,我们将快速介绍可能对某些读者有所帮助的其他信息。我们将研究其他类型的算法,将数据导入Neo4j的另一种方法,以及另一个procedure库。还有一些资源用于查找数据集、平台帮助和培训。
其他算法
许多算法可用于图数据。在这本书中,我们重点介绍了那些最能代表经典图形算法的算法,以及那些对应用程序开发人员最有用的算法。有些算法,如着色(coloring)和启发式(heuristics)算法,被省略了,因为它们更关注学术领域,要么是很容易得到的。
其他算法,如基于边缘的社区检测(edge-based community detection),很有趣,但还没有在Neo4j或Apache Spark中实现。我们预计,随着图形分析的使用量的增加,两个平台中使用的图形算法将会增加。
还有一些算法与图一起使用,但本质上并不是严格的图。例如,我们在第8章中研究了机器学习环境中使用的一些算法。另一个值得注意的领域是相似性算法,它通常应用于推荐和链接预测。相似性算法通过使用不同的方法来比较节点属性等项,从而找出最相似的节点。
Neo4j批量数据导入和Yelp
Cypher查询语言使用事务性方法将数据导入Neo4j。图A-1说明了此过程的高层次的概述。 图A-1.基于Cypher的导入
虽然此方法在增量数据加载或千万级大容量加载时效果良好,但在导入初始大容量数据集时,Neo4j导入工具是更好的选择。该工具直接创建存储文件,跳过事务日志,如图A-2所示。 图A-2:使用Neo4j导入工具
Neo4j导入工具处理csv文件,并期望这些文件具有特定的头文件。图A-3显示了该工具可以处理的csv文件的示例。 图A-3.Neo4j导入处理的csv文件格式
Yelp数据集的大小意味着Neo4j导入工具是将数据转换为Neo4j的最佳选择。数据采用JSON格式,因此首先我们需要将其转换为Neo4j导入工具期望的格式。图A-4显示了我们需要转换的JSON的一个示例。 图A-4.将JSON转换为CSV
使用python,我们可以创建一个简单的脚本来将数据转换为csv文件。一旦我们将数据转换成这种格式,我们就可以将其导入Neo4j中。详细说明如何实现这一点的说明在书的资源库中。
APOC和其他Neo4j工具
Awesome Procedures on Cypher(APOC)是一个包含450多个过程(procedure)和功能(function)的库,用于帮助完成常见任务,如数据集成、数据清理和数据转换以及常规帮助功能。APOC是Neo4j的标准库。 Neo4j还有其他工具可以与他们的图算法库结合使用,例如用于无代码探索的算法“游乐场”应用程序。这些可以在他们的图算法开发网站上找到。
找到数据集
找到一个符合测试目标或假设的图数据集是一项挑战。除了回顾研究论文外,还考虑探索网络数据集的索引:
- SNAP(Stanford Network Analysis Project,SNAP)包括多个数据集以及相关论文和使用指南。
- ICON(Colorado Index of Complex Networks,ICON)是网络科学各个领域的研究质量网络数据集的可搜索索引。
- KONECT(Koblenz Network Collection ,KONECT)包括各种类型的大型网络数据集,以便进行网络科学研究。大多数数据集将需要一些信息来将其转换为更有用的格式。
Apache Spark和Neo4j在线平台
ApacheSpark和Neo4j平台有许多在线资源。如果您有具体问题,我们鼓励您联系他们各自的社区:
- 对于一般的Spark问题,请在Spark Community页面上订阅users@spark.apache.org。
- 对于GraphFrames问题,请使用Github issue tracker。
- 对于所有Neo4j问题(包括图算法),请访问在线Neo4j Community 。
培训内容
有很多优秀的资源可以用来开始图分析。搜索关于图算法、网络科学和网络分析的课程或书籍将发现许多选项。在线学习的几个很好的例子包括:
- Coursera上的Python课程:Applied Social Network Analysis
- YouTube上的Leonid Zhukov的Social Network Analysis系列
- 斯坦福大学的网络分析课程,包括视频讲座、阅读列表和其他资源
- Complexity Explorer提供的在线复杂科学的课程
关于作者
Mark Needham是Neo4j的图倡导者和开发人员关系工程师,他致力于帮助用户接受图和Neo4j,为具有挑战性的数据问题构建复杂的解决方案。Mark在图数据方面拥有深厚的专业知识,曾帮助构建Neo4j的因果集群系统。他在自己的热门博客https://markhneedham.com/blog/和tweets@markhneedham上写下了自己成为一名图设计师的经历。
Amy E. Hodler是Neo4j的网络科学爱好者和人工智能和图分析项目经理,她提倡使用图分析来揭示现实网络中的结构并预测动态行为。Amy帮助团队采用新颖的方法在EDS、Microsoft、Hewlett-Packard(HP)、Hitachi IoT和Cray Inc.等公司创造新的机会。Amy热爱科学和艺术,对复杂性研究和图论充满兴趣。她的推特是@amyhodler.