Skip to content

Neo4J图数据库反欺诈分析实战(一) - 搭建分析环境

Info

作者:Vincent,发布于2022-01-29,阅读时间:约3分钟,微信公众号文章链接:

1 前言

初识图数据库这篇文章中,我们介绍了图的基本构成要素,如节点、属性,关系等,同时也简单叙述了图数据库相较于传统的关系型数据库的优势,从这篇文章开始,将以反欺诈分析为例,作为图数据库的实战练习,真正上手图数据库在实际工作中的应用!

欺诈场景中,坏人通常会通过如钓鱼、病毒软件、暗网等渠道获取真实客户的身份信息,获取这些信息后,他们可以通过篡改验证信息接管账户,或者直接利用这些信息进行欺诈交易。并且,坏人们通常有一定数量的设备、身份证、邮箱、电话等信息用于应对服务提供商的验证,因此被接管的账号与这些坏人的信息即存在一定的联系,这个实战系列即着眼于使用图数据库挖掘其背后潜在的关联,而本文将介绍分析环境和图数据库查询的基本知识。

2 Neo4J图数据库

Neo4J是一家图数据库解决方案提供商,其官网提供了一系列教程和研究环境供读者学习。本次实战使用其Sandbox的示例数据和计算资源,其为研究者提供了免费的实例供实验用。

Neo4J Sandbox

点击免费使用,创建数据库,找到Fraud Detection即可开始探索(请记住密码)!

3 Cypher查询语言

如同SQL(Structured Query Language)用于查询关系型数据库一样,Neo4J图数据库也有自己的查询语言 - Cypher。在Cypher中,括号()用于查询节点,如(p:Person),其中p是一个变量,Person是这个节点的类型。

查询关系应使用方括号,如[w:WORKS_FOR],其中w是变量,而WORKS_FOR是关系的类型.将二者结合在一起即可查询满足条件的图,如查询一部电影里出演的演员:

MATCH (p:Person)-[relatedTo]-(m:Movie {title: "Cloud Atlas"})
RETURN p, m, relatedTo

其中MATCH定义匹配规则,RETURN定义了返回的内容。属性则使用花括号{}定义,如需要查询与Tom Hanks共同出演电影的人,可以用如下查询语句:

MATCH (tom:Person {name: 'Tom Hanks'})-[a:ACTED_IN]->(m:Movie)<-[rel:ACTED_IN]-(p:Person)
return p, a, rel, m, tom

Cypher不需要表连接,因此其查询语句像是自然语言一样顺畅。Neo4J提供了完整的Cypher操作手册,也是很好的参考。

4 使用图数据库

Neo4J操作界面

了解上述基本内容后,即可正式进入图数据库了。点击Fraud Detection图数据库,并且在浏览器中打开即可看到操作界面。侧边栏里有数据库的信息,右侧主界面则是建立查询的区域。反欺诈实战就可以由此正式开始了!


Viewed times

Comments