--- template: overrides/blogs.html tags: - knowledge graph --- # Neo4J图数据库反欺诈分析实战(一) - 搭建分析环境 !!! info 作者:[Vincent](https://github.com/Realvincentyuan),发布于2022-01-29,阅读时间:约6分钟,微信公众号文章链接:[:fontawesome-solid-link:](https://mp.weixin.qq.com/s?__biz=MzI4Mjk3NzgxOQ==&mid=2247485213&idx=1&sn=ed9051c887847bcf35ef6e21af6005f4&chksm=eb90f469dce77d7fa1325810d537e183c65eef7067f20219eee02d6f3667d14554832103986d&token=771475859&lang=zh_CN#rd) ## 1 前言 在[初识图数据库](https://mp.weixin.qq.com/s?__biz=MzI4Mjk3NzgxOQ==&mid=2247485112&idx=1&sn=efd4f9b472a3d58378407bb6fad46a2f&chksm=eb90f5ccdce77cda0285d53331834a787364d4458a3588173c9fe8ef6953499362bd64f7c918&token=1650861834&lang=zh_CN#rd)这篇文章中,我们介绍了图的基本构成要素,如节点、属性,关系等,同时也简单叙述了图数据库相较于传统的关系型数据库的优势,从这篇文章开始,将以反欺诈分析为例,作为图数据库的实战练习,真正上手图数据库在实际工作中的应用! 欺诈场景中,坏人通常会通过如钓鱼、病毒软件、暗网等渠道获取真实客户的身份信息,获取这些信息后,他们可以通过篡改验证信息接管账户,或者直接利用这些信息进行欺诈交易。并且,坏人们通常有一定数量的设备、身份证、邮箱、电话等信息用于应对服务提供商的验证,因此被接管的账号与这些坏人的信息即存在一定的联系,这个实战系列即着眼于使用图数据库挖掘其背后潜在的关联,而本文将介绍分析环境和图数据库查询的基本知识。 ## 2 Neo4J图数据库 Neo4J是一家图数据库解决方案提供商,其官网提供了一系列教程和研究环境供读者学习。本次实战使用其[Sandbox](https://sandbox.neo4j.com/ '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`是关系的类型.将二者结合在一起即可查询满足条件的图,如查询一部电影里出演的演员: ```sql MATCH (p:Person)-[relatedTo]-(m:Movie {title: "Cloud Atlas"}) RETURN p, m, relatedTo ``` 其中`MATCH`定义匹配规则,`RETURN`定义了返回的内容。属性则使用花括号{}定义,如需要查询与Tom Hanks共同出演电影的人,可以用如下查询语句: ```sql 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操作手册](https://neo4j.com/docs/cypher-manual/4.2/ 'Cypher操作手册'),也是很好的参考。 ## 4 使用图数据库
Neo4J操作界面
了解上述基本内容后,即可正式进入图数据库了。点击`Fraud Detection`图数据库,并且在浏览器中打开即可看到操作界面。侧边栏里有数据库的信息,右侧主界面则是建立查询的区域。反欺诈实战就可以由此正式开始了!